Microsoft Fabric 中数据仓库的表
适用于:✅Microsoft Fabric 中的仓库
本文详细介绍了在 Microsoft Fabric 中设计表的关键概念。
在表中,数据按行和列的格式组织。 每一行代表一条唯一的记录,每一列代表记录中的一个字段。
- 在仓库中,表是包含所有事务数据的数据库对象。
确定表类别
星型架构将数据组织成事实数据表和维度表。 某些表在转移到事实数据表或维度表之前已用于集成或暂存数据。 设计某个表时,请确定该表的数据是属于事实数据表、维度表还是集成表。 此项决策可以明确相应的表结构。
事实数据表包含定量数据,这些数据通常在事务系统中生成,然后加载到数据仓库中。 例如,零售企业每天会生成销售事务,然后将数据载入数据仓库事实数据表进行分析。
维度表包含属性数据,这些数据可能会更改,但一般不会经常更改。 例如,客户的姓名和地址存储在维度表中,仅当客户的个人资料发生更改时,这些数据才会更新。 为了尽量缩小大型事实数据表的大小,不要求将客户的姓名和地址输入到事实数据表的每一行中。 事实数据表和维度表可以共享一个客户 ID。 查询可以联接两个表,以关联客户的个人资料和事务。
集成表为集成或暂存数据提供位置。 例如,可将数据加载到临时表,在暂存位置对数据执行转换,然后将数据插入生产表中。
表将数据作为仓库的一部分存储在OneLake中。 不管是否打开了会话,表和数据都会持久保留。
仓库中的表
要在表中显示表的组织方式,可以使用fact
、dim
或int
作为表名称的前缀。 下表显示了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 数据类型。
- 有关数据类型的详细信息,请参阅Microsoft Fabric 中的数据类型。
- 在仓库中创建表时,请查看CREATE TABLE (Transact-SQL)中的数据类型引用。
- 有关在 Warehouse 中创建表的指南,请参阅创建表。
排序规则
目前,Latin1_General_100_BIN2_UTF8
是表和元数据唯一支持的默认排序规则。
统计信息
查询优化器在创建用于执行查询的计划时,使用列级统计信息。 若要提高查询性能,必须有基于各个列(尤其是查询联接中使用的列)的统计信息。 仓库支持自动创建统计信息。
不会自动进行统计信息更新。 添加或更改了大量的行之后更新统计信息。 例如,在执行加载后更新统计信息。 有关详细信息,请参阅统计信息。
主键、外键和唯一键
对于仓库,仅当同时使用 NONCLUSTERED 和 NOT ENFORCED 时,才支持 PRIMARY KEY 和 UNIQUE 约束。
仅在使用 NOT ENFORCED 时才支持 FOREIGN KEY。
- 有关语法,请查看 ALTER TABLE。
- 有关详细信息,请参阅Microsoft Fabric 仓库中的主键、外键和唯一键。
使源数据与数据仓库相符
从其他数据源加载数据可以填充仓库表。 若要成功进行加载,源数据中列的数目和数据类型必须与数据仓库中的表定义相符。
如果数据来自多个数据存储,可将数据移植到数据仓库中,并将其存储在集成表中。 将数据存储到集成表中后,可以使用数据仓库的功能来实现转换操作。 准备好数据后,可以将其插入到生产表中。
限制
仓库支持其他数据库所提供的许多(但不是全部)表功能。
以下列表显示了当前不受支持的一些表功能。
- 每个表 1024 个最大列数
- 计算列
- 索引视图
- 分区表
- 序列
- 稀疏列
- 具有标识列的数字序列上的代理键
- 同义词
- 临时表
- 触发器
- 唯一索引
- 用户定义类型
重要
在使用带仓库的源控件时,添加表约束或列存在一些限制。