Flink как унифицирующий механизм для современных хранилищ данных: готово к интеграции с Hive!

Flink

Flink всегда следовал идее «сначала поток, пакет — это частный случай потока». Руководствуясь этой идеей, Flink применяет самые современные технологии потоковой передачи для пакетной обработки, что делает возможности пакетной обработки Flink впечатляющими на раннем этапе. Особенно в Flink 1.10, после того как мы в основном завершили интеграцию планировщика Blink из 1.9, возможности пакетной обработки Flink SQL были улучшены до более высокого уровня.

Какие потребности должны будут удовлетворить ваше хранилище данных и инфраструктура в 2020 году?

Резюмируем несколько пунктов:

Во-первых, современные предприятия быстро переходят на модель, в большей степени работающую в реальном времени, которая требует от предприятий возможности выполнять обработку потоковых данных с малой задержкой, чтобы соответствовать данным в режиме реального или близкого к реальному времени.Проанализируйте требования. Люди становятся менее терпимыми к задержкам между генерацией данных и доступностью данных. Задержки, которые раньше составляли часы или даже дни, больше недопустимы. Пользователи ожидают сквозного взаимодействия с данными за считанные минуты или даже секунды.

Во-вторых, инфраструктура данных должна иметь возможность обрабатывать данные как в режиме онлайн, так и в автономном режиме, и оба режима незаменимы в практических приложениях. В дополнение к упомянутой выше потоковой обработке пользователям также требуется пакетная обработка для специальных запросов и интеллектуального анализа данных. Инфраструктура данных не должна предлагать пользователям выбирать между двумя вариантами, а должна предоставлять оба варианта, и оба они должны быть высокого качества.

В-третьих, инженеры данных, специалисты по данным, аналитики и операторы жаждут унифицированного стека технологий обработки данных для более простого использования. Стек технологий в сфере больших данных уже много лет фрагментирован, предприятие может иметь систему потоковой обработки, систему пакетной обработки и систему онлайн-анализа данных. В основном это проблема, вызванная незрелой структурой обработки потоков, которая была вынуждена принять устаревшую лямбда-архитектуру. Теперь все по-другому, потоковая обработка стала мейнстримом, и конечным пользователям больше не нужно изучать множество навыков и поддерживать сложные инструменты и конвейеры данных. Чего хотят пользователи, так это унифицированного решения, которое легко освоить и поддерживать.

Если вы так же относитесь к вышеуказанным вопросам, то эта статья для вас. Давайте посмотрим, как на самом деле решить эту проблему.

Далее я познакомлю вас с интеграцией Flink и Hive на производственном уровне.

Интеграция Flink и Hive производственного уровня

Flink всегда следовал идее «сначала поток, пакет — это частный случай потока». Руководствуясь этой идеей, Flink применяет самые современные технологии потоковой передачи для пакетной обработки, что делает возможности пакетной обработки Flink впечатляющими на раннем этапе. Особенно в Flink 1.10, после того как мы в основном завершили интеграцию планировщика Blink из 1.9, возможности пакетной обработки Flink SQL были улучшены до более высокого уровня.

Hive стал стандартным компонентом хранилища данных в экосистеме больших данных. Это не только механизм SQL, но и система управления данными. Однако из-за собственных ограничений Hive в настоящее время сталкивается с большими проблемами и не может удовлетворить потребности пользователей.

Исходя из этого, мы запустили бета-версию интеграции Flink и Hive из Flink 1.9. За последние несколько месяцев мы улучшили продукт различными способами на основе отзывов пользователей. Я рад сообщить, что интеграция Flink и Hive готова к использованию в Flink 1.10!

Вот некоторые детали для вас.

Единое управление метаданными

Hive Metastore постепенно стал центром управления метаданными в экосистеме Hadoop. Многие компании используют хранилище метаданных Hive для управления своими метаданными Hive и даже другими метаданными.

В Flink 1.9 мы запустили HiveCatalog Flink, который связывает Flink с богатыми метаданными в хранилище метаданных Hive. HiveCatalog работает в два слоя.

  • Во-первых, это позволяет пользователям Flink хранить собственные метаданные Flink, включая таблицы, функции и т. д., в хранилище метаданных Hive.
  • Во-вторых, это позволяет Flink использовать существующие метаданные Hive в хранилище метаданных Hive, чтобы Flink мог читать и записывать таблицы Hive.

Новая функция Flink 1.10 заключается в том, что пользователи могут взаимодействовать практически со всеми версиями Hive Metastore. Вот пример того, как хранить метаданные таблицы Flink Kafka в хранилище метаданных Hive.

Пример кода: this.apache.org/projects/legal…

потоковая обработка

Из-за собственных недостатков Hive пользователи не могут импортировать данные в реальном времени. Но благодаря интеграции с Flink пользователи могут разблокировать некоторые другие полезные сценарии, такие как:

  • Присоединяйтесь к данным Flink в реальном времени и автономным данным Hive.
  • Заполнить данные Hive с помощью Flink

Совместимость с версией Hive

В Flink 1.10 мы совместимы практически со всеми версиями Hive 1.x, 2.x, 3.x.

Повторное использование функций Hive

Во Flink 1.9 пользователи уже могут повторно использовать Hive UDF. Это большое преимущество для пользователей Hive, поскольку пользователям не нужно заново разрабатывать функции, что экономит время и усилия.

Flink 1.10 представляет концепцию модуля и поддерживает все встроенные функции Hive через HiveModule. Сообщество Hive накопило за годы немало полезных встроенных функций, которые облегчат пользователям работу во Flink.

Улучшенное чтение и запись данных Hive

1.10 усиливает поддержку чтения и записи данных Hive.

Что касается чтения, Flink может читать секционированные таблицы и представления Hive; в то же время мы добавили много оптимизаций чтения, таких как сокращение разделов и проецирование вниз, чтобы уменьшить объем данных, получаемых из файловой системы; для файлов ORC мы добавили векторизованные читает.

Что касается записи, Flink вводит синтаксис «INSERT INTO» и «INSERT OVERWRITE»; кроме того, Flink может статически и динамически записывать в секционированные таблицы Hive.

больше типов данных

В версии 1.10 мы поддерживаем более распространенные типы Hive.

Последующее планирование

Сообщество планирует дальнейшую оптимизацию интеграции между двумя системами на основе отзывов пользователей. Некоторые из целей 1.11 включают в себя:

  • Приемник потокового вещания Hive почти в реальном времени
  • Чтение файлов Native Parquet
  • Дополнительная интерактивность — позволяет пользователям создавать таблицы, функции и т. д. Hive из Flink.
  • Улучшенное удобство использования
  • Поддержка синтаксиса куста

Хранилища данных развиваются в направлении, более близком к реальному времени, и тесная интеграция с Flink позволит продвинуть эту тенденцию на шаг вперед.

Сочетание Flink 1.10 и Hive на производственном уровне в полях метаданных и данных может позволить пользователям лучше решать практические проблемы и приносить больше пользы бизнесу.