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 存储稍后。
我们在 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 存储稍后。