簡體   English   中英

使用kafka流進行數據豐富化,KStream-GlobalKtable Join

[英]Data Enrichment using kafka streams, KStream-GlobalKtable Join

我有一種情況,我通過從kafka主題中讀取數據來創建Kafka KStream。 KStream記錄的鍵=空,值= {一個json對象},例如

null: { "ID":"1", "name":"XDFER"}
null: { "ID":"1", "name":"TRAFD"}

實名存儲在GlobalKTable中的方式為:

XDFER : "john"
TRAFD : "albert"

我想要執行數據充實,以便最終結果是:

null: { "ID":"1", "name":"john"}
null: { "ID":"1", "name":"albert"}

我開始閱讀有關Kafka Stream應用程序的信息,在每個教程/示例中,通過比較KStream和GlobalKTable的鍵來完成數據充實。 以我為例,我需要將KStream記錄的值與GlobalKTable中的鍵進行比較。 如何實現此目標的任何想法或示例。

具有null鍵或null值的流的輸入記錄將被忽略,並且不會觸發聯接。

因此,您需要重新設置流的密鑰,以便可以將名稱用作密鑰。

stream.selectKey(v-> v.get("name"))

重新輸入密鑰后,您可以使用GlobalKTable加入流。

您可以在此處閱讀詳細的行為:

https://kafka.apache.org/20/documentation/streams/developer-guide/dsl-api.html#kstream-globalktable-join

暫無
暫無

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

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