SQL Server到事件中心-事件重复

时间:2018-08-21 15:21:04

标签: sql-server duplicates azure-eventhub

我的应用程序使用来自事件中心的事件。事件中心由Azure SQL Server数据库填充。然后,一个消费者就从中心消费事件。

据我了解,事件中心上的事件可能是重复的(因为事件中心使用“至少一次”策略)。例如,一次在数据库上执行的SQL查询可能在事件中心中驻留了一次以上(由于某些通讯失败+重试)

我的问题是:

  1. 我正确吗(单个SQL Server事件可能在事件中心上驻留多次)?如果是这样,这些重复的SQL Server事件是否可以驻留在不同的分区上?

  2. 如何识别重复的事件(因为每个SQL Server事件中都没有“消息ID”字段)?

非常感谢您,

爱丹。

2 个答案:

答案 0 :(得分:0)

1。由于负载平衡因素,您重复的事件可能驻留在相同或不同的分区上

2。要检测重复的事件,可以使用序列号和partitionkey的组合作为比较因子,因为事件的序列号在分区中是唯一的。

答案 1 :(得分:0)

如何将数据复制到事件中心将确​​定您需要在此处使用的策略...请参阅下文。

  1. 这取决于将数据发送到事件中心的方式,取决于重复的记录是否将位于不同的分区中。如果将数据发送到事件中心的代码设置了PartitionKey,并且每次发送记录时PartitionKey都相同,则重复的记录将位于同一分区中。

  2. 为了确定重复项,您需要一些唯一ID(或字段组合以创建唯一ID),对于同一记录,该ID始终相同。如果订购很重要,则通常将唯一ID用作PartitionKey。