С чего начать в YTsaurus Flow
В этом разделе пошагово описано, как во Flow реализовать и запустить свой собственный пайплайн.
Выбор языка
Flow поддерживает несколько языков для реализации бизнес-логики:
- C++ — нативная реализация, максимальная производительность, полный контроль. Рекомендуется для высоконагруженных пайплайнов.
- Java и Kotlin — работают через механизм компаньонов. Поддерживают Spring Boot. Подходят для команд с JVM-стеком.
- Python — работает через механизм компаньонов. Самый простой способ создать прототип пайплайна или обрабатывать небольшой поток данных.
- Go — работает через механизм компаньонов. Один бинарь одновременно запускает пайплайн и работает компаньоном в джобе. Подходит для команд с Go-стеком.
- YQL — декларативное описание пайплайна в виде SQL-запроса. Минимальный порог входа, не требует написания кода на C++, Java, Kotlin, Go или Python. Находится в активной разработке, ещё не вся запланированная функциональность доступна.
Общий план
Независимо от выбранного языка, создание пайплайна включает следующие шаги:
-
Попробуйте Быстрый старт — запустите пример C++ Word Count, чтобы познакомиться с инфраструктурой Flow.
-
Ознакомьтесь с основными понятиями. Прочитайте глоссарий, чтобы понять модель Flow: пайплайны, потоки, компьютейшены, сообщения.
-
Изучите концепции. Разберитесь с Computation, Watermarks и Timers и Stateful-обработкой, а также предоставляемыми системой гарантиями.
-
Изучите примеры на выбранном языке:
- C++: WordCount, Shuffle, WaitClickJoin
- Java: WordCount, Shuffle, WaitClickJoin
- Python: WordCount, Shuffle, WaitClickJoin
- Go: WordCount, Shuffle, WaitClickJoin
- YQL: Быстрый старт
-
Ознакомьтесь с доступными коннекторами — очереди, статические таблицы и др.
-
Опишите спеку пайплайна в формате YSON. Помимо примеров, вам поможет раздел Spec & DynamicSpec.
-
Реализуйте бизнес-логику на выбранном языке, следуя соответствующему руководству по быстрому старту.
-
Создайте необходимые объекты в YTsaurus — таблицы, очереди, пайплайн.
-
Напишите тесты. Следуйте инструкциям для выбранного языка программирования:
-
Запустите пайплайн и проверьте его состояние командой
yt flow get-pipeline-state <pipeline_path>. Перед выкаткой прочитайте Правила выкатки и изменения таблиц.