簡體   English   中英

Azure SQL 具有接收器存儲過程的數據工廠復制活動

[英]Azure SQL Data Factory Copy Activity with Sink Stored Procedure

我無法做到這一點,似乎沒有在這個論壇上找到解決方案。 我是 Azure 的新手

我已經成功建立了一個直接的Z9778840A0100CB30C982876741B0B5A2A Q QUERY ACPERY活動,從PREM Z9778840A0A0A0CB30C9828741B0B5A2Z SERVE上的PREM Z9778840A0A0AB041B5AB5AB5AB51B580F17772207772377F1377F1377F1377F151F151F151F151F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1CC.F1CC。 在此處輸入圖像描述

當我繼續編輯以包含存儲過程時,它失敗了。 我在Azure Sql中創建了如下數據類型和存儲過程;

CREATE TYPE [dbo].[Patch] AS TABLE(
    [BaseKey] int,
    [GISKey] [varchar](10),
    [ActiveFrom] datetime
)
DROP PROC IF EXISTS dbo.spCopyPatch
GO
CREATE PROC dbo.spCopyPatch
@Patch dbo.Patch READONLY,
@BaseKey int,
@GISKey varchar(10),
@ActiveFrom datetime
AS
INSERT INTO dbo.Patch( BaseKey,GISKey,ActiveFrom)
VALUES(@BaseKey,@GISKey,@ActiveFrom);
GO

然后我繼續編輯復制活動接收器。 它能夠拿起存儲過程OK;

在此處輸入圖像描述

然而,這在調試時失敗了:我是做對了還是遺漏了什么?

提前高度感謝您的幫助。

我解決了這個問題,並直接從 OnPrem SQL 服務器寫入 Azure SQL 服務器。

步驟 1.使用從 SQL 中提取的數據集更新 Source。

在此處輸入圖像描述

步驟 2.將我的存儲過程更新為下面以綠色突出顯示的內容

在此處輸入圖像描述

步驟 3.按順序填充 Sink,如下所示

在此處輸入圖像描述

調試復制活動,你就擁有了

在此處輸入圖像描述

根據您看到的邏輯,通常有兩種方法可以在 ADF 中進行數據轉換:

對於 ELT:

  1. 您復制活動,其中您將數據從源復制到目標,然后使用存儲過程活動來觸發執行所需轉換的存儲過程。 所以在你的情況下,你可以在你的接收器中創建一個表,並通過復制活動 map 將源表復制到接收器表。 然后調用存儲過程活動進行轉換

在此處輸入圖像描述

對於 ETL:

  1. 在某些數據流中,您可以在將數據加載到接收器之前對其進行轉換

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM