在哪里运行Kafka的处理代码?

fdbelqdn  于 2021-06-07  发布在  Kafka
关注(0)|答案(3)|浏览(310)

我试图建立一个数据管道使用Kafka。数据进入(与生产商),得到处理,丰富和清洁,并转移到不同的数据库或存储(与消费者或Kafka连接)。
但是在哪里运行实际的管道处理代码来丰富和清理数据呢?它应该是生产者的一部分还是消费者的一部分?我想我错过了什么。

tjvv9vkg

tjvv9vkg1#

两种方法都有可能。考虑所有可能的选择,选择一个最适合你的选择。假设您有一个csv或某个db(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.

所有这些都归结为您的设计选择、您需要从系统中获得的想法、您的数据结构有多复杂。

mrwjdhj3

mrwjdhj32#

在数据管道的用例中,kafka客户机可以同时充当消费者和生产者。
例如,如果有原始数据流到 ClientA 在把它送去医院之前要清洗的地方 ClientB 为了浓缩 ClientA 作为使用者(聆听主题以获取原始数据)和生产者(将清理过的数据发布到主题)。
你在哪里划定这些界限是一个单独的问题。

yhuiod9q

yhuiod9q3#

它可以是生产者或消费者的一部分。
或者您可以设置一个专用于kafka流进程或ksql集群之类的环境

相关问题