Где запустить обработку кода в Кафке? - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь настроить конвейер данных с помощью Kafka. Данные поступают (вместе с производителями), обрабатываются, обогащаются и очищаются и перемещаются в разные базы данных или хранилища (с подключением потребителей или Kafka).

Но где вы используете реальный код конвейерной обработки для обогащения и очистки данных? Должно ли это быть частью производителей или потребителей? Я думаю, что что-то пропустил.

Ответы [ 3 ]

0 голосов
/ 16 ноября 2018

Может быть частью производителя или потребителя.

Или вы можете настроить среду, предназначенную для чего-то вроде процессов Kafka Streams или кластера KSQL

0 голосов
/ 16 ноября 2018

Это возможно любым из двух способов. Рассмотрите все возможные варианты, выберите вариант, который подходит вам лучше всего. Предположим, у вас есть исходные данные, исходные данные в csv или в некоторой БД (Oracle), и вы хотите выполнить ETL и загрузить его обратно в несколько различных хранилищ данных

1) Use kafka connect to produce your data to kafka topics.
   Have a consumer which would consume off of these topics(could Kstreams, Ksql or Akka, Spark).
   Produce back to a kafka topic for further use or some datastore, any sink basically

Преимущество этого заключается в том, что вы загружаете ваши данные с небольшим количеством кода или без кода, используя kafka connect, поскольку легко настроить исходные тексты kafka connect.

2) Write custom producers, do your transformations in producers before 
writing to kafka topic or directly to a sink unless you want to reuse this produced data 
for some further processing.
Read from kafka topic and do some further processing and write it back to persistent store. 

Все сводится к выбору вашего проекта, к тому, сколько вам нужно от системы, насколько сложна ваша структура данных.

0 голосов
/ 15 ноября 2018

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

Например, если исходные данные передаются в ClientA, где они очищаются перед передачей в ClientB для обогащения, тогда ClientA служит потребителем (прослушивание темы для необработанных данных) и продюсер (публикует очищенные данные в теме).

Где вы рисуете эти границы - это отдельный вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...