intermediate/temporary 存储的 Azure cosmos db 与 blob 存储

Azure cosmos db vs. blob storage for intermediate/temporary storage

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

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

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

我认为如果您有 JSON 个比其他对象更频繁地查询的对象列表,我认为使用 Redis 缓存是有意义的,因此您可以将它们预加载到缓存中,利用更高效的搜索操作并上传到 persitent Blob 存储稍后。