了解分析数据存储
有两种常见分析数据存储类型。
数据仓库
数据仓库是一个关系数据库,其中的数据存储在为数据分析(而非事务性工作负载)进行优化的架构中。 通常情况下,事务性存储中的数据会被转换为某种架构,其中的数值存储在中心的事实数据表中,这些表与一个或多个维度表相关,表示可聚合数据的实体。 例如,“fact”表可能包含销售订单数据,可以按客户、产品、商店和时间维度进行聚合(使你能够轻松地找到每个商店每月的总销售收入)。 这类“fact”和“dimension”表架构称为“星型架构”;虽然它通常通过添加与“dimension”表相关的其他表来扩展到“雪花型”架构,以表示维度层次结构(例如,product 可能与产品类别相关)。 如果拥有可以组织成表的结构化架构的事务性数据,且希望使用 SQL 来查询它们,则数据仓库是一种很好的选择。
Data Lake
数据湖是一种文件存储,通常位于可用于高性能数据访问的分布式文件系统上。 Spark 或 Hadoop 等技术通常用于处理对存储文件的查询,并返回数据以进行报告和分析。 这些系统通常会应用“读取模式”方法在读取数据进行分析时定义半结构化数据文件上的表格架构,而无需在存储时应用约束。 数据湖非常适合用于支持混合使用结构化、半结构化、甚至非结构化的数据,在将数据写入存储时无需强制执行架构即可进行分析。
混合方法
可以使用混合方法,将数据湖和数据仓库的功能组合到数据湖屋中。 原始数据存储为数据湖中的文件,Microsoft Fabric SQL 分析终结点将它们公开为表,可以使用 SQL 查询这些表。 使用 Microsoft Fabric 创建湖屋时,会自动创建 SQL 分析终结点。 数据湖仓库是基于 Spark 系统中的一种相对较新的方法,通过“增量湖”等技术启用;这会将关系存储功能添加到 Spark,因此,可以定义表来强制执行架构和事务一致性,支持批处理加载和流式处理数据源,并提供 SQL API 进行查询。
用于分析存储的 Azure 服务
在 Azure 上,有几项服务可用来实现大规模分析存储,其中包括:
Microsoft Fabric 是统一的、端到端的大规模数据分析解决方案。 它汇集了多项技术和功能,使你能够将可缩放的、高性能基于 SQL Server 的关系数据仓库的数据完整性和可靠性与数据湖和开源 Apache Spark 的灵活性结合起来。 它还包括本机支持使用 Microsoft Fabric 实时智能池进行日志和遥测数据分析,以及用于数据引入和转换的内置数据管道。 每种 Microsoft Fabric 产品体验都有自己的主页,例如数据工厂主页。 每个 Fabric 主页都会显示你创建且有权从你可访问的所有工作区使用的项目。 如果想要单个统一的分析解决方案,Microsoft Fabric 是一个不错的选择。
Azure Databricks 是流行的 Databricks 平台的 Azure 实现。 Databricks 是一种基于 Apache Spark 构建的综合性数据分析解决方案,提供了本机 SQL 功能,以及用于数据分析和数据科学的负载优化 Spark 群集。 Databricks 提供了一个交互式用户界面,通过该界面可以管理系统,并且可以在交互式笔记本中查看数据。 由于在多个云平台上的常见用途,如果想要在平台上使用现有的专业知识,或者需要在多云环境中操作或支持云可移植解决方案,则可以考虑将 Azure Databricks 用作分析存储。
注意
其中每个服务都可以被视为分析数据“存储”,因为它们提供了可用于查询数据的架构和接口。 然而,在许多情况下,数据实际存储在数据湖中,该服务用于“处理”数据和运行查询。 某些解决方案甚至可能会结合使用这些服务。 提取、加载和转换 (ELT) 引入过程可能会将数据复制到数据湖中,然后使用其中一种服务来转换数据,并使用另一个服务对数据进行查询。 例如,管道可能会使用 Azure Databricks 中运行的笔记本来处理数据湖中的大量数据,然后将其加载到 Microsoft Fabric 仓库中的表。