使用 SQL Server Integration Services (SSIS) 對 U-SQL 作業進行排程
在本文件中,您會了解如何使用 SQL Server Integration Services (SSIS) 來協調及建立 U-SQL 作業。
重要
Azure Data Lake Analytics 於 2024 年 2 月 29 日淘汰。 透過此公告深入瞭解。
針對數據分析,您的組織可以使用 Azure Synapse Analytics 或 Microsoft Fabric。
必要條件
適用於 Integration Services 的 Azure Feature Pack 能提供 Azure Data Lake Analytics 工作和 Azure Data Lake Analytics 連線管理員,以協助連線至 Azure Data Lake Analytics 服務。 若要使用此工作,請務必安裝:
- 下載並安裝適用於 Visual Studio 的 SQL Server Data Tools (SSDT)
- 安裝適用於 Integration Services (SSIS) 的 Azure Feature Pack
Azure Data Lake Analytics 工作
Azure Data Lake Analytics 工作能讓使用者將 U-SQL 作業提交至 Azure Data Lake Analytics 帳戶。
了解如何設定 Azure Data Lake Analytics 工作。
您可以使用 SSIS 內建的功能和工作,從不同的位置取得 U-SQL 指令碼。下列案例示範如何針對不同的使用者案例設定 U-SQL 指令碼。
案例 1:使用內嵌指令碼呼叫 TVF 和預存程序
在 Azure Data Lake Analytics 工作編輯器中,將 [SourceType] 設定為 [DirectInput],並將 U-SQL 陳述式置於 [USQLStatement] 中。
若要使維護和程式碼管理更為輕鬆,請只使用簡短的 U-SQL 指令碼作為內嵌指令碼,例如,您可以呼叫 U-SQL 資料庫中現有的資料表值函式和預存程序。
相關文章:如何將參數傳遞至預存程序
案例 2:在 Azure Data Lake Store 中使用 U-SQL 檔案
您也可以透過使用 Azure Feature Pack 中的 Azure Data Lake Store 檔案系統工作,來在 Azure Data Lake Store 中使用 U-SQL 檔案。 此方法可讓您使用儲存在雲端上的指令碼。
請遵循下列步驟,以設定 Azure Data Lake Store 檔案系統工作和 Azure Data Lake Analytics 工作之間的連線。
設定工作控制流程
在 SSIS 套件設計檢視中,新增 Azure Data Lake Store 檔案系統工作和 Foreach 迴圈容器,並在該 Foreach 迴圈容器中新增 Azure Data Lake Analytics 工作。 Azure Data Lake Store 檔案系統工作可協助將您 ADLS 帳戶中的 U-SQL 檔案下載至暫時資料夾。 Foreach 迴圈容器和 Azure Data Lake Analytics 工作可協助將暫時資料夾中的每個 U-SQL 檔案,以 U-SQL 作業的形式提交至 Azure Data Lake Analytics 帳戶。
設定 Azure Data Lake Store 檔案系統工作
- 將 [Operation] 設定為 [CopyFromADLS]。
- 設定 [AzureDataLakeConnection],深入了解 Azure Data Lake Store 連線管理員。
- 設定 [AzureDataLakeDirectory]。 指向儲存 U-SQL 指令碼的資料夾。 使用對應至 Azure Data Lake Store 帳戶根資料夾的相對路徑。
- 將 [Destination] 設定為會對已下載的 U-SQL 指令碼進行快取的資料夾。 此資料夾路徑將會在 Foreach 迴圈容器中用來進行 U-SQL 作業提交。
深入了解 Azure Data Lake Store 檔案系統工作。
設定 Foreach 迴圈容器
在 [集合] 頁面中,將 [列舉程式] 設定為 [Foreach 檔案列舉程式]。
將 [列舉程式設定] 群組底下的 [資料夾] 設定為包含已下載 U-SQL 指令碼的暫時資料夾。
將 [列舉程式設定] 底下的 [資料夾] 設定為
*.usql
,使迴圈容器能擷取結尾為.usql
的檔案。在 [變數對應] 頁面中,新增使用者定義的變數以取得每個 U-SQL 檔案的檔案名稱。 將 [索引] 設定為 0 以取得檔案名稱。 在此範例中,會定義稱為
User::FileName
的變數。 此變數將會被用來在 Azure Data Lake Analytics 工作中以動態方式取得 U-SQL 指令碼檔案連線,並設定 U-SQL 作業名稱。
設定 Azure Data Lake Analytics 工作
將 [SourceType] 設定為 [FileConnection]。
將 [FileConnection] 設定為指向從 Foreach 迴圈容器所傳回檔案物件的檔案連線。
若要建立此檔案連線:
在 FileConnection 設定中選擇 [<新增連線...>]。
將 [使用類型] 設定為 [現有檔案],並將 [檔案] 設定為任何現有檔案的檔案路徑。
在 [ 連接管理器 ] 檢視中,以滑鼠右鍵按兩下已建立的檔案連接,然後選擇 [ 屬性]。
在 [屬性] 視窗中,展開 [運算式],然後將 [ConnectionString] 設定為在 Foreach 迴圈容器中定義的變數,例如
@[User::FileName]
。
將 [AzureDataLakeAnalyticsConnection] 設定為您想要提交作業的 Azure Data Lake Analytics 帳戶。 深入了解 Azure Data Lake Analytics 連線管理員。
設定其他作業組態。 深入了解。
使用運算式來以動態方式設定 U-SQL 作業:
在 [運算式] 頁面中,針對 [JobName] 新增新的運算式機碼值組。
將 [JobName] 的值設定為在 Foreach 迴圈容器中定義的變數,例如
@[User::FileName]
。
案例 3:在 Azure Blob 儲存體中使用 U-SQL 檔案
您可以透過使用 Azure Feature Pack 中的 Azure Blob 下載工作,來在 Azure Blob 儲存體中使用 U-SQL 檔案。 此方法可讓您使用雲端上的指令碼。
其步驟與案例 2:在 Azure Data Lake Store 中使用 U-SQL 檔案類似。 將 Azure Data Lake Store 檔案系統工作變更為 Azure Blob 下載工作。 深入了解 Azure Blob 下載工作。
控制流程如下所示:
案例 4:在本機電腦上使用 U-SQL 檔案
除了使用儲存在雲端上的 U-SQL 檔案之外,您也可以使用本機電腦上的檔案,或是和 SSIS 套件一起部署的檔案。
以滑鼠右鍵按一下 SSIS 專案中的 [連線管理員],然後選擇 [新增連線管理員]。
選取 [ 檔案類型 ],然後選取 [ 新增...]。
將 [使用類型] 設定為 [現有檔案],並將 [檔案] 設定為本機電腦上的檔案。
新增 [Azure Data Lake Analytics] 工作,然後:
- 將 [SourceType] 設定為 [FileConnection]。
- 將 FileConnection 設定為建立的檔案連線。
完成其他 Azure Data Lake Analytics 工作的設定。
案例 5:使用以 SSIS 變數產生的 U-SQL 陳述式
在某些情況下,您可能需要動態產生U-SQL 語句。 您可以搭配 SSIS 運算式及其他 SSIS 工作 (例如指令碼工作) 使用 SSIS 變數,來協助動態產生 U-SQL 陳述式。
透過 [SSIS] > [變數] 最上層功能表,開啟 [變數] 工具視窗。
新增 SSIS 變數並直接設定其值,或使用 [運算式] 來產生值。
新增 [Azure Data Lake Analytics] 工作,然後:
- 將 [SourceType] 設定為 [Variable]。
- 將 SourceVariable 設定為現在建立的 SSIS 變數。
完成其他 Azure Data Lake Analytics 工作的設定。
案例 6:將參數傳遞至 U-SQL 指令碼
在某些情況下,您可能會想要在U-SQL 腳稿中動態設定U-SQL 變數值。 Azure Data Lake Analytics 工作中的參數對應功能可協助進行此案例。 一共有兩個常見的使用者案例:
- 根據目前的日期和時間,以動態方式設定輸入和輸出檔案路徑變數。
- 設定預存程序的參數。