Локальные и внешние топики в потоковых запросах
Потоковые запросы читают события из топиков и могут записывать результаты обратно в топики. Источником и приёмником сообщений может быть как топик в той же базе данных, в которой выполняется запрос, так и топик в другой базе YDB.
Все сценарии использования потоковых запросов работают одинаково для локальных{#local-topics} и внешних{#external-topics} топиков. Один и тот же запрос может одновременно читать локальный топик, писать во внешний и наоборот.
Локальные топики
Локальные топики: топики, созданные в той же базе YDB, что и потоковый запрос.
В тексте запроса к ним обращаются по короткому имени — так же, как к таблице в текущей базе:
SELECT * FROM input_topic WITH (FORMAT = json_each_row, SCHEMA = (...));
INSERT INTO output_topic SELECT ...;
Внешние топики
Внешние топики — топики, расположенные в другой базе YDB.
Доступ к ним из потокового запроса выполняется только через заранее созданный внешний источник данных с типом источника YDB. Создание объекта — команда CREATE EXTERNAL DATA SOURCE; при необходимости аутентификации используются секреты.
После создания источника, например с именем ext_source, обращение к топику input_topic во внешней базе записывается так:
SELECT * FROM ext_source.input_topic WITH (FORMAT = json_each_row, SCHEMA = (...));
Имя ext_source в документации условное — в вашей базе источник может называться иначе; важно, чтобы оно совпадало в CREATE EXTERNAL DATA SOURCE и в префиксе перед именем топика.
См. также
- Типичные шаблоны потоковых запросов — готовые фрагменты YQL
- CREATE STREAMING QUERY — создание запроса
- CREATE EXTERNAL DATA SOURCE — объявление источника для внешней базы
- Внешний источник данных — концепция
- Топик — модель данных
- Обогащение данных — примеры с чтением из топика и
JOIN - Отладочное чтение из топика