Skip to main content

选择合适的数据存储服务

分类:  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文档
  • 直接通过查询即可表明节点之间的关系。
  • 复合对象表示和存储以及操作。
应用实例
  • 组织结构图
  • 社会关系
  • 诈骗检测
  • 推荐引擎

数据分析

数据分析服务需要提供数据提取,存储以及分析等主要功能,数据是分布到多个服务器上以达到最大的缩放,大数据的处理格式向CSVParquetORC在这个场景下得到普遍的应用,历史数据(未处理/已处理的数据)一般被存储在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

支持数据模型的简要介绍就到这里了,基本上包括了所有的数据模型以及相应的服务介绍, 同时您可以通过下图来判断你需要什么样的数据存储: