【问题标题】:Azure EventHub : How can I get list of partition keys for an existing EventHubAzure EventHub:如何获取现有 EventHub 的分区键列表
【发布时间】:2020-07-01 07:13:39
【问题描述】:

我有一个已经有记录的 Azure EventHub。我需要获取此 EventHub 中唯一分区键的列表。我需要将其用于处理器/消费者中的特定自定义逻辑。感谢任何建议或解决方法。

【问题讨论】:

    标签: partitioning partition azure-eventhub


    【解决方案1】:

    我不确定您是否可能将partition idpartition key 混为一谈;前者是事件中心的核心概念,可以使用任何受支持语言的 SDK、命令行或 REST 接口直接查询。 .NET 客户端库的示例可以在here 找到。

    事件中心服务不会保留或公开发布事件时使用的分区键。发布带有分区键的事件批次时,服务会根据该键生成一个散列,并使用该散列值来选择应该将事件路由到的分区。保证相同的键产生相同的散列和路由到相同的分区。由于给定 key 的 hash 值是稳定的,并且 key 本身对服务没有意义,所以它是按需计算的。

    在您的情况下,听起来您想了解当您从服务中读取事件时,在下游消费者中发布事件时使用了什么键。我建议使用事件的Properties 包来按住您选择的键并将其与事件相关联。

    Properties 旨在保存对您的应用程序有意义的任意数据,并在事件通过系统时将其与您的事件捆绑在一起。可以在here 找到使用 .NET 客户端库在 Properties 中包含自定义元数据的示例。

    【讨论】:

    • 谢谢。我实际上是在专门寻找分区键列表而不是分区 ID。创建 Eventhub 记录时,可以指定分区键。这可以是一个分组机制,比如国家或州。然后 Eventhub 将有许多记录,这些记录可以根据这些指定的键存储在分区中。当然不能保证哪个分区保存哪些键,但通常具有相同键的所有记录都会在同一个分区中。
    • 知道分区键列表可以让我确定唯一国家/州的数量,而无需遍历 eventthub 中的所有记录。
    • 明白了;简而言之,该服务不会跟踪该信息,您需要自己进行跟踪。更多的背景和细节从我的回答的第二段开始。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 2016-11-25
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    相关资源
    最近更新 更多