Azure cosmos db vs. 用于中间/临时存储的 blob 存储



我们在 WebAPI 中有要求,以 JSON 的形式从外部 API 中提取有效负载,清理并将其发布到 Azure SQL 中。对于此要求,我们目前依赖于 blob 存储,其中我们将 json 有效负载存储到 azure blob 中,并将其检索到 UI 中以进行数据清理活动。用户可以花费大量时间来验证数据并根据需要对其进行修改。用户可以起草几天,并在所有清洁完成后单击"导入"按钮。现在,我观察到,在这些草稿期间,blob 只是被检索并反序列化为对象列表,以查找要更新的相应属性。单击"草稿"时完成更新后,同一列表将序列化为 json 并存储回 Blob。序列化/反序列化的过程似乎很昂贵。相反,我正在考虑用 Cosmos DB 替换 blob。这真的会即兴表演吗?建议 Azure Sql Json 支持是否比所有这些选项更可行?我什至在考虑 Redis 缓存?决定的主要因素也是成本效益。

如果你喜欢搜索 JSON 对象,并且搜索结果的大小明显小于整个对象列表,则使用 Cosmos DB 将具有很大的性能优势。无论如何,您将为查询返回的对象支付序列化/反序列化价格,因为它们应该通过网络发送到您的应用程序。

Cosmos DB 的价格远高于标准 Blob 存储,但这是一个非常容易处理 JSON 工作负载的工具。你有SQL和MongoDB查询API,以某种方式你将能够设计与数据库无关的应用程序(至少在查询级别(。

我认为如果您的 JSON 对象列表比其他对象列表更频繁地被查阅,那么使用 Redis 缓存是有意义的,因此您可以将它们预加载到缓存中,利用性能更高的搜索操作并在以后上传到持久性 Blob 存储。

最新更新