
Flink Connector для YTsaurus вышел в опенсорс
Открыли исходный код коннектора для интеграции Apache Flink с YTsaurus. Он позволяет работать с сортированными динамическими таблицами YTsaurus напрямую из Flink. Коннектор можно использовать как для потоковой передачи данных напрямую в YTsaurus, так и для обогащения уже существующего потока за счет Lookup-операций в динамические таблицы. Исходный код коннектора доступен на GitHub.
Ключевые особенности
-
Запись в сортированные динамические таблицы. Это основной сценарий использования коннектора. Он позволяет реализовать пайплайн, который будет с задержками в несколько секунд перекладывать данные из очередей в сортированную динамическую таблицу. Так как вставка в такую таблицу происходит по ключу, одновременно решается задача дедупликации данных и поддержания актуального состояния.
-
Поддержка партиционирования. Зачастую данные не размещают в одну таблицу, а стараются нарезать на партиции. Коннектор позволяет организовать такую партиционированную запись с использованием различной гранулярности от часа до года. Для коннектора не будет проблемой, если при записи будет задействовано несколько партиций. Он сможет записывать данные одновременно во все и по необходимости создавать новые.
-
Предварительное решардирование таблиц. При записи потока данных в несколько мегабайт в секунду может возникать ситуация, в которой таблица начнет блокироваться для решардирования. Для ряда задач такие задержки могут быть критичны. Чтобы избежать неожиданного решардирования коннектор может выполнить его сразу в момент создания таблицы. В таком случае таблица будет нарезана на нужное количество таблетов, что позволит ей легко принять весь объем данных.
-
Синхронные и асинхронные Lookup-запросы. Сортированные динамические таблицы могут служить для хранения данных, которые могут быть полезны для обогащения потока событий. В такие таблицы можно делать Lookup-запросы по ключу. Коннектор позволяет использовать как синхронный режим, который обрабатывает сотни запросов в секунду, так и асинхронный, способный обрабатывать тысячи запросов в секунду.
-
Full и Partial стратегии кеширования Lookup-запросов. Apache Flink позволяет интегрировать различные стратегии для кеширования Lookup-запросов в коннекторы. Эти стратегии позволяют существенно снизить нагрузку на динамические таблицы и повысить пропускную способность пайплайна. Apache Flink коннектор к YTsaurus поддерживает обе стратегии.
-
Lookup из нескольких кластеров YTsaurus. В случае потери соединения с одной из инсталляций YTsaurus коннектор способен перенаправить Lookup-запрос в другую доступную инсталляцию. Это позволяет повысить надежность джобы и снизить её зависимость от доступности одного кластера.
Чтобы познакомиться с возможностями коннектора, можно пройти Quick Start Guide. Подробнее о реализации — в докладе Данила Сабирова «Разработка высокопроизводительного коннектора к YTsaurus для Apache Flink»: