Справочник прагм YQL over YTsaurus Flow

Синтаксис

Названия прагм YQL over Flow содержат префикс Ytflow.

Исключение — общая прагма Engine, которая выбирает движок выполнения запроса:

PRAGMA Ytflow.<pragma_name> = '<value>';
PRAGMA Engine = 'ytflow';

Важно

Передавайте значения прагм как строки, в кавычках. Используйте одинарные '...' или двойные "..." кавычки.

Engine

Возможные значения Значение по умолчанию Вид
'ytflow' — Статическая

Выбор движка Flow для выполнения запроса.

Обязательно укажите эту прагму, без неё запрос не будет выполняться через Flow.

PRAGMA Engine = 'ytflow';

Ytflow.Cluster

Возможные значения Значение по умолчанию Вид
Строка — Статическая

Имя кластера YTsaurus для внутренних таблиц пайплайна.

PRAGMA Ytflow.Cluster = '<cluster-name>';

Ytflow.RuntimeCluster

Возможные значения Значение по умолчанию Вид
Строка Значение Ytflow.Cluster Статическая

Имя кластера для запуска vanilla операции пайплайна.

Контроллеры и воркеры запускаются как два типа тасков (controller и worker) внутри одной операции; число джобов и ресурсы каждого типа тасков задаются отдельно.

PRAGMA Ytflow.RuntimeCluster = '<cluster-name>';

Ytflow.PipelineDirectory

Возможные значения Значение по умолчанию Вид
Путь — Статическая

Директория с пайплайнами в Кипарисе на кластере Ytflow.Cluster, используется совместно с Ytflow.PipelineName.

Альтернатива — явное задание одной прагмы Ytflow.PipelinePath.

В примерах пути в Кипарисе начинаются с // и указываются без завершающего /.

PRAGMA Ytflow.PipelineDirectory = '//home/my-project/pipelines';

Ytflow.PipelineName

Возможные значения Значение по умолчанию Вид
Строка — Статическая

Имя пайплайна, используется для создания поддиректории внутри Ytflow.PipelineDirectory,
в ней будут жить внутренние таблицы пайплайна.

Альтернатива — явное задание прагмы Ytflow.PipelinePath.

PRAGMA Ytflow.PipelineName = 'my-pipeline';

Ytflow.PipelinePath

Возможные значения Значение по умолчанию Вид
Путь {Ytflow.PipelineDirectory}/{Ytflow.PipelineName} Статическая

Полный путь к пайплайну в Кипарисе на кластере Ytflow.Cluster,
в директории по этому пути будут жить внутренние таблицы пайплайна.

Альтернатива — задание Ytflow.PipelineDirectory и Ytflow.PipelineName по отдельности.

Если указан Ytflow.PipelinePath, он имеет приоритет над этими двумя прагмами.

PRAGMA Ytflow.PipelinePath = '//home/my-project/pipelines/my-pipeline';

Ytflow.Auth

Возможные значения Значение по умолчанию Вид
Строка Секрет default_ytflow, если передан средой запуска Статическая

Имя секрета YQL категории ytflow, содержащего токен для аутентификации в YTsaurus.

Токен должен обладать правами на доступ к таблицам пайплайна на кластере Ytflow.Cluster,
а также правом запуска vanilla операции на кластере Ytflow.RuntimeCluster.

Подробнее см. в документации про аутентификацию.

PRAGMA Ytflow.Auth = 'my_ytflow_credentials';

Ytflow.WorkerCount

Возможные значения Значение по умолчанию Вид
Положительное число 1 Статическая

Количество worker джобов в vanilla операции на кластере Ytflow.RuntimeCluster.

PRAGMA Ytflow.WorkerCount = '5';

Ytflow.WorkerCpuLimit

Возможные значения Значение по умолчанию Вид
Число с плавающей точкой 1.0 Статическая

Гарантированное потребление CPU на один worker джоб в vanilla операции на кластере Ytflow.RuntimeCluster.

Реальное потребление CPU может быть выше при наличии свободных ресурсов на машинке джоба.

Единица измерения - одно ядро.

PRAGMA Ytflow.WorkerCpuLimit = '10.0';

Ytflow.WorkerMemoryLimit

Возможные значения Значение по умолчанию Вид
Размер (например, 20G) 1G Статическая

Лимит памяти на один worker джоб в vanilla операции на кластере Ytflow.RuntimeCluster.

PRAGMA Ytflow.WorkerMemoryLimit = '20G';

Ytflow.EnableComputationPatternResources

Возможные значения Значение по умолчанию Вид
true / false false Статическая

Включение переиспользования шаблонов вычислений между графами одного воркера.

PRAGMA Ytflow.EnableComputationPatternResources = 'true';

Ytflow.ControllerCount

Возможные значения Значение по умолчанию Вид
Положительное число 1 Статическая

Количество controller джобов в vanilla операции на кластере Ytflow.RuntimeCluster.

Один контроллер становится лидером, остальные ожидают в режиме standby.

При значении 1 резервного контроллера нет, при перезапуске единственного контроллера управление пайплайном временно недоступно.

PRAGMA Ytflow.ControllerCount = '3';

