Чтение данных с помощью привязок к данным в Query
При работе с Yandex Data Streams с помощью привязок к данным удобно выполнять запросы к хранимым данным на регулярной основе без необходимости указывать все детали работы с этими данными.
Пример чтения данных из привязок к данным:
SELECT
JSON_VALUE(CAST(Data AS Json), "$.action") AS action
FROM bindings.`input_stream`
LIMIT 10;
Примечание
Данные из потокового источника передаются в виде бесконечного потока. Чтобы остановить обработку и получить результат в консоли, данные в примере ограничены с помощь оператора LIMIT
, который задает количество строк результата.
Настройка привязки к данным
Для чтения данных из Yandex Data Streams c помощью привязок к данным необходимо:
- Настроить соединение с данными.
- В поле Тип выбрать
Data Streams
. - В выпадающем поле Соединение выбрать соединение, созданное в первом пункте.
- В поле Имя указать название привязки к данным.
- В поле Поток данных указать название потока данных Yandex Data Streams.
- В поле Сжатие указать способ сжатия данных.
- В поле Формат указать формат передаваемых данных.
- В полях Колонки указать список колонок в данных и их типы данных.
- Для проверки данных нажать кнопку Предпросмотр.
- Создать привязку к данным, нажав кнопку Создать.
Модель данных
Данные через Yandex Data Streams передаются в бинарном виде. Чтение данных выполняется с помощью SQL-выражений.
SELECT
<выражение>
FROM
<соединение>.<имя_потока>
WITH
(
format=raw,
SCHEMA
(
Data String
)
)
WHERE <фильтр>;
Где:
<соединение>
— название соединения с потоком данных Data Streams, созданного в предыдущем пункте.<имя_потока>
— название потока данных в Data Streams.
Пример чтения данных
Пример запроса для чтения данных из Yandex Data Streams и записи результатов в Yandex Data Streams.
$data =
SELECT
JSON_VALUE(Data, "$.host") AS host,
JSON_VALUE(Data, "$.count") AS count,
JSON_VALUE(Data, "$.tag") AS tag,
FROM
(
SELECT
CAST(Data AS Json) AS Data
FROM bindings.`binding_name`
)
WHERE
JSON_VALUE(Data, "$.tag") = "my_tag";
SELECT
*
FROM
$data
LIMIT 10;
Где:
Поле | Тип | Описание |
---|---|---|
binding_name |
Название привязки данных к потоку-источнику данных в SQL-запросе | |
host |
Строка | Строковый параметр запроса |