Справочник прагм YQL over YTsaurus Flow
- Синтаксис
- Engine
- Ytflow.Cluster
- Ytflow.RuntimeCluster
- Ytflow.PipelineDirectory
- Ytflow.PipelineName
- Ytflow.PipelinePath
- Ytflow.Auth
- Ytflow.WorkerCount
- Ytflow.WorkerCpuLimit
- Ytflow.WorkerMemoryLimit
- Ytflow.EnableComputationPatternResources
- Ytflow.ControllerCount
- Ytflow.ControllerCpuLimit
- Ytflow.ControllerMemoryLimit
- Ytflow.GracefulUpdate
- Ytflow.UpdateTimeout
- Ytflow.TabletCellBundle
- Ytflow.Account
- Ytflow.PrimaryMedium
- Ytflow.Pool
- Ytflow.YtPartitionCount
- Ytflow.YtTtl
- Ytflow.YtConsumerVital
- Ytflow.YtConsumerDirectory
- Ytflow.YtConsumerName
- Ytflow.YtProducerDirectory
- Ytflow.YtProducerName
Синтаксис
Названия прагм 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 = 0max_data_versions = 1min_data_ttl = 0auto_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';