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

时间:2014-08-22 08:18:45

标签: azure azure-table-storage azure-cosmosdb

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

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

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

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

1 个答案:

答案 0 :(得分:14)

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

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

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

在数据为DocumentDB的情况下,我会考虑unstructured and rather complex,我需要丰富的查询功能(表存储在此部分滞后)。
在需要高吞吐量全文搜索的场景中,我会考虑Azure Search

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

HTH,Davide