加载数据仓库表
在最基本的层面上,加载数据仓库通常是通过将数据湖中的文件中的新数据添加到数据仓库的表中来实现的。 该 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)语句将分阶段的数据加载到维度表和事实表中。
注释
实施有效的数据仓库加载解决方案需要仔细考虑如何管理代理键、渐变维度以及关系数据仓库架构固有的其他复杂性。 若要了解有关加载数据仓库的技术的详细信息,请考虑将 数据加载到关系数据仓库 模块中。