Kafka连接和流

ruarlubt  于 2021-06-06  发布在  Kafka
关注(0)|答案(3)|浏览(655)

所以我最近开始读Kafka,我有点困惑Kafka连接和Kafka流之间的区别。根据Kafka的定义,Kafka流可以从Kafka主题收集数据,对其进行处理,并将输出推送到另一个Kafka主题。而kafka connect则将大型数据集移入和移出kafka。
我的问题是,为什么我们需要Kafka连接几乎可以读取数据,处理它,并把它推到一个主题?为什么要增加一个组件?如果有人能解释一下这两者之间的区别,那就太好了(提前谢谢:)

mqxuamgl

mqxuamgl1#

kafka connect不应该用于广泛的过滤和比select字段更大的数据转换。Kafka峰会上有一个关于何时不使用简单消息转换(smt)的演讲
kafka流可以嵌入到任何java应用程序中,作为应用程序使用的内存存储类型。例如,可以编写一个web应用程序,并将ktable用作由kafka备份的数据库。否则,它只是一个比生产者和消费者更高级别的库,但仅限于处理单个kafka集群数据。ksql是这个之上的一个附加层。
另一方面,Kafka连接(虽然可能可以嵌入;请参阅debezium嵌入模式),这意味着更“免提”-如果连接器存在,那么您所需要的只是配置文件,而不是自己编写任何代码

9w11ddsr

9w11ddsr2#

kafka streams是apachekafka的流处理库。因此,您可以构建流应用程序,从Kafka主题读取/写入数据。这是一个通用图书馆。
另一方面,kafka connect是一个“数据集成”框架。通常使用kafkaconnect将数据从关系数据库之类的数据系统导入到kafka主题中。您也可以使用相同的框架进行数据导出。
不同的数据存储系统有很多接口:hdfs、关系数据库、elasticsearch等等。
使用这两个组件(kafka connect、kafka streams)的可能场景之一是:
从关系数据库连续地将数据导入kafka主题。使用kafka streams应用程序处理数据,该应用程序将结果写入某个输出主题。使用kafka connect将该输出主题中的数据导出到elasticsearch。
[1] 这篇博文很好地概述了这两种技术的结合:https://www.confluent.io/blog/hello-world-kafka-connect-kafka-streams/

gzjq41n4

gzjq41n43#

Kafka连接:由于Kafka作为数据中心(标准),Kafka必须连接到世界上所有的数据源并导入数据。这些都有相同的行为,所以如果我们有一个共同的框架和标准。它将非常有用和干净。这就是为什么Kafka连接在这里。它只是一座桥。这里不会发生数据转换。因为不是为了这个目的。
Kafka流:它是专门为数据转换。所以所有与计算相关的库都可以在这里找到。

相关问题