簡體   English   中英

自定義Kafka Connect-ElasticSearch接收器連接器

[英]Customize Kafka Connect - ElasticSearch Sink Connector

我遇到了Kafka主題,其中有多種類型的消息流入並使用Kafka Connect寫入Elastic Search。 在我必須將一組唯一的消息分成唯一的索引之前,流看起來不錯。 即我必須基於字段(JSON消息)獲取新數據集的新索引。

如何配置/自定義Kafka連接以為我做同樣的事情? 每個消息都包含一個表示消息類型和時間戳的字段。

示例Json看起來像:Sample1: {"log":{"data":"information", "version":"1.1"}, "type":"xyz", "timestamp":"2019-08-28t10:07:40.370z", "value":{}}

Sample2: {"log":{"data":"information", "version":"1.1", "value":{}}, "type":"abc", "timestamp":"2019-08-28t10:07:40.370z" }

我想自定義/配置Kafka connect ES接收器,以將Sample1文檔寫入索引“ xyz.20190828”,並將Sample2文檔寫入索引“ abc.20190828”。

我正在使用Kafka-2.2.0和confluentinc-kafka-connect-elasticsearch-5.2.1插件。

感謝幫助。

您可以使用自定義的單一消息轉換(SMT)來完成此操作,您需要自己編寫 通過根據消息的內容更改消息的主題,可以將其路由到其他Elasticsearch索引。

目前,Apache Kafka附帶有一個SMT,可以重命名整個主題( RegExRouter )或添加時間戳( TimestampRouter )。 您可能會發現這些是編寫自己的有用的起點。

備選方案如@wardzniak在他的評論中建議的那樣-在使用Kafka Connect將生成的單獨主題發送到Elasticsearch之前,使用流處理(例如Kafka Streams,KSQL)對源主題進行預處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM