0

我是制作 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;
4

0 回答 0