0

私は etl パッケージを作成するのが初めてで、ビジュアル スタジオでパッケージを探索することを学んでいます。私は、merge ステートメントから ETL の現在のロジックを取得し、ETL を再設計して、機能する初期ロード パスとインクリメンタル ロード パスを含むタスクを与えられました。インターネットを十分に検索しましたが、適切な答えが見つかりませんでした。これを進める方法を教えてください。

目的を理解するために、すべての属性を削除し、3 つだけを残して、マージ クエリを以下に貼り付けました。このマージを取り除き、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;
4

0 に答える 0