ksqlDB HOWTO: Объединение данных (Joins)
Robin Moffatt
0:00 / 0:00
ksqlDB HOWTO: Объединение данных (Joins)
3 024 просмотра · 5 л. назад
Robin Moffatt
4,4 тыс. подписчиков
3 024 просмотра · 5 л. назад
Используя ksqlDB, вы можете обогащать сообщения в топике Kafka справочными данными, хранящимися в другом топике. Эти данные могут поступать из базы данных, очереди сообщений, API производителя и т. д.
ksqlDB использует SQL для описания обработки потока, которую вы хотите выполнить.
С помощью предложения JOIN вы можете определить связи между потоками и/или таблицами в ksqlDB (которые построены на основе топиков в Kafka).
Например:
CREATE STREAM ORDERS_ENRICHED AS
SELECT O.ORDERTIME AS ORDER_TIMESTAMP,
O.ORDERID,
I.MAKE,
O.ORDERUNITS,
O.ORDERUNITS * I.UNIT_COST AS TOTAL_ORDER_VALUE,
FROM ORDERS O
INNER JOIN ITEM_REFERENCE_01 I
ON O.ITEMID = I.ITEM_ID
PARTITION BY ORDERID;
-----
💾 Запустите ksqlDB самостоятельно: https://ksqldb.io?utm_source=youtube&...
☁️ Используйте ksqlDB как управляемый сервис: https://www.confluent.io/confluent-cl...
👾 Демо-код: https://github.com/confluentinc/demo-...
🤔 Вопросы? Присоединяйтесь к сообществу Confluent по ссылке https://confluent.io/community/ask-th...
-----
⏱ Таймкоды
00:00:00 Введение
00:00:29 Список потоков в ksqlDB
00:00:38 Запрос к потоку заказов
00:00:58 Внешние ключи в потоке
00:01:25 Хранение справочных данных в топике Kafka
00:02:12 Важность ключей сообщений в топиках, используемых в качестве таблиц
00:03:20 Объявление таблицы в ksqlDB над топиком, содержащим справочные данные
00:03:40 Потоки и таблицы в ksqlDB
00:04:21 Определение первичного ключа в таблице ksqlDB
00:04:47 Изучение таблицы в ksqlDB
00:05:14 Объединение потоковых таблиц в ksqlDB
00:05:46 INNER JOIN против LEFT OUTER JOIN
00:06:45 Выборка результатов объединения
00:07:25 Запись результатов объединения в новую тему Kafka
00:08:14 Анализ производного потока
00:08:30 Просмотр обогащенного потока данных
00:08:49 Значения NULL в результатах объединения
00:09:18 Просмотр обогащенной темы
00:09:43 Сводка