Как обрабатывать потоковые данные, когда сервер KSQL работает в режиме Headless?

Мне нужно развернуть KSQL на рабочем сервере, поэтому я изменил интерактивный режим на безголовый. Создал SQL-скрипт для загрузки всех потоков при запуске контейнера. Теперь я хочу увидеть данные потока. Сколько существует способов увидеть эти прямые трансляции, например, мы можем подключить сервер KSQL к центру управления и добиться этого. Но я не хочу делать зависимость, как будто нам нужно покупать корпоративную версию Confluent. Пожалуйста, дайте свои предложения или комментарии.


person Vishal Shivare    schedule 07.07.2020    source источник


Ответы (1)


KSQL (или, если говорить технически, ksqlDB) - это уровень потоковой аналитики, построенный на основе Apache Kafka. Хотя это полнота и может означать разные вещи для разных людей - в вашем конкретном случае это означает, что если вам нужно увидеть потоки данных, вы можете просто отслеживать темы Kafka, созданные потоками / таблицами вашего SQL-скрипта.

в ksqlDB каждый поток и / или таблица, которые поддерживаются непрерывным запросом, сбрасывают свои результаты в сгенерированную тему, которая содержит префикс (это продиктовано параметром конфигурации ksql.output.topic.name.prefix) и имя потока / таблицы. Просто используйте любой инструмент CLI (например, kafka-console-consumer, kafkacat и т. Д.), Чтобы подключиться к кластеру Kafka и распечатать содержимое темы.

person Ricardo Ferreira    schedule 07.07.2020
comment
Я не могу видеть темы для трансляций. Для таблиц я вижу темы по Kafka. Если хотите, я могу поделиться своими файлами yaml. - person Vishal Shivare; 16.07.2020
comment
Вы должны увидеть любые темы, созданные с помощью непрерывного запроса. В ksqlDB существует 2 типа потоков: те, которые обертывают источники темы, и те, которые фактически воздействуют на существующие потоки. Те, которые просто обертывают источники темы, не будут иметь сгенерированной темы, потому что они просто обертывают, и, таким образом, данные содержатся в оборачиваемой теме. Однако для любого потока, считывающего данные из другого потока, будет создана сгенерированная тема. Например: [sourceTopic] --- ›[stream1] ---› [stream2] В этом случае у вас должна быть новая тема с именем stream2, но не stream1. - person Ricardo Ferreira; 16.07.2020
comment
Спасибо @Ricardo за ваш ответ. Нужна ваша помощь в моей другой проблеме. Я создал JDBCSink Connector, чтобы сбрасывать свои события в БД, которая работает нормально. Теперь моя проблема связана с временным окном. Я создал поток, который вычисляет события за последний час и хранится в БД. Если у меня есть какие-то события в течение первого часа, они будут храниться в БД, и в следующие два часа событий не будет. Теперь, если я проверяю db, он все еще показывает счетчик за первый час, но он должен показывать счет как 0, потому что за последний час нет событий. Как мы можем этого добиться? - person Vishal Shivare; 22.07.2020