首页 文章

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

提问于
浏览
25

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

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

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

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

1 回答

  • 14

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

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

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

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

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

    HTH,Davide

相关问题