YTsaurus Flow вышел в опенсорс

Рассказываем про фреймворк для потоковой обработки данных в YTsaurus

Мы открыли исходный код YTsaurus Flow под лицензией Apache 2.0. Это фреймворк для потоковой обработки данных в реальном времени с сохранением состояния и гарантиями exactly-once по умолчанию. Flow построен на очередях, динамических таблицах и транзакциях YTsaurus. Поэтому управление состоянием, автоматическую адаптацию процесса обработки под нагрузку и восстановление после сбоев он берёт на себя, что позволяет разработчику сосредоточиться на бизнес-логике. Исходный код доступен в репозитории YTsaurus на GitHub. Подробности читайте в статье на Хабре.

Ключевые особенности

  • Exactly-once по умолчанию. Состояние, метаданные для обеспечения гарантий и результаты вычислений фиксируются одной транзакцией YTsaurus. При необходимости можно переключиться на at-least-once или at-most-once для экономии ресурсов.

  • Состояние по ключу. Долгосрочное состояние хранится в динамических таблицах, а shuffle по ключу собирает связанные события вместе.

  • Автобалансировка. Flow сам подбирает число партиций и распределяет нагрузку между воркерами.

  • Несколько дата-центров. Пайплайн продолжает работать, даже если целый дата-центр отказал или на плановом обслуживании.

  • Время события. Нативно поддерживаются таймстемпы сообщений, вотермарки и таймеры.

  • Сложные графы. Сотни узлов, циклы и визуализация топологии в веб-интерфейсе YTsaurus.

  • Выбор языка. Ядро написано на C++, бизнес-логику можно писать на Python, Go, Java, Kotlin или C++. Простые пайплайны можно описать на YQL.

Чтобы попробовать Flow, начните с документации YTsaurus, а затем переходите к документации Flow. Если вам чего-то не хватает, пишите в чат сообщества или создавайте issue и PR в репозитории.

Войдите, чтобы сохранить пост