我是制作 etl 包的新手,我正在学习探索 Visual Studio 中的包的东西。我被分配了一项任务,其中涉及从合并语句中获取 ETL 中的当前逻辑并重新设计 ETL 以具有有效的初始和增量加载路径。我已经在互联网上进行了足够的搜索,但找不到正确的答案。请指导我如何进行。
通过删除所有属性并仅保留 3 个以用于理解目的,粘贴了下面的合并查询。如何摆脱这种合并并使用 INIT 和 INCR 负载(我想在数据流中添加)。如果缺少任何进一步的细节或信息,请告诉我。对不起,如果这是一个菜鸟问题。
Merge 语句的格式为:
MERGE INTO <DestTableName> AS DIM
USING (
SELECT
Cast(EF.Form_PK as nvarchar(50)) FormSourceId
,EF.FormName
,CASE WHEN EF.FormStatus = 1 THEN N'Active' ELSE N'Inactive' END FormStatus
FROM <Tables and Joins>
) AS SRC
ON SRC.FormSourceID = DIM.FormSourceID
WHEN MATCHED And (
Coalesce(SRC.FormName, '') <> Coalesce(DIM.FormName, '')
OR Coalesce(SRC.FormStatus, '') <> Coalesce(DIM.FormStatus, '')
)
THEN
UPDATE SET
DIM.FormName = SRC.FormName
,DIM.FormStatus = SRC.FormStatus
WHEN NOT MATCHED BY TARGET THEN
INSERT (
FormSourceId
,FormName
,FormStatus
)
VALUES (
SRC.FormSourceId
,SRC.FormName
,SRC.FormStatus
)
WHEN NOT MATCHED BY SOURCE AND DimEvaluationId <> -1 THEN
DELETE;