选择 Azure 上的存储解决方案
选择正确的存储解决方案可以改进性能、成本节省情况和可管理性。 每种类型的数据都有不同的存储要求。 你的任务是确定哪种存储解决方案最适合公司使用的数据类型。 始终考虑数据类型、所需操作、预期的延迟以及是否需要事务支持。
在本文中,你会在在线零售方案中应用所了解到的数据知识,并为每个数据集找到最佳的 Azure 服务。
产品目录数据
数据分类:半结构化,因为需要扩展或修改新产品的架构。
操作:客户需要大量读取操作,并且需要能够查询数据库中的多个字段。 另外,业务需要大量写入操作,跟踪其不断变化的库存信息。
延迟和吞吐量:高吞吐量和低延迟。
事务支持:由于产品数据与付款和库存相关联,因此需要事务支持。
建议的服务:Azure Cosmos DB
根据设计,Azure Cosmos DB 支持半结构化或 NoSQL 数据。 因此,Azure Cosmos DB 支持新字段(如“支持蓝牙”字段)或将来需要的任何新字段。
Azure Cosmos DB 支持 SQL 查询,且默认索引每个属性。 可以创建查询,方便客户针对目录中的任意属性进行筛选。
Azure Cosmos DB 也符合 ACID 标准,因此可以确保事务均按照这些严格要求完成。 OLTP 连接器可用于 Azure Cosmos DB。
另外,还可以使用 Azure Cosmos DB 在全球任意位置轻松复制数据。 如果电子商务站点的用户集中在美国、法国和英国,则可将数据复制到这些区域的数据中心。 延迟会降低,因为你实际上将数据移动到了离用户更近的地方。
即使数据复制到世界各地,也可从五种一致性级别中选择一种。 选择正确的一致性级别以后,即可确定要在一致性、可用性、延迟和吞吐量之间进行的权衡。 可在购物高峰期纵向扩展以应对更高的客户需求,或者在滞销时段纵向缩减以节约成本。
为何不选择其他 Azure 服务?
如果你可以识别大多数产品通用的属性子集,以及某些产品可能不存在的变量属性,那么 Azure SQL 数据库将是此数据集的最佳选择。 可以使用 Azure SQL 数据库将列中的结构化数据和存储为 JSON 列的可轻松扩展的半结构化数据组合在一起。 Azure SQL 数据库具有许多与 Azure Cosmos DB 相同的优势。 但是,如果数据的结构在不同的实体中发生更改,并且你不能预先定义在大多数实体中重复的通用属性集,那么 Azure SQL 数据库提供的优势就很少。 与 Azure Cosmos DB 索引文档中的每个属性不同,Azure SQL 数据库需要显式定义应索引半结构化文档中的哪些属性。 对于无法预测应该索引哪些属性的高度非结构化和可变数据,Azure Cosmos DB 是更好的选择。 Azure SQL 数据库支持 OLTP。
其他 Azure 服务(如 Azure 表存储、Azure HDInsight 中的 Apache HBase 以及 Azure Cache for Redis)也可以存储 NoSQL 数据。 在此方案中,用户将需要查询多个字段,因此 Azure Cosmos DB 更适合。 Azure Cosmos DB 默认索引每个字段,而其他 Azure 服务则在索引数据方面存在限制。 查询非索引字段会导致性能下降。
照片和视频
数据分类:非结构化。
操作:仅按 ID 检索,客户需要大量低延迟的读取操作,并且创建操作和更新操作的频率将降低,并且延迟可能高于读取操作。
延迟和吞吐量:按 ID 检索需要支持低延迟和高吞吐量。 创建操作和更新操作的延迟可以比读取操作更高。
事务支持:不是必需。
推荐服务:Azure Blob 存储
Azure Blob 存储支持存储照片和视频等文件。 它还可通过缓存最常用的内容,然后将其存储在边缘服务器上,与 Azure 内容分发网络配合使用。 Azure 内容分发网络可以降低向用户提供这些图像时的延迟。
在 Azure Blob 存储中,还可以将图像从热存储层移动到冷存储层或存档存储层。 这有助于降低成本,并将吞吐量集中在最常查看的图像和视频上。
为何不选择其他 Azure 服务?
可以将图像上传到 Azure 应用服务,以便由运行应用的同一服务器提供图像。 若文件数量不多,则此解决方案可行。 但如果有大量文件和全球受众,则可结合使用 Azure Blob 存储和 Azure 内容分发网络,这样的性能更佳。
业务数据
数据分类:结构化。
操作:跨多个数据库的只读复杂分析查询。
延迟和吞吐量:根据查询的复杂性,预计结果会出现一定延迟。
事务支持:不是必需。
建议的服务:Azure SQL 数据库
业务分析师最有可能使用 SQL 来查询业务数据,因为与任何其他语言相比,他们更了解这种查询语言。 你可以单独使用 Azure SQL 数据库作为解决方案。 但是,如果你将其与 Azure Analysis Services 配对,则数据分析师可以在 Azure SQL 数据库中创建数据的语义模型。 数据分析师随后可以将模型与业务用户共享,后者只需从任何商业智能 (BI) 工具连接到模型即可立即探索数据并获得见解。 Azure Analysis Services 支持 OLAP。
为何不选择其他 Azure 服务?
Azure Synapse Analytics 支持 OLAP 解决方案和 SQL 查询,但业务分析师需要执行跨数据库查询,Azure Synapse Analytics 不支持这种查询。
Azure 流分析是分析数据并将其转化为可操作见解的好方法,但其重点是流入的实时数据。 在本方案中,业务分析师只查看历史数据。