С чего начать в YTsaurus Flow

В этом разделе пошагово описано, как во Flow реализовать и запустить свой собственный пайплайн.

Выбор языка

Flow поддерживает несколько языков для реализации бизнес-логики:

  • C++ — нативная реализация, максимальная производительность, полный контроль. Рекомендуется для высоконагруженных пайплайнов.
  • Java и Kotlin — работают через механизм компаньонов. Поддерживают Spring Boot. Подходят для команд с JVM-стеком.
  • Python — работает через механизм компаньонов. Самый простой способ создать прототип пайплайна или обрабатывать небольшой поток данных.
  • Go — работает через механизм компаньонов. Один бинарь одновременно запускает пайплайн и работает компаньоном в джобе. Подходит для команд с Go-стеком.
  • YQL — декларативное описание пайплайна в виде SQL-запроса. Минимальный порог входа, не требует написания кода на C++, Java, Kotlin, Go или Python. Находится в активной разработке, ещё не вся запланированная функциональность доступна.

Общий план

Независимо от выбранного языка, создание пайплайна включает следующие шаги:

  1. Попробуйте Быстрый старт — запустите пример C++ Word Count, чтобы познакомиться с инфраструктурой Flow.

  2. Ознакомьтесь с основными понятиями. Прочитайте глоссарий, чтобы понять модель Flow: пайплайны, потоки, компьютейшены, сообщения.

  3. Изучите концепции. Разберитесь с Computation, Watermarks и Timers и Stateful-обработкой, а также предоставляемыми системой гарантиями.

  4. Изучите примеры на выбранном языке:

  5. Ознакомьтесь с доступными коннекторами — очереди, статические таблицы и др.

  6. Опишите спеку пайплайна в формате YSON. Помимо примеров, вам поможет раздел Spec & DynamicSpec.

  7. Реализуйте бизнес-логику на выбранном языке, следуя соответствующему руководству по быстрому старту.

  8. Создайте необходимые объекты в YTsaurus — таблицы, очереди, пайплайн.

  9. Напишите тесты. Следуйте инструкциям для выбранного языка программирования:

  10. Запустите пайплайн и проверьте его состояние командой yt flow get-pipeline-state <pipeline_path>. Перед выкаткой прочитайте Правила выкатки и изменения таблиц.

См. также

Предыдущая
Следующая