elasticsearch 使用Kafka Connect将邮件路由到不同的ElasticSearchIndex
我有一个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--插件 这是我的弹性搜索接收器连接配置文件:-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
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消息头。