将ETL更改为增量加载

时间:2015-07-31 16:55:13

标签: sql-server visual-studio-2012 ssis etl msbi

我是制作etl包的新手,我正在学习探索visual studio中的软件包。 我被赋予了一个任务,涉及从合并语句中获取ETL中的当前逻辑并重新设计ETL以具有正常的初始和增量加载路径。我在互联网上搜索得足够多,却找不到合适的答案。请指导我如何处理。

通过删除所有属性并仅保留3来理解目的,粘贴下面的Merge查询。 如何摆脱这种合并并使用INIT和INCR Load(我想在数据流中添加)。 如果缺少任何进一步的细节或信息,请告诉我。如果这是一个菜鸟问题,请犹豫不决。

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;

0 个答案:

没有答案