Azure DocumentDB和Azure表存储之间的主要区别

Sof*_*tor 25 azure azure-table-storage azure-cosmosdb

我正在为我的新项目选择数据库技术.我想知道Azure DocumentDB和Azure表存储之间的主要区别是什么?

似乎DocumentDB的主要优点是全文搜索和丰富的查询功能.如果我理解正确,我就不需要单独的搜索引擎库,如Lucene/Elasticsearch.

另一方面,Table Storage便宜得多.

可能影响我决定的其他差异是什么?

Dav*_*deB 14

我认为Azure搜索是Lucene的替代品.我使用Lucene.net担任工作角色,只是不必处理基础设施,摄取等问题.问题使Azure搜索服务对我很有吸引力.

我在Azure存储中找到了一个场景,其中我将DocumentDB 视为一种适合的方式,它可以解释我的观点.
我使用Azure存储来准备并保存我在Azure SQL数据库之外的解决方案中的用户活动的每日摘要,因为大量客户经常请求摘要,并且很有可能在一天中的某些时间遇到峰值.一次简单的写入读取了许多场景使用模式(我的架构)Azure SQL数据库发现很难应对,而它完全符合存储容量(因为大小,每日摘要不在缓存中).
这种情况随着时间的推移而演变,现在我碰巧在这些摘要中保持更多聚合并准备使用数据,并且更新变得更加复杂.

将这些每日摘要保存在DocumentDB中会使场景的一次写入更精细,仅更新复杂摘要中的相关数据,并简化读取部分,因为获取更多摘要的部分的能力变得微不足道,例如.

我会考虑DocumentDB在数据非结构化且相当复杂的情况下,我需要丰富的查询功能(表存储在这方面滞后).
我会考虑在需要高吞吐量全文搜索的场景中进行Azure搜索.

我没有找到配额/预期性能来精确地将DocumentDB与Search进行比较,但我非常怀疑Search是最适合取代Lucene的.

HTH,Davide

  • @DavidMakogon:您认为我应该删除回复,因为这是一个意见吗?对不起,我回答说我没注意这个政策. (2认同)