[英]How to check whether a key already exists in a Kafka topic?
我想要一個函數,例如checkKey(),它應如下所示:
def checkKey(key):
if(key in topic-name):
return True
return False
我在Kafka的文檔中找不到此內容。 我知道,為了刪除重復數據,Kafka可以更新密鑰。 但是,我不想更新,我想知道它是否已經存在。 如果存在,我想通過以下方式更新其值:
def updateValue(key):
if(checkKey(key)):
value of key in topic-name += 1
我需要使用Python執行此操作,因此相同的代碼示例將非常有幫助。
您可以為此使用Kafka Streams 。 只需使用StreamBuilder為您的主題定義一個KTable。 表格使用Materialized.as("store-name")
為狀態存儲提供名稱,然后您可以使用Interactive Queries進行查詢 ,請參見該頁面以獲取更多示例,但是它像streams.store("store-name", QueryableStoreTypes.keyValueStore()).get(key)
。
Kafka不是一張桌子,它是一個隊列。 要查看主題中是否存在鍵,您需要閱讀整個主題,或者,如果可能的話,請保留該主題的本地副本。 如果您知道分區邏輯,則可以將搜索限制在特定分區。
話雖這么說,Confluent有一個稱為KSQL的流SQL引擎,它可能會對您有所幫助。 你可以在這里看
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.