了解数据仓库基础知识
构建新式数据仓库的过程通常涉及以下内容:
- 数据引入 - 将数据从源系统移动到数据仓库。
- 数据存储 - 以针对分析进行了优化的格式存储数据。
- 数据处理 - 将数据转换为可供分析工具使用的格式。
- 数据分析和交付 - 分析数据以获取见解并将这些见解交付给业务。
借助 Microsoft Fabric,数据工程师和分析师能够在一个工具中引入、存储、转换和可视化数据,同时提供低代码和传统体验。
了解 Fabric 的数据仓库体验
Fabric 的数据仓库是一种关系数据仓库,支持你希望从企业数据仓库获取的全部事务性 T-SQL 功能。 它是一个完全托管、可缩放且高度可用的数据仓库,可用于在湖屋中存储和查询数据。 使用数据仓库,可以完全控制使用 Fabric 门户或 T-SQL 命令创建表以及加载、转换和查询数据的过程。 可以使用 SQL 来查询和分析数据,或使用 Spark 来处理数据并创建机器学习模型。
Fabric 中的数据仓库可促进数据工程师和数据分析师之间的协作,在相同的体验中协同工作。 数据工程师基于湖屋中的数据构建关系层,分析师可以在其中使用 T-SQL 和 Power BI 来浏览数据。
设计数据仓库
与所有关系数据库一样,Fabric 的数据仓库包含用于存储数据以供日后分析的表。 大多数情况下,这些表组织为针对多维建模进行了优化的架构。 在这种方法中,与事件(例如销售订单)相关的数字数据按不同的属性(例如日期、客户、商店)分组。 例如,可以分析为特定日期或特定商店发生的销售订单支付的总金额。
数据仓库中的表
数据仓库中的表通常以支持对大量数据进行高效和有效分析的方式组织。 这种组织方式通常称为维度建模,涉及将表结构化为事实数据表和维度表。
事实数据表包含要分析的数字数据。 事实数据表通常包含很多行,是用于分析的主要数据源。 例如,事实数据表可能包含为特定日期或特定商店发生的销售订单支付的总金额。
维度表包含有关事实数据表中的数据的描述性信息。 维度表通常包含少量行,用于提供事实数据表中数据的上下文。 例如,维度表可能包含有关下销售订单的客户的信息。
除了属性列,维度表还包含一个唯一的键列,用于唯一标识表中的每一行。 事实上,维度表通常包含两个键列:
- 代理键是维度表中每一行的唯一标识符。 它通常是一个整数值,在表中插入了新行时由数据库管理系统自动生成。
- 备用键通常是一个自然键或业务键,用于标识事务源系统中实体的特定实例,例如产品代码或客户 ID。
数据仓库中需要同时包含代理键和备用键,因为它们的作用不同。 代理键特定于数据仓库,有助于保持数据的一致性和准确性。 另一方面,备用键特定于源系统,有助于保持数据仓库和源系统之间的可跟踪性。
特殊类型的维度表
特殊类型的维度提供额外的上下文,并实现更全面的数据分析。
时间维度提供有关事件发生的时间段的信息。 此表使数据分析师能够通过时态间隔来聚合数据。 例如,时间维度可能包括表示下销售订单的年份、季度、月份和日期的列。
渐变维度是用于跟踪维度属性随时间的变化的维度表,例如客户地址或产品价格的更改。 它们在数据仓库中非常重要,因为它们使用户能够分析和了解随着时间推移对数据进行的更改。 渐变维度可确保数据保持最新和准确,这对于做出良好的业务决策至关重要。
数据仓库架构设计
在商务应用程序中使用的大多数事务数据库中,数据经过规范化以减少重复。 但是,在数据仓库中,维度数据通常是去规范化的,以减少查询数据所需的联接数。
通常,数据仓库组织为一个星型架构,其中事实数据表与维度表直接相关,如以下示例所示:
可以使用某些内容的属性将事实数据表中不同级别的数字组合在一起。 例如,可以查找整个区域或仅一个客户的总销售收入。 每个级别的信息可以存储在同一维度表中。
提示
有关为 Fabric 设计星型架构的详细信息,请参阅什么是星型架构?。
如果有很多级别或某些信息由不同的内容共享,则改用雪花型架构可能更合理。 下面是一个示例:
在这种情况下,DimProduct 表已拆分(规范化),以便为产品类别和供应商创建单独的维度表。
- DimProduct 表中的每一行都包含 DimCategory 和 DimSupplier 表中相应行的键值。
添加了 DimGeography 表,其中包含有关客户和商店所在位置的信息。
- DimCustomer 和 DimStore 表中的每一行都包含 DimGeography 表中相应行的键值。