我想要一个函数,比如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执行,因此相同的代码示例将非常有用。
答案 0 :(得分:0)
卡夫卡不是一张桌子,它是一个队列。要查看主题中是否存在密钥,您需要阅读整个主题,或者,如果可能的话,请保留主题的本地副本。如果您知道分区逻辑,则可以将搜索限制在特定分区。
话虽这么说,Confluent有一个名为KSQL的流式SQL引擎,可能可以帮助你。您可以查找here
答案 1 :(得分:0)
您可以使用Kafka Streams。只需使用StreamBuilder为您的主题定义KTable。table使用Materialized.as("store-name")
为状态存储提供名称,然后您可以使用Interactive Queries进行查询,请参阅该页面了解更多示例但是&# 39;简单到streams.store("store-name", QueryableStoreTypes.keyValueStore()).get(key)
。