读取Cosmos DB Change Feed是否消耗RU / s?

时间:2020-02-09 16:49:24

标签: azure-cosmosdb

读取Cosmos DB Change Feed是否在要读取其提要的容器上消耗RU / s?从我的实验中,我认为答案是“否”,但我希望证实。我在文档中找不到答案。谢谢!

2 个答案:

答案 0 :(得分:3)

变更Feed的费用与读取Feed基本上相同。读取变更Feed(无结果)消耗2 RU / s。对于结果,作为“读取提要”,取决于结果的数量和数量。

答案 1 :(得分:0)

实际上,我正在努力解决类似的问题,也找不到任何具体的文档(就像@Sajeetharan一样),但我的发现可能对您有所帮助。我想知道收听变更提要将如何影响注册流量(或更优:RU数量)。我希望它的影响最小,并且在任何情况下都比手动轮询机制低得多。那应该是变更Feed的重点,不是吗?

备注:我正在使用C#和 CosmosDB-MongoDB-API 。因此,体验到的行为可能是API实现的结果,而不是CosmosDB记帐的结果。

无论如何,我在“指标”页面中注意到了这一点: ~300 requests per 5min

这是一个对C#应用程序的测试,该应用程序仅在集合上运行Watch(),并在观察者注意到更改后立即打印标记。基本上是这样:

using (var cursor = c.Watch(pipeline, new ChangeStreamOptions
        {
            FullDocument = ChangeStreamFullDocumentOption.UpdateLookup,
        }))
        {
            foreach (var change in cursor.ToEnumerable())
            {
                // process change event
                Console.WriteLine(change);
            }
        }

在不更改集合的情况下,显然有一些事情导致了大约 1 RU / s 的费用...就我而言,我不需要立即通知,因此每隔几秒钟进行一次手动轮询便宜得多。这似乎使变更Feed的目的大大缩小了。

在阅读@MatiasQuaranta的答案后(特别注意2RU / s与1RU / s的差异),我也想提供此信息。我仍然希望有人能提出更详细的答案。