Запрос Flink sql в DataStream (Apache Flink Java)

Я совершенно не знаком с Apache flink. Просто пытаюсь запачкать руки. У меня такой сценарий.

  1. Datastream для событий
  2. Datastream для событий
  3. Datastream для правил
  4. Объединили эти два потока данных на основе идентификатора правила

Теперь у меня есть поток данных tuple3, который выглядит как <ruleId, Rule, Event>. Эти правила представляют собой SQL-запросы, которые я хочу выполнить на Событии.

Я изучал концепцию динамических таблиц и Flink SQL. Я не знаю, что делать дальше. Может ли кто-нибудь помочь мне с этим?


person Sharath Kumar Rajanna    schedule 09.02.2018    source источник


Ответы (1)


Flink может выполнять SQL-запросы к потокам данных. SQL переводится в задание потоковой обработки и выполняется. Вы можете использовать Flink SQL для объединения двух потоков событий (Flink 1.4.0 поддерживает оконные объединения потоков).

Вы не можете легко использовать Flink SQL для оценки ваших правил, потому что каждое правило будет преобразовано в независимое задание потоковой передачи. Таким образом, сообщение правила будет обрабатываться заданием и запускать выполнение другого задания.

person Fabian Hueske    schedule 09.02.2018
comment
Здесь правила - это SQL-запросы, которые необходимо выполнить для события (‹ruleId, Rule, Event›). Поэтому я не оцениваю свои правила по sql. - person Sharath Kumar Rajanna; 09.02.2018
comment
Извините, я не думаю, что правильно это понимаю. Можете ли вы добавить пример правила к вашему вопросу? - person Fabian Hueske; 09.02.2018
comment
ОК, круто! Итак, My DataStream ‹Tuple2‹ String, Rule, Event ›› Выглядит так: 1) Правило - выберите * из события 2) Событие - {key1: value1, key2: value2} Итак, правило - это Sql-запрос, а мое событие - это JSON, как показано выше. Мне нужно запустить этот запрос для этого json с помощью apache flink. - person Sharath Kumar Rajanna; 09.02.2018
comment
Итак, что вы хотите запускать SQL-запросы на основе событий правил в потоке? У меня был бы SQL-запрос, который выполняет соединение и записывает результат в Kafka. Затем вам понадобится служба, которая подключается к потоку правил и запускает SQL-запрос Flink, который читает из темы Kafka для каждого входящего правила. - person Fabian Hueske; 09.02.2018