Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 卡夫卡连接和流_Apache Kafka_Apache Kafka Streams_Apache Kafka Connect - Fatal编程技术网

Apache kafka 卡夫卡连接和流

Apache kafka 卡夫卡连接和流,apache-kafka,apache-kafka-streams,apache-kafka-connect,Apache Kafka,Apache Kafka Streams,Apache Kafka Connect,所以我最近开始阅读卡夫卡,我对卡夫卡连接和卡夫卡流之间的区别有点困惑。 根据定义,卡夫卡流可以从卡夫卡主题收集数据,对其进行处理,并将输出推送到另一个卡夫卡主题。 卡夫卡连接时将大型数据集移入和移出卡夫卡 我的问题是为什么我们需要Kafka Connect可以读取数据、处理数据并将其推送到某个主题?为什么要增加一个组件? 如果有人能解释这种差异,那就太好了 提前感谢:)Kafka Streams是Apache Kafka的流处理库。因此,您可以构建流式应用程序,从Kafka主题读取/写入数据。这

所以我最近开始阅读卡夫卡,我对卡夫卡连接和卡夫卡流之间的区别有点困惑。 根据定义,卡夫卡流可以从卡夫卡主题收集数据,对其进行处理,并将输出推送到另一个卡夫卡主题。 卡夫卡连接时将大型数据集移入和移出卡夫卡

我的问题是为什么我们需要Kafka Connect可以读取数据、处理数据并将其推送到某个主题?为什么要增加一个组件? 如果有人能解释这种差异,那就太好了 提前感谢:)

Kafka Streams是Apache Kafka的流处理库。因此,您可以构建流式应用程序,从Kafka主题读取/写入数据。这是一个通用图书馆

另一方面,Kafka Connect是一个“数据集成”框架。通常使用Kafka Connect将数据从一些数据系统(如关系数据库)导入到某个Kafka主题中。您也可以使用相同的框架进行数据导出

不同的数据存储系统有很多连接器:HDFS、关系数据库、ElasticSearch等等

使用这两个组件(卡夫卡连接、卡夫卡流)的一个可能场景是:

从关系数据库持续将数据导入Kafka主题。使用Kafka Streams应用程序处理这些数据,该应用程序将结果写入某个输出主题。使用Kafka Connect将该输出主题中的数据导出到ElasticSearch中

[1] 这篇博文很好地概述了这两种技术的结合:

Kafka Streams是ApacheKafka的流处理库。因此,您可以构建流式应用程序,从Kafka主题读取/写入数据。这是一个通用图书馆

另一方面,Kafka Connect是一个“数据集成”框架。通常使用Kafka Connect将数据从一些数据系统(如关系数据库)导入到某个Kafka主题中。您也可以使用相同的框架进行数据导出

不同的数据存储系统有很多连接器:HDFS、关系数据库、ElasticSearch等等

使用这两个组件(卡夫卡连接、卡夫卡流)的一个可能场景是:

从关系数据库持续将数据导入Kafka主题。使用Kafka Streams应用程序处理这些数据,该应用程序将结果写入某个输出主题。使用Kafka Connect将该输出主题中的数据导出到ElasticSearch中


[1] 这篇博文很好地概述了这两种技术的共同作用:

卡夫卡连接不应用于广泛的筛选和比选择字段更大的数据转换。卡夫卡峰会讨论了何时不使用简单消息转换(SMT)

Kafka流可以嵌入到任何Java应用程序中,作为应用程序使用的内存存储类型。例如,可以编写一个web应用程序,并将KTable用作由Kafka备份的数据库。否则,它只是一个比生产者和消费者更高级的库,但仅限于处理单个Kafka集群数据。KSQL是这个之上的一个附加层


另一方面,Kafka Connect(虽然可能是嵌入式的;请参阅Debezium embedded mode)意味着更“不插手”——如果存在连接器,那么您所需要的只是配置文件,而不是自己编写任何代码

Kafka Connect不应用于广泛的筛选和比选择字段更大的数据转换。卡夫卡峰会讨论了何时不使用简单消息转换(SMT)

Kafka流可以嵌入到任何Java应用程序中,作为应用程序使用的内存存储类型。例如,可以编写一个web应用程序,并将KTable用作由Kafka备份的数据库。否则,它只是一个比生产者和消费者更高级的库,但仅限于处理单个Kafka集群数据。KSQL是这个之上的一个附加层


另一方面,Kafka Connect(虽然可能是嵌入式的;请参见Debezium嵌入式模式)意味着更“不插手”——如果存在连接器,那么您所需要的只是配置文件,而不是自己编写任何代码,卡夫卡必须连接到世界上所有的数据源并导入数据。这些都有相同的行为,所以如果我们有一个通用的框架和标准来实现这一目的。它将是非常有用和干净的。这就是为什么卡夫卡连接在这里。这就是桥。这里不会发生数据转换。因为它不是为了那个目的


卡夫卡流:它是专门为数据转换而设计的。因此,所有与计算相关的库都将在这里提供

卡夫卡连接:由于卡夫卡作为数据中心(标准),卡夫卡必须连接到世界上所有的数据源并导入数据。这些都有相同的行为,所以如果我们有一个通用的框架和标准来实现这一目的。它将是非常有用和干净的。这就是为什么卡夫卡连接在这里。这就是桥。这里不会发生数据转换。因为它不是为了那个目的

卡夫卡流:它是专门为数据转换而设计的。因此,所有与计算相关的库都将在这里提供