Локальные и внешние топики в потоковых запросах

Потоковые запросы читают события из топиков и могут записывать результаты обратно в топики. Источником и приёмником сообщений может быть как топик в той же базе данных, в которой выполняется запрос, так и топик в другой базе 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 и в префиксе перед именем топика.

См. также