azure - 最佳实践 - 以不同方式查询的外部参考数据的存储选项
问题描述
我们有一个包含各种医疗保健应用程序的云平台。每个应用程序都需要我们所说的参考数据。参考数据始终是来自供应商的每日或定期计划的外部数据。参考数据的一个例子是 FDB MedKnowledge,其中包括消费者药物专着的综合纲要,以及药物图像和印记。
各种应用程序将查询参考数据以将其呈现给他们的目标客户(可以是医生、护士、技术人员、采购部门等......)。将开发一个通用的全局 API 来返回请求的数据。
需要历史信息(例如:FDB 在 2017 年有 NDC1,然后在 2019 年从 FDB 提要中删除。因此,开了 NDC1 的医生应该能够查询该药物的历史信息)。
每天我们都会收到来自外部提供者的提要,并将其用作输入源来合并(更新、插入、删除)我们的参考数据副本,以便其实时表反映最新的外部提要。
在 Azure 中,我们有以下存储选项: Blob 存储 Cosmos Db 具有系统版本控制的 Azure sql 数据库 Azure Datawarehouse Azure Data Lake
存储外部参考数据的最佳做法是什么?我们倾向于使用系统版本控制的 azure sql 数据库。你们中有人使用过外部参考数据吗?如果是,您的存储决定是什么?它对您是否有效?我想听听您的意见和意见。谢谢!
解决方案
您需要根据您尝试存储的数据类型以及您需要如何引用它来做出选择。听起来您实际上可能需要一些不同的技术。
例如,Azure SQL 非常适合存储关系数据。所以如果你的数据是表格形式的,并且需要在它之间建立关系,那么这是一个不错的选择。但是,如果您要存储数百万行,那么关系数据库的性能可能会受到影响。在那种情况下,或者在您有大量事务数据的情况下,您可能希望查看 Cosmos DB。
您曾经提到过图像,将它们放入数据库并不是一个好主意,在这种情况下,您将希望使用 blob 存储。
“参考数据”真的没有任何意义,看看你需要存储的数据的个别类型,以及如何使用这些数据,并据此做出决策。对于许多不同类型的数据,不可能有一个万能的解决方案。
推荐阅读
- python - 如何将 WSGIRequest 转换为字符串
- mysql - MySQL 每天使用情况
- javascript - 使用事件监听器在 Javascript 中提交表单不会触发获取请求
- python - 如何根据其他 3 个列中的项目绘制两个 pandas 列?
- performance - 使用 IIS Express 监视性能计数器
- modelica - 如何在 Modelica 中存储和插入多维、可变大小的数组?
- javascript - 处理 JSON
- gradle - 打包 tornadofx 应用程序时出现不受支持的 major.minor 版本错误
- karate - 验证来自具有多个数据的 xpath 位置的数据
- c# - 如何拆分 Grid 以仅使某些元素可滚动?