ALTER STREAMING QUERY
ALTER STREAMING QUERY изменяет настройки потоковых запросов, а также управляет их состоянием: запуском и остановкой.
Синтаксис
ALTER STREAMING QUERY [IF EXISTS] <query_name> SET (
<key1> = <value1>,
<key2> = <value2>,
...
)
Параметры
IF EXISTS— не выводить ошибку, если потокового запроса не существует.query_name— имя потокового запроса, подлежащего изменению.SET (<key> = <value>)— список настроек потокового запроса, которые нужно обновить, опционально.
Изменение параметров запроса
Синтаксис:
ALTER STREAMING QUERY [IF EXISTS] <query_name> SET (<key> = <value>)
Доступные параметры:
RUN = (TRUE|FALSE)— запустить или остановить запрос.RESOURCE_POOL = <resource_pool_name>— имя пула ресурсов, в котором будет выполняться запрос.
При выполнении SET (RUN = TRUE) смещения чтения из топика и состояния агрегационных функций восстанавливаются из чекпоинта. При отсутствии чекпоинта чтение начинается с самых свежих данных.
Примеры изменения параметров запроса см. ниже.
Разрешения
Для работы с потоковыми запросами требуется разрешение ALTER SCHEMA, пример выдачи такого разрешения для запроса my_streaming_query:
GRANT ALTER SCHEMA ON my_streaming_query TO `user@domain`
Примеры
Изменение параметров
Остановка запроса my_streaming_query:
ALTER STREAMING QUERY my_streaming_query SET (
RUN = FALSE
)
Запуск запроса my_streaming_query в пуле ресурсов my_resource_pool:
ALTER STREAMING QUERY my_streaming_query SET (
RUN = TRUE,
RESOURCE_POOL = my_resource_pool
)
Статус запроса
Текущий статус запроса доступен в колонке Status системной таблицы .sys/streaming_queries:
SELECT
Path,
Status,
Text,
Run
FROM
`.sys/streaming_queries`
Возможные значения статуса:
CREATING— запрос создаётся после выполнения командыCREATE STREAMING QUERY.CREATED— запрос создан, но не запущен (например, при указанииRUN = FALSE).STARTING— запрос запускается.RUNNING— запрос выполняется.SUSPENDED— запрос приостановлен из-за внутренних ошибок. Система автоматически повторит запуск.STOPPING— запрос останавливается по командеALTER STREAMING QUERY ... SET (RUN = FALSE).STOPPED— запрос остановлен.
Гарантируется, что на момент успешного завершения DDL для создания или изменения потокового запроса, статус будет CREATED, STARTING, RUNNING, STOPPED или SUSPENDED в зависимости от настройки RUN = (TRUE|FALSE) и успешности запуска запроса.
Примеры обработки данных в других форматах приведены в статье Форматы данных при чтении/записи из топиков. Подробнее о возможностях и ограничениях потоковых запросов см. в документации.