Чтение данных с помощью привязок к данным
Привязки к данным позволяют регулярно выполнять запросы к данным Yandex Data Streams, не указывая параметры подключения и формат данных в каждом запросе.
Пример чтения данных с помощью привязки к данным:
SELECT
JSON_VALUE(CAST(Data AS Json), "$.action") AS action
FROM bindings.`input_stream`
LIMIT 10;
Примечание
Данные из потокового источника передаются в виде бесконечного потока. Чтобы остановить обработку и получить результат в консоли, данные в примере ограничены с помощь оператора LIMIT, который задает количество строк результата.
Настройка привязки к данным
Чтобы создать привязку для чтения данных из Yandex Data Streams:
-
Перейдите
в сервис Yandex Query. -
На панели слева перейдите на вкладку Привязки.
-
Нажмите кнопку
Создать. -
В блоке Параметры соединения:
- В поле Тип выберите
Data Streams. - В поле Соединение выберите соединение, созданное на первом шаге.
- В поле Тип выберите
-
В блоке Параметры привязки к данным:
- В поле Имя укажите название привязки к данным.
- В поле Поток данных укажите название потока данных Yandex Data Streams.
- В поле Сжатие укажите способ сжатия данных.
- В поле Формат укажите формат передаваемых данных.
- В полях Колонки укажите список колонок и их типы данных.
-
Для проверки данных нажмите кнопку Предпросмотр.
-
Нажмите кнопку Создать.
Модель данных
Данные через Yandex Data Streams передаются в бинарном виде. Для чтения данных с помощью привязки используйте SQL-выражение следующего вида:
SELECT
<выражение>
FROM bindings.`<имя_привязки>`
WHERE
<фильтр>;
Где:
<выражение>— выражение, определяющее результат запроса;<имя_привязки>— название ранее созданной привязки к данным;<фильтр>— условие фильтрации данных.
Пример чтения данных
Пример запроса для чтения данных из 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;
Где:
|
Поле |
Тип |
Описание |
|
|
Название привязки к потоку-источнику данных. |
|
|
|
Строка |
Название хоста. |
|
|
Строка |
Количество событий. |
|
|
Строка |
Тег события. |