加载数据仓库表
在基本级别,加载数据仓库的实现方式通常是将数据湖中的文件中的新数据添加到数据仓库中的表中。 COPY
语句是完成此任务的有效方法,如下例所示:
COPY INTO dbo.StageProducts
(ProductID, ProductName, ProductCategory, Color, Size, ListPrice, Discontinued)
FROM 'https://mydatalake.blob.core.windows.net/data/stagedfiles/products/*.parquet'
WITH
(
FILE_TYPE = 'PARQUET',
MAXERRORS = 0,
IDENTITY_INSERT = 'OFF'
);
设计数据仓库加载流程的注意事项
加载数据仓库的最常见模式之一是将数据从源系统传输到数据湖中的文件,将文件数据引入到临时表中,然后使用 SQL 语句将数据从临时表加载到维度表和事实数据表中。 通常,数据加载是作为一个周期性的批处理过程来执行的,对数据仓库的插入和更新以固定的时间间隔(例如,每天、每周或每月)进行协调。
在大多数情况下,应实现按以下顺序执行任务的数据仓库加载流程:
- 引入要加载到数据湖中的新数据,根据需要应用预加载清理或转换。
- 将文件中的数据加载到关系数据仓库中的临时表中。
- 从临时表中的维度数据加载维度表,根据需要更新现有行或插入新行并生成代理键值。
- 从临时表中的事实数据加载事实数据表,查找相关维度的相应代理键。
- 通过更新索引和表分布统计信息执行加载后优化。
使用 COPY
语句将数据加载到临时表中后,可组合使用 INSERT
、UPDATE
、MERGE
和 CREATE TABLE AS SELECT
(CTAS) 语句将暂存数据加载到维度表和事实数据表中。
注意
实现有效的数据仓库加载解决方案需要仔细考虑代理键的管理方式、缓慢变化的维度以及关系数据仓库架构中固有的其他复杂性。 要详细了解加载数据仓库的技术,请考虑完成将数据加载到关系数据仓库中模块。