我正在为我的新项目选择数据库技术。我想知道 Azure DocumentDB 和 Azure 表存储之间的主要区别是什么?
DocumentDB 的主要优势似乎是全文搜索和丰富的查询功能。如果我理解正确,我不需要单独的搜索引擎库,例如 Lucene/Elasticsearch。
另一方面,表存储要便宜得多。
可能影响我的决定的其他差异是什么?
我正在为我的新项目选择数据库技术。我想知道 Azure DocumentDB 和 Azure 表存储之间的主要区别是什么?
DocumentDB 的主要优势似乎是全文搜索和丰富的查询功能。如果我理解正确,我不需要单独的搜索引擎库,例如 Lucene/Elasticsearch。
另一方面,表存储要便宜得多。
可能影响我的决定的其他差异是什么?
我认为Azure Search是 Lucene 的替代品。我将 Lucene.net 用作工作者角色,并且只是不必处理基础结构、摄取等问题的想法使 Azure 搜索服务对我非常有吸引力。
有一个我使用 Azure 存储的场景,我认为DocumentDB
非常适合,它可能解释了我的观点。
我使用 Azure 存储在 Azure SQL 数据库之外的解决方案中准备和保存用户活动的每日摘要,因为大量客户经常请求这些摘要,并且很有可能在一天中的某些时间遇到峰值。一次简单的写入一次读取许多场景使用模式(我的架构)Azure SQL db 发现它很难应付,但它完全适合存储容量(顺便说一句,由于大小,每日摘要不在缓存中)。
这种情况随着时间的推移而演变,现在我碰巧在这些摘要中保留了更多汇总和准备使用的数据,并且更新变得更加复杂。
将这些每日摘要保存在 DocumentDB 中将使场景中的一次写入部分更加细化,仅更新复杂摘要中的相关数据,并简化读取部分,因为获取更多摘要部分的能力变得微不足道,例如.
我会在数据非结构化且相当复杂并且需要丰富的查询能力(表存储在这部分滞后)的情况下考虑使用DocumentDB 。在需要高吞吐量全文搜索的场景中,
我会考虑使用Azure 搜索。
我没有找到配额/预期性能来精确比较 DocumentDB 和 Search,但我高度怀疑 Search 最适合替换 Lucene。
HTH,戴维德