---
metadata:
  - name: generator
    content: Diplodoc Platform v5.63.3
alternate:
  - https://ytsaurus.tech/docs/en/flow/start.md
  - https://ytsaurus.tech/docs/ru/flow/start.md
  - href: https://ytsaurus.tech/docs/ru/flow/start.md
    type: text/markdown
    title: Markdown version
  - href: https://ytsaurus.tech/docs/ru/llms.txt?revision=181542d8c2d9f36be925894a517db8203cafae65
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://ytsaurus.tech/docs/ru/llms.txt?revision=181542d8c2d9f36be925894a517db8203cafae65

<!-- source: ru/_includes/flow/start.md -->
# С чего начать в YTsaurus Flow

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

<!-- source: ru/_includes/flow/language-choice.md -->
## Выбор языка {#choose-language}

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

- **[C++](https://ytsaurus.tech/docs/ru/flow/cpp/getting-started.md)** — нативная реализация, максимальная производительность, полный контроль. Рекомендуется для высоконагруженных пайплайнов.
- **[Java и Kotlin](https://ytsaurus.tech/docs/ru/flow/java/getting-started.md)** — работают через механизм [компаньонов](https://ytsaurus.tech/docs/ru/flow/concepts/companion.md). Поддерживают Spring Boot. Подходят для команд с JVM-стеком.
- **[Python](https://ytsaurus.tech/docs/ru/flow/python/getting-started.md)** — работает через механизм [компаньонов](https://ytsaurus.tech/docs/ru/flow/concepts/companion.md). Самый простой способ создать прототип пайплайна или обрабатывать небольшой поток данных.
- **[Go](https://ytsaurus.tech/docs/ru/flow/go/getting-started.md)** — работает через механизм [компаньонов](https://ytsaurus.tech/docs/ru/flow/concepts/companion.md). Один бинарь одновременно запускает пайплайн и работает компаньоном в джобе. Подходит для команд с Go-стеком.
- **[YQL](https://ytsaurus.tech/docs/ru/flow/yql/getting-started.md)** — декларативное описание пайплайна в виде SQL-запроса. Минимальный порог входа, не требует написания кода на C++, Java, Kotlin, Go или Python. Находится в активной разработке, ещё не вся запланированная функциональность доступна.
<!-- endsource: ru/_includes/flow/language-choice.md -->

## Общий план


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

1. **Попробуйте [Быстрый старт](https://ytsaurus.tech/docs/ru/flow/quickstart.md)** — запустите пример C++ Word Count, чтобы познакомиться с инфраструктурой Flow.

2. **Ознакомьтесь с основными понятиями**. Прочитайте [глоссарий](https://ytsaurus.tech/docs/ru/flow/concepts/glossary.md), чтобы понять модель Flow: пайплайны, потоки, компьютейшены, сообщения.

3. **Изучите концепции**. Разберитесь с [Computation](https://ytsaurus.tech/docs/ru/flow/concepts/computation.md), [Watermarks и Timers](https://ytsaurus.tech/docs/ru/flow/concepts/watermarks.md) и [Stateful-обработкой](https://ytsaurus.tech/docs/ru/flow/concepts/stateful.md), а также предоставляемыми системой [гарантиями](https://ytsaurus.tech/docs/ru/flow/concepts/guarantees.md).

4. **Изучите примеры** на выбранном языке:
   - C++: [WordCount](https://ytsaurus.tech/docs/ru/flow/cpp/examples/word_count.md), [Shuffle](https://ytsaurus.tech/docs/ru/flow/cpp/examples/shuffle.md), [WaitClickJoin](https://ytsaurus.tech/docs/ru/flow/cpp/examples/wait_click_join.md)
   - Java: [WordCount](https://ytsaurus.tech/docs/ru/flow/java/examples/wordcount.md), [Shuffle](https://ytsaurus.tech/docs/ru/flow/java/examples/shuffle.md), [WaitClickJoin](https://ytsaurus.tech/docs/ru/flow/java/examples/wait_click_join.md)
   - Python: [WordCount](https://ytsaurus.tech/docs/ru/flow/python/examples/wordcount.md), [Shuffle](https://ytsaurus.tech/docs/ru/flow/python/examples/shuffle.md), [WaitClickJoin](https://ytsaurus.tech/docs/ru/flow/python/examples/wait_click_join.md)
   - Go: [WordCount](https://ytsaurus.tech/docs/ru/flow/go/examples/wordcount.md), [Shuffle](https://ytsaurus.tech/docs/ru/flow/go/examples/shuffle.md), [WaitClickJoin](https://ytsaurus.tech/docs/ru/flow/go/examples/wait_click_join.md)
   - YQL: [Быстрый старт](https://ytsaurus.tech/docs/ru/flow/yql/getting-started.md)

5. **Ознакомьтесь с доступными [коннекторами](https://ytsaurus.tech/docs/ru/flow/connectors/about.md)** — очереди, статические таблицы и др.

6. **Опишите спеку пайплайна** в формате YSON. Помимо примеров, вам поможет раздел [Spec & DynamicSpec](https://ytsaurus.tech/docs/ru/flow/concepts/spec.md).

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

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

9. **Напишите тесты.** Следуйте инструкциям для выбранного языка программирования:
   - [C++](https://ytsaurus.tech/docs/ru/flow/cpp/testing.md)
   - [Java](https://ytsaurus.tech/docs/ru/flow/java/testing.md)
   - [Python](https://ytsaurus.tech/docs/ru/flow/python/testing.md)
   - [Go](https://ytsaurus.tech/docs/ru/flow/go/testing.md)

10. **Запустите пайплайн** и проверьте его состояние командой `yt flow get-pipeline-state <pipeline_path>`. Перед выкаткой прочитайте [Правила выкатки и изменения таблиц](https://ytsaurus.tech/docs/ru/flow/devops/vanilla/releases.md#release-and-configure-basic-rules).

## См. также

- [О Flow](https://ytsaurus.tech/docs/ru/flow/about.md)
- [Быстрый старт](https://ytsaurus.tech/docs/ru/flow/quickstart.md)
- [Основные понятия](https://ytsaurus.tech/docs/ru/flow/concepts/glossary.md)
- [Коннекторы](https://ytsaurus.tech/docs/ru/flow/connectors/about.md)
<!-- endsource: ru/_includes/flow/start.md -->