Ytflow.ControllerCpuLimit

Возможные значения Значение по умолчанию Вид
Число с плавающей точкой 1.0 Статическая

Гарантированное потребление CPU на один controller джоб в vanilla операции на кластере Ytflow.RuntimeCluster.

Реальное потребление CPU может быть выше при наличии свободных ресурсов на машинке джоба.

Единица измерения - одно ядро.

PRAGMA Ytflow.ControllerCpuLimit = '3.0';

Ytflow.ControllerMemoryLimit

Возможные значения Значение по умолчанию Вид
Размер (например, 5G) 1G Статическая

Лимит памяти на один controller джоб в vanilla операции на кластере Ytflow.RuntimeCluster.

PRAGMA Ytflow.ControllerMemoryLimit = '5G';

Ytflow.GracefulUpdate

Возможные значения Значение по умолчанию Вид
true / false true Статическая

Режим обновления пайплайна:

  • при true — штатная остановка с дообработкой внутренних потоков (stop)
  • при false — немедленная пауза (pause).

После достижения нужного состояния старая vanilla операция на кластере Ytflow.RuntimeCluster абортится и запускается новая версия пайплайна.

Ограничения обновления без дообработки описаны в разделе Хотфикс, команды остановки — в справочнике CLI.

PRAGMA Ytflow.GracefulUpdate = 'true';

Ytflow.UpdateTimeout

Возможные значения Значение по умолчанию Вид
Интервал времени (1d, 5s, 2w) 600s Статическая

Таймаут ожидания остановки или паузы старой версии пайплайна при обновлении.

Если за это время нужное состояние не достигнуто, запрос завершится с ошибкой, старая vanilla операция на кластере Ytflow.RuntimeCluster не будет остановлена этим обновлением, а новая версия не запустится.

Команда остановки или паузы при этом уже отправлена и не отменяется.

PRAGMA Ytflow.UpdateTimeout = '600s';

Ytflow.TabletCellBundle

Возможные значения Значение по умолчанию Вид
Строка — Статическая

Таблет-селл бандл (tablet_cell_bundle) для создаваемых таблиц.

PRAGMA Ytflow.TabletCellBundle = 'my-bundle';

Ytflow.Account

Возможные значения Значение по умолчанию Вид
Строка — Статическая

Аккаунт для создаваемых таблиц.

PRAGMA Ytflow.Account = 'my-account';

Ytflow.PrimaryMedium

Возможные значения Значение по умолчанию Вид
Строка — Статическая

primary medium (primary_medium) для создаваемых таблиц.

PRAGMA Ytflow.PrimaryMedium = 'default';

Ytflow.Pool

Возможные значения Значение по умолчанию Вид
Строка — Статическая

Вычислительный пул для vanilla операции пайплайна на кластере Ytflow.RuntimeCluster.

PRAGMA Ytflow.Pool = 'my-pool';

Ytflow.YtPartitionCount

Возможные значения Значение по умолчанию Вид
Положительное число 1 Статическая

Количество партиций новых выходных очередей в YTsaurus.

PRAGMA Ytflow.YtPartitionCount = '4';

Ytflow.YtTtl

Возможные значения Значение по умолчанию Вид
Интервал времени (1d, 5s, 2w) — Статическая

Срок хранения строк в создаваемых выходных упорядоченных динамических таблицах (очередях) YTsaurus.

Задаёт max_data_ttl, также выставляются:

  • min_data_versions = 0
  • max_data_versions = 1
  • min_data_ttl = 0
  • auto_compaction_period, равный половине TTL

Подробнее см. Автоматическое удаление старых строк.

PRAGMA Ytflow.YtTtl = '7d';

Ytflow.YtConsumerVital

Возможные значения Значение по умолчанию Вид
true / false false Статическая

Признак vital при регистрации консьюмера на входных очередях YTsaurus.

При включённой автоматической очистке очередей по консьюмерам очередь учитывает оффсет vital консьюмера и не удаляет ещё не прочитанные им строки.

Оффсет non vital консьюмера не блокирует удаление необработанных им строк.

PRAGMA Ytflow.YtConsumerVital = 'true';

Ytflow.YtConsumerDirectory

Возможные значения Значение по умолчанию Вид
Путь {Ytflow.PipelinePath}/yql_ytflow/consumers Статическая

Директория YTsaurus консьюмера.

PRAGMA Ytflow.YtConsumerDirectory = '//home/my-project/consumers';

Ytflow.YtConsumerName

Возможные значения Значение по умолчанию Вид
Строка default_consumer Статическая

Имя YTsaurus консьюмера.

PRAGMA Ytflow.YtConsumerName = 'my-consumer';

Ytflow.YtProducerDirectory

Возможные значения Значение по умолчанию Вид
Путь {Ytflow.PipelinePath}/yql_ytflow/producers Статическая

Директория YTsaurus продьюсера.

PRAGMA Ytflow.YtProducerDirectory = '//home/my-project/producers';

Ytflow.YtProducerName

Возможные значения Значение по умолчанию Вид
Строка default_producer Статическая

Имя YTsaurus продьюсера.

PRAGMA Ytflow.YtProducerName = 'my-producer';
Предыдущая