Microsoft Fabric 中数据仓库的表

适用于: Microsoft Fabric 中的仓库

本文详细介绍了在 Microsoft Fabric 中设计表的关键概念。

在表中,数据按行和列的格式组织。 每一行代表一条唯一的记录,每一列代表记录中的一个字段。

  • 在仓库中,表是包含所有事务数据的数据库对象。

确定表类别

星型架构将数据组织成事实数据表维度表。 某些表在转移到事实数据表或维度表之前已用于集成或暂存数据。 设计某个表时,请确定该表的数据是属于事实数据表、维度表还是集成表。 此项决策可以明确相应的表结构。

  • 事实数据表包含定量数据,这些数据通常在事务系统中生成,然后加载到数据仓库中。 例如,零售企业每天会生成销售事务,然后将数据载入数据仓库事实数据表进行分析。

  • 维度表包含属性数据,这些数据可能会更改,但一般不会经常更改。 例如,客户的姓名和地址存储在维度表中,仅当客户的个人资料发生更改时,这些数据才会更新。 为了尽量缩小大型事实数据表的大小,不要求将客户的姓名和地址输入到事实数据表的每一行中。 事实数据表和维度表可以共享一个客户 ID。 查询可以联接两个表,以关联客户的个人资料和事务。

  • 集成表为集成或暂存数据提供位置。 例如,可将数据加载到临时表,在暂存位置对数据执行转换,然后将数据插入生产表中。

表将数据作为仓库的一部分存储在OneLake中。 不管是否打开了会话,表和数据都会持久保留。

仓库中的表

要在表中显示表的组织方式,可以使用factdimint作为表名称的前缀。 下表显示了WideWorldImportersDW示例数据仓库的一些架构和表名称。

WideWorldImportersDW 源表名称 表类型 数据仓库表名称
城市 维度 wwi.DimCity
订单 Fact wwi.FactOrder
  • 表名称区分大小写。
  • 表单名称不能包含 /\,或以 . 结尾。

创建表

可以为仓库创建一个新的空表。 还可以创建一个表并在其中填充 select 语句的结果。 下面是用于创建表的 T-SQL 命令。

T-SQL 语句 说明
CREATE TABLE 通过定义所有表列和选项来创建空表。
CREATE TABLE AS SELECT 在新表中填充 select 语句的结果。 表列和数据类型基于 select 语句的结果。 若要导入数据,此语句可从外部表中进行选择。

此示例创建包含两个列的表:

CREATE TABLE MyTable (col1 int, col2 int );  

架构名称

仓库支持创建自定义架构。 与在 SQL Server 中类似,可通过架构将以相似方式使用的对象组合在一起。 以下代码创建名为 wwi用户定义的架构

  • 架构名称区分大小写。
  • 架构名称不能包含 /\,或以 . 结尾。
CREATE SCHEMA wwi;

数据类型

Microsoft Fabric 支持最常用的 T-SQL 数据类型。

排序规则

目前,Latin1_General_100_BIN2_UTF8是表和元数据唯一支持的默认排序规则。

统计信息

查询优化器在创建用于执行查询的计划时,使用列级统计信息。 若要提高查询性能,必须有基于各个列(尤其是查询联接中使用的列)的统计信息。 仓库支持自动创建统计信息。

不会自动进行统计信息更新。 添加或更改了大量的行之后更新统计信息。 例如,在执行加载后更新统计信息。 有关详细信息,请参阅统计信息

主键、外键和唯一键

对于仓库,仅当同时使用 NONCLUSTERED 和 NOT ENFORCED 时,才支持 PRIMARY KEY 和 UNIQUE 约束。

仅在使用 NOT ENFORCED 时才支持 FOREIGN KEY。

使源数据与数据仓库相符

从其他数据源加载数据可以填充仓库表。 若要成功进行加载,源数据中列的数目和数据类型必须与数据仓库中的表定义相符。

如果数据来自多个数据存储,可将数据移植到数据仓库中,并将其存储在集成表中。 将数据存储到集成表中后,可以使用数据仓库的功能来实现转换操作。 准备好数据后,可以将其插入到生产表中。

限制

仓库支持其他数据库所提供的许多(但不是全部)表功能。

以下列表显示了当前不受支持的一些表功能。

  • 每个表 1024 个最大列数
  • 计算列
  • 索引视图
  • 分区表
  • 序列
  • 稀疏列
  • 具有标识列的数字序列上的代理键
  • 同义词
  • 临时表
  • 触发器
  • 唯一索引
  • 用户定义类型