簡體   English   中英

使用sqlReaderQuery作為源的Azure數據工廠輸入數據集

[英]Azure Data Factory Input dataset with sqlReaderQuery as source

我們正在使用.net API創建Azure Data Factory管道。 在這里,我們使用sqlReaderQuery提供輸入數據源。 通過這種方式,該查詢可以使用多個表。 因此,問題在於我們無法從該查詢中提取任何單個表並將tableName設置為Dataset中的typeProperty,如下所示:

"typeProperties": {
            "tableName": "?"
        }

創建數據集時會拋出異常,因為tableName是必需的。 在這種情況下,我們不想提供tableName嗎? 有沒有其他辦法可以做到這一點? 我們還在數據集中提供結構。

不幸的是,您不能在本地執行此操作。 您需要為每個表部署一個數據集。 Azure數據工廠會在執行時間之前為每個活動生成切片。 在不知道表名稱的情況下,數據工廠在生成這些輸入切片時將失敗。

如果要讀取多個表,請使用存儲過程作為數據集的輸入。 在存儲過程中進行聯接和輸入整形。

您還可以通過構建一個動態的自定義活動來解決此問題,該活動在數據庫級別運行。 這樣做時,您將使用虛擬輸入數據集和通用輸出數據集,並自己控制大部分過程。

此屬性是強制性的有點令人討厭,尤其是如果您提供了... ReaderQuery。 對於Oracle副本,我使用sys.dual作為表名,這是Oracle中的一種內置虛擬表。 在SQL Server中,您可以使用系統視圖之一或設置虛擬表。

暫無
暫無

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

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