25

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

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

另一方面,表存储要便宜得多。

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

4

1 回答 1

14

我认为Azure Search是 Lucene 的替代品。我将 Lucene.net 用作工作者角色,并且只是不必处理基础结构、摄取等问题的想法使 Azure 搜索服务对我非常有吸引力。

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

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

我会在数据非结构化且相当复杂并且需要丰富的查询能力(表存储在这部分滞后)的情况下考虑使用DocumentDB 。在需要高吞吐量全文搜索的场景中, 我会考虑使用Azure 搜索。

我没有找到配额/预期性能来精确比较 DocumentDB 和 Search,但我高度怀疑 Search 最适合替换 Lucene。

HTH,戴维德

于 2014-08-22T10:20:01.500 回答