选择合适的数据存储服务
分类: Azure指南 ◆ 标签: #Azure #基础 #Azure入门 #Azure Cloud Architecting ◆ 发布于: 2023-05-28 9:43:42

选择合适的数据存储服务,首先需要对数据模型的特点有一些了解,然后结合自己的业务需要才能对如何选择Azure数据存储服务胸有成竹。
数据模型简要介绍
一般数据模型根据需要处理的数据特点,能够进行的操作来对数据模型进行分类。
关系型数据库管理系统
关系型数据库可以说软件行业的应用最广的数据模型了,它主要以二维的数据模型,以行,列来表示数据模型,添加增删查改,以及事务来管理用户的数据。这也是目前应用最广的数据模型。
Azure提供的服务
Azure为关系型数据库提供如下的服务:
- Azure SQL Database
- Azure Database for MySQL
- Azure Database for PostgreSQL
- Azure Database for MariaDB
支持的操作和特征
- 需要频繁的创建或者更新数据
- 支持事务,能保证在同一个事务里同时执行多种操作。
- 使用数据库约束保证数据之间的关系。
- 使用索引进行查询优化。
数据类型
- 数据可以高度标准化
- 必须需要数据的schema
- 支持多对多的关系。
- 支持约束,并应用在schema和多种数据条件/类型上
- 支持数据完整性,索引和关系。
- 数据要求强一致性,事务支持ACID
- 单个数据的大小不能太大。
应用实例
- 库存管理系统
- 订单管理系统
- 报表数据库
- 财务管理系统
键/值数据管理系统
键值数据每个数据都有一个唯一键,多数的基于键值关系的数据库仅仅支持简单的查询,插叙和删除操作,为了修改一条记录(无论是部分修改还是完成修改), 管理系统都要将整条记录覆盖掉。大多数的管理系统,读或者写一条记录都是原子的。键值数据库是经过高度优化的以键来查询值,但是不支持根据值进行查询,同时也不太适合跨库查询。但是键值数据很容进行外部分区和扩展。
Azure提供的服务
- Azure Cosmos DB Table API
- Azure Cache for Redis
- Azure Table Storage
支持的操作和特征
- 使用键来区分数据,类似一个字典。
- 不支持join, lock, unions.
- 没有聚合的功能。
- 一般不支持第二个索引。
数据类型
- 每个键都关联一个值
- 不支持Schema
- 不存在关系。
应用实例
- 数据缓存
- 会话管理
- 用户信息管理。
- 产品推荐和广告服务。
文档数据库
文档数据库存储文档的集合,每个文档都包含命名字段和值,这些值可能是非常简单的值,也可以是非常复杂的值,例如列表或者子集合等,每个文档都是根据Key来取回。一般情况下一个文档仅仅包含一个实体的数据,例如包括一个客户的基本信息,或者一张订单的内容,但是文档也可以包含类似关系数据库中需要被分拆到几个表的数据。而且文档数据库中的数据不需要包含同样的结构,文档数据库可以根据业务需要存储不同的数据。
Azure提供的服务
- Azure Cosmos DB SQL API
- Azure Cosmos DB MongoDB API
支持的操作和特征
- 通常支持插入和更新操作
- 使用应用代码进行对象匹配是更好的选择
- 单个文档作为单个数据块读写。
- 要求在多个字段上创建索引。
数据类型
- 可以管理非规范化的数据
- 单个文档数据大小相对较小。
- 每个文档类型都有自己单独的schema
- 文档可以包含可选字段。
- 文档数据是半结构化的。
应用实例
- 产品目录
- 内容管理系统
- 库存管理系统
图形数据库
图形数据库主要存储两种类型的信息节点(Node)
和边(Edge)
, 这里的边(Edge)
是指每个节点之间的关系,他们二者通过自身的属性提供信息给用户,同时边(Edge)
类似关系数据库中的列,具有方向性。
如下是一张图形数据库的实例:
Azure提供的服务
- Azure Cosmos DB Gremlin API
- SQL Server
支持的操作和特征
- 数据项之间的复杂关系的处理和表达。
- 数据项之间的复杂关系的更新。
- 天然支持对象之间的复杂关系,而无需使用
join
或者forgin-key
。
数据类型
- 节点和节点之间的关系(Edge)
- 节点类似关系数据库中的行,或者是Json文档
- 直接通过查询即可表明节点之间的关系。
- 复合对象表示和存储以及操作。
应用实例
- 组织结构图
- 社会关系
- 诈骗检测
- 推荐引擎
数据分析
数据分析服务需要提供数据提取,存储以及分析等主要功能,数据是分布到多个服务器上以达到最大的缩放,大数据的处理格式向CSV
, Parquet
, ORC
在这个场景下得到普遍的应用,历史数据(未处理/已处理的数据)一般被存储在Azure Blob Storage或者Azure Data Lake Gen2上。
Azure提供的服务
- Azure Synapse Analytics
- Azure Data Lake Gen2
- Azure Data Explorer
- Azure Analysis Services
- HDInsight
- Azure Databricks
支持的操作和特征
- 数据分析
- 企业智能分析
应用实例
- 企业数据仓库
列数据库
Azure提供如下的服务支持列数据库
- Azure Cosmos DB Cassandra API
- HBase in HDInsight
搜索数据库
- Azure Search API
时间系列数据
- Azure Time Series Insight
对象存储
对象存储指经过优化的处理大的二进制对象,例如图片,文件,视频,音频,大的文档和数据对象等等。
- Azure Blob Storage
- Azure Data Lake Gen2
文件共享
- Azure File
支持数据模型的简要介绍就到这里了,基本上包括了所有的数据模型以及相应的服务介绍, 同时您可以通过下图来判断你需要什么样的数据存储: