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
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 使用Kafka Connect将邮件路由到不同的ElasticSearchIndex_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Apache Kafka_Apache Kafka Connect - Fatal编程技术网 elasticsearch 使用Kafka Connect将邮件路由到不同的ElasticSearchIndex,elasticsearch,apache-kafka,apache-kafka-connect,elasticsearch,Apache Kafka,Apache Kafka Connect" /> elasticsearch 使用Kafka Connect将邮件路由到不同的ElasticSearchIndex,elasticsearch,apache-kafka,apache-kafka-connect,elasticsearch,Apache Kafka,Apache Kafka Connect" />

elasticsearch 使用Kafka Connect将邮件路由到不同的ElasticSearchIndex

elasticsearch 使用Kafka Connect将邮件路由到不同的ElasticSearchIndex,elasticsearch,apache-kafka,apache-kafka-connect,elasticsearch,Apache Kafka,Apache Kafka Connect,我有一个kafka主题,其中有多种类型的消息(都是JSON)被发布到其中,标题属性为:-eventType=“abc”或eventType=“xyz”或eventType=“def”等 我的要求是根据Kafka中发送的eventType头字段,将这些消息从Kafka主题发送到不同的elasticSearch索引。 e、 g.如果eventType=“abc”,则将数据推送到elasticsearch index=“abc123” 如果eventType=“xyz”,则将数据推送到elastics

我有一个kafka主题,其中有多种类型的消息(都是JSON)被发布到其中,标题属性为:-eventType=“abc”或eventType=“xyz”或eventType=“def”等

我的要求是根据Kafka中发送的eventType头字段,将这些消息从Kafka主题发送到不同的elasticSearch索引。 e、 g.如果eventType=“abc”,则将数据推送到elasticsearch index=“abc123” 如果eventType=“xyz”,则将数据推送到elasticsearch index=“xyz123”

我计划使用kafka connect进行此操作。我需要帮助如何使用kafka connect实现这一点

我正在使用kafka 1.1.0,并计划使用confluentinc kafka connect elasticsearch--插件

这是我的弹性搜索接收器连接配置文件:-

name=elasticsearch-sink
connector.class=io.confluent.connect.elasticsearch.ElasticsearchSinkConnector
tasks.max=1
topics=test-elasticsearch-sink
topic.index.map=test-1:elastic_purchase_index1
key.ignore=true
connection.url=<url>
type.name=purchasev1
key.ignore=true
schema.ignore=true
name=elasticsearch接收器
connector.class=io.confluent.connect.elasticsearch.ElasticsearchSinkConnector
tasks.max=1
主题=测试弹性搜索接收器
topic.index.map=test-1:弹性购买索引1
key.ignore=true
connection.url=
type.name=purchasev1
key.ignore=true
schema.ignore=true
基于eventType标头字段

使用+将消息路由到各个标记


然后使用ElasticSearch接收器中的
topics.regex
来定义要从中读取的主题模式

您对RegexRouter做过研究吗?或者,使用ksqlDB或Kafka Streams过滤事件到新的topicsRegex路由器将用于过滤事件并应用转换,如替换字段并放入新主题。这将导致从一个源主题放入多个主题,而我不希望这样做。我认为Kafka stream可以做到这一点(使用事件,然后发送到相应的弹性搜索索引),但想检查是否可以通过Kafka connect?您不会使用Kafka Streams将数据发送到弹性搜索索引。。。请参阅-
topic.index.map
,因为我将只从单个主题获取数据,所以不需要在弹性搜索接收器连接器配置中使用topics.regex。ExtractTopic$Value用于提取主题内容中的值,但它将如何提取header属性?我的要求是在基于标题键的弹性搜索中,从单个主题获取所有消息并映射到不同的索引。你能在我的接收器配置中提供示例配置来测试这个吗?我找不到解决办法。感谢您的帮助。您需要在Connect记录中将一个主题转换为多个主题名称(不是实际的卡夫卡主题)。我不知道完整的JSON是什么样子,所以我不能提供一个示例。正如我指出的,您需要提取该值,然后将其路由到一个索引(该索引始终基于每个连接记录的“topicname”元数据字段)。因此,如果更新名称,将获得不同的索引。尝试一些组合并更新问题,如果您有问题,我将如何使用kafka connect解析kafka头字段?在kafka connect文档中找不到。有效负载的JSON并不重要,因为到不同索引的路由将基于头键,而与有效负载无关。我正在检查您对Connect Record的建议,我认为您必须在Github上找到,或者编写自己的转换来获取Kafka消息头。