簡體   English   中英

如何檢查Kafka主題中是否已經存在密鑰?

[英]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.

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