你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 大数据 体系结构中,通常需要分析数据存储以结构化格式提供已处理的数据,可以使用分析工具进行查询。 支持查询热路径和冷路径数据的分析数据存储统称为 服务层或 数据服务存储。
服务层处理来自热路径和冷路径的已处理数据。 在 Lambda 体系结构中,服务层细分为两个层。 速度服务层包含增量处理的数据。 批处理服务层包含批处理处理的输出。 服务层需要对具有低延迟的随机读取提供强有力的支持。 速度层的数据存储还应支持随机写入,因为批量将数据加载到此存储中会引入不需要的延迟。 或者,批处理层的数据存储需要支持批处理写入,而不是随机写入。
对于所有数据存储任务,没有任何最佳数据管理选择。 不同的数据管理解决方案针对不同的任务进行了优化。 大多数实际云应用和大数据进程具有各种数据存储要求,并且通常使用数据存储解决方案的组合。
新式分析解决方案(如 Microsoft Fabric)提供了一个全面的平台,用于集成各种数据服务和工具以满足不同的分析需求。 Fabric 包括 OneLake,它是整个组织的单个、统一的逻辑数据湖。 OneLake 旨在存储、管理和保护一个位置中的所有组织数据。 这种灵活性使组织能够满足各种数据存储和处理要求。
选择分析数据存储
对于 Azure 中的数据服务存储,有多个选项可用,具体取决于你的需求:
- Fabric,具体来说:
- Azure Databricks
- Azure SQL 数据库
- Azure VM 中的 SQL Server
- Azure Analysis Services
- Azure Cosmos DB
以下数据库模型针对不同类型的任务进行优化:
键值数据库 为每个键值存储单个序列化对象。 当检索基于特定键时,它们非常适合用于管理大量数据,而无需查询其他项属性。
文档数据库 是其中值是 文档的键值数据库。 在这种情况下,文件是由命名字段和值组成的集合。 数据库通常以 XML、YAML、JSON 或二进制 JSON 等格式存储数据,但可能会使用纯文本。 文档数据库可以查询非键字段并定义辅助索引以提高查询效率。 此功能使文档数据库更适合需要根据比文档键值更复杂的条件检索数据的应用程序。 例如,你可以按产品 ID、客户 ID 或客户名称等字段进行查询。
列存储数据库 是键值数据存储,用于在磁盘上单独存储每个列。 宽列存储数据库是一种列存储数据库,用于存储列系列,而不仅仅是单个列。 例如,人口普查数据库可能为以下每项都有单独的列族:
某人的名字、中间名和姓氏
该人员的地址
该人的个人资料信息,如其出生日期或性别
该数据库可以将每个列族存储在单独的分区中,同时为个人保留与同一键相关的所有数据。 应用程序可以读取单个列系列,而无需扫描实体的所有数据。
图形数据库 将信息存储为对象和关系的集合。 图形数据库可以高效地执行在对象网络以及它们之间的关系中进行遍历的查询。 例如,对象可以是人力资源数据库中的员工,并且你可能希望使“查找直接或间接为 Scott 工作的所有员工”这类查询更为容易。
遥测数据库和时序数据库是仅允许追加对象的集合。 遥测数据库能够高效地为各种列存储和内存结构中的数据建立索引。 此功能使它们成为存储和分析大量遥测和时序数据的最佳选择。
Fabric 支持各种数据库模型,包括键值、文档、列存储、图形和遥测数据库。 这种灵活性可确保各种分析任务的可伸缩性。 若要为分析工作负荷选择正确的 Fabric 数据存储,请参阅 Fabric 决策指南:选择数据存储。
关键选择条件
若要优化选择过程,请考虑以下条件:
是否需要使用作为数据的热路径提供服务的服务存储? 如果是,请将选项范围缩小到针对速度服务层进行了优化的那些选项。
是否需要大规模并行处理支持,其中查询自动分布在多个进程或节点之间? 如果是,请选择一个支持查询横向扩展的选项。
是否想要使用关系数据存储? 如果这样做,请将选项范围缩小到具有关系数据库模型的选项。 但是,某些非关系存储支持用于查询的 SQL 语法,而 SQL 终结点等工具可用于查询 OneLake 等非关系数据存储。
是否收集时序数据? 是否使用仅追加数据? Fabric OneLake 支持多个分析引擎,包括 Analysis Services、T-SQL 和 Apache Spark。 Fabric Eventhouse 使它适用于时序数据的各种数据处理和查询需求。
功能矩阵
下表总结了这些托管服务中功能的主要差异。
常规功能
| 功能 | Fabric Lakehouse | Fabric Warehouse | Fabric Eventhouse | Fabric SQL 数据库 | Azure SQL 数据库 | Azure Cosmos DB | Analysis Services |
|---|---|---|---|---|---|---|---|
| 主数据库模型 | 使用 Apache Parquet 的统一数据湖、关系式、用户管理的 Delta Lake 格式 | 使用 Apache Parquet 的统一数据湖、关系型和系统管理的 Delta Lake 格式 | 时序追加导向的数据存储、图、向量 | 关系(在使用列存储索引时的列存储格式) | 关系(在使用列存储索引时的列存储格式) | 文档存储、图形、键-值存储、宽列存储 | 表格语义模型 |
| SQL 语言支持 | 是1 | 是 | 是2 | 是 | 是 | 是 | 不 |
| 针对速度服务层进行了优化 | 是 | 是 | 是3 | 是4 | 是5 | 是 | 不 |
[1] 利用 SQL Analytics 终结点进行 T-SQL。
[2] KQL 具有部分 T-SQL 语言支持。
[3] 支持排队摄取和流式摄取。
[4] 支持事务精度,并具备低延迟访问和实时更新功能。
[5] 使用内存优化表和哈希或非聚集索引。
可伸缩性功能
| 功能 | Fabric Lakehouse | Fabric Warehouse | Fabric Eventhouse | Fabric SQL 数据库 | Azure SQL 数据库 | Azure Cosmos DB | Analysis Services |
|---|---|---|---|---|---|---|---|
| 用于实现高可用性的的冗余区域服务器 | 是1,2 | 是1,2 | 是 | 是 | 是 | 是 | 是 |
| 支持查询横向扩展 | 是3 | 是4 | 是5 | 是 | 不 | 是 | 是 |
| 动态可伸缩性(纵向扩展) | 是3 | 是4 | 是5 | 是 | 是 | 是 | 是 |
| 支持数据在内存中的缓存 | 是6 | 是6 | 是7 | 是 | 是 | 是 | 不 |
[1] SQL 终结点通过全局流量管理器路由,但数据始终在分配的 Fabric 容量区域中进行处理。
[2] Lakehouse 和 Warehouse 使用 Delta Parquet 格式在 OneLake 中存储数据,该格式支持跨引擎查询和复制。
[3] Lakehouse 支持非结构化数据和结构化数据的基于 Spark 的横向扩展。
[4] 仓库使用 T-SQL,并支持多表事务、自主工作负荷管理和分布式查询处理(DQP)。 DQP 充当群集管理器,根据查询复杂性动态分配计算资源。
[5] Eventhouse 支持 KQL 和 SQL 联邦数据处理,能够进行跨多个源的实时分析,并在热缓存使用率超过约 95% 时扩展计算资源规模。
[6] 适用于 Spark 作业的智能缓存、 内存中缓存、SQL 分析终结点 的结果集缓存 。
[7] 经常访问的数据存储在热缓存中,其中包括内存中和 SSD 存储。
安全功能
| 功能 | Fabric Lakehouse | Fabric Warehouse | Fabric Eventhouse | Fabric SQL 数据库 | Azure SQL 数据库 | Azure Cosmos DB | Analysis Services |
|---|---|---|---|---|---|---|---|
| 身份验证 | Microsoft Entra ID | Microsoft Entra ID | Microsoft Entra ID | Microsoft Entra ID | SQL 或 Microsoft Entra ID | 数据库用户或通过身份和访问管理(IAM)控制的 Microsoft Entra ID | Microsoft Entra ID |
| 静态数据加密 | 是 | 是 | 是 | 是 | 是1 | 是 | 是 |
| 行级安全性 | 是 | 是 | 是 | 是 | 是 | 不 | 是 |
| 支持防火墙 | 是2 | 是2 | 是3 | 是 | 是 | 是 | 是 |
| 动态数据掩码 | 是4 | 是4 | 不 | 是 | 是 | 不 | 不 |
[1] 要求使用透明数据加密来加密和解密静态数据。
[2] 专用链接和 Entra 条件访问可用于限制对 Fabric 资源的访问。
[3] Fabric Eventhouse 和 Real-Time Intelligence 工作负载可以从安全源(如 Kafka、Azure 事件中心和 AMQP)引入数据,并通过安全终结点进行路由。
[4] 可以在 Fabric SQL 终结点级别应用它
供稿人
Microsoft维护本文。 以下参与者撰写了本文。
主要作者:
- Mohit Agarwal |首席云解决方案架构师
若要查看非公开的LinkedIn个人资料,请登录LinkedIn。
后续步骤
- 使用 Lakehouse 将数据引入 OneLake
- 创建 Fabric 数据仓库
- 创建 Eventhouse
- 分析关系数据仓库中的数据
- 在 SQL 数据库中创建单一数据库
- 创建 Azure Databricks 工作区
- 探索 Azure 数据库和分析服务
- 使用 API for NoSQL 查询 Azure Cosmos DB