使用 SQL Server Integration Services (SSIS) 對 U-SQL 作業進行排程

在本文件中,您會了解如何使用 SQL Server Integration Services (SSIS) 來協調及建立 U-SQL 作業。

重要

Azure Data Lake Analytics 於 2024 年 2 月 29 日淘汰。 透過此公告深入瞭解。

針對數據分析,您的組織可以使用 Azure Synapse AnalyticsMicrosoft Fabric

必要條件

適用於 Integration Services 的 Azure Feature Pack 能提供 Azure Data Lake Analytics 工作Azure Data Lake Analytics 連線管理員,以協助連線至 Azure Data Lake Analytics 服務。 若要使用此工作,請務必安裝:

Azure Data Lake Analytics 工作

Azure Data Lake Analytics 工作能讓使用者將 U-SQL 作業提交至 Azure Data Lake Analytics 帳戶。

了解如何設定 Azure Data Lake Analytics 工作

SSIS 中的 Azure Data Lake Analytics 工作

您可以使用 SSIS 內建的功能和工作,從不同的位置取得 U-SQL 指令碼。下列案例示範如何針對不同的使用者案例設定 U-SQL 指令碼。

案例 1:使用內嵌指令碼呼叫 TVF 和預存程序

在 Azure Data Lake Analytics 工作編輯器中,將 [SourceType] 設定為 [DirectInput],並將 U-SQL 陳述式置於 [USQLStatement] 中。

若要使維護和程式碼管理更為輕鬆,請只使用簡短的 U-SQL 指令碼作為內嵌指令碼,例如,您可以呼叫 U-SQL 資料庫中現有的資料表值函式和預存程序。

編輯 SSIS 工作中的內嵌 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 帳戶。

圖表顯示要新增至 Foreach 迴圈容器的 Azure Data Lake Store 檔案系統工作。

設定 Azure Data Lake Store 檔案系統工作

  1. 將 [Operation] 設定為 [CopyFromADLS]
  2. 設定 [AzureDataLakeConnection],深入了解 Azure Data Lake Store 連線管理員
  3. 設定 [AzureDataLakeDirectory]。 指向儲存 U-SQL 指令碼的資料夾。 使用對應至 Azure Data Lake Store 帳戶根資料夾的相對路徑。
  4. 將 [Destination] 設定為會對已下載的 U-SQL 指令碼進行快取的資料夾。 此資料夾路徑將會在 Foreach 迴圈容器中用來進行 U-SQL 作業提交。

設定 Azure Data Lake Store 檔案系統工作

深入了解 Azure Data Lake Store 檔案系統工作

設定 Foreach 迴圈容器

  1. 在 [集合] 頁面中,將 [列舉程式] 設定為 [Foreach 檔案列舉程式]

  2. 將 [列舉程式設定] 群組底下的 [資料夾] 設定為包含已下載 U-SQL 指令碼的暫時資料夾。

  3. 將 [列舉程式設定] 底下的 [資料夾] 設定為 *.usql,使迴圈容器能擷取結尾為 .usql 的檔案。

    螢幕擷取畫面顯示已選取「集合」的 Foreach 迴圈編輯器,並醒目提示列舉程式和列舉程式設定區段。

  4. 在 [變數對應] 頁面中,新增使用者定義的變數以取得每個 U-SQL 檔案的檔案名稱。 將 [索引] 設定為 0 以取得檔案名稱。 在此範例中,會定義稱為 User::FileName 的變數。 此變數將會被用來在 Azure Data Lake Analytics 工作中以動態方式取得 U-SQL 指令碼檔案連線,並設定 U-SQL 作業名稱。

    設定 Foreach 迴圈容器以取得檔案名稱

設定 Azure Data Lake Analytics 工作

  1. 將 [SourceType] 設定為 [FileConnection]

  2. 將 [FileConnection] 設定為指向從 Foreach 迴圈容器所傳回檔案物件的檔案連線。

    若要建立此檔案連線:

    1. 在 FileConnection 設定中選擇 [<新增連線...>]。

    2. 將 [使用類型] 設定為 [現有檔案],並將 [檔案] 設定為任何現有檔案的檔案路徑。

      螢幕擷取畫面顯示檔案連線管理員編輯器,其中已針對「使用類型」選取「現有檔案」。

    3. 在 [ 連接管理器 ] 檢視中,以滑鼠右鍵按兩下已建立的檔案連接,然後選擇 [ 屬性]。

    4. 在 [屬性] 視窗中,展開 [運算式],然後將 [ConnectionString] 設定為在 Foreach 迴圈容器中定義的變數,例如 @[User::FileName]

      設定 Foreach 迴圈容器

  3. 將 [AzureDataLakeAnalyticsConnection] 設定為您想要提交作業的 Azure Data Lake Analytics 帳戶。 深入了解 Azure Data Lake Analytics 連線管理員

  4. 設定其他作業組態。 深入了解

  5. 使用運算式來以動態方式設定 U-SQL 作業:

    1. 在 [運算式] 頁面中,針對 [JobName] 新增新的運算式機碼值組。

    2. 將 [JobName] 的值設定為在 Foreach 迴圈容器中定義的變數,例如 @[User::FileName]

      針對 U-SQL 作業名稱設定 SSIS 運算式

案例 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 下載工作

控制流程如下所示:

在 Azure Data Lake Store 中使用 U-SQL 檔案

案例 4:在本機電腦上使用 U-SQL 檔案

除了使用儲存在雲端上的 U-SQL 檔案之外,您也可以使用本機電腦上的檔案,或是和 SSIS 套件一起部署的檔案。

  1. 以滑鼠右鍵按一下 SSIS 專案中的 [連線管理員],然後選擇 [新增連線管理員]

  2. 選取 [ 檔案類型 ],然後選取 [ 新增...]。

  3. 將 [使用類型] 設定為 [現有檔案],並將 [檔案] 設定為本機電腦上的檔案。

    將檔案連線新增至本機檔案

  4. 新增 [Azure Data Lake Analytics] 工作,然後:

    1. 將 [SourceType] 設定為 [FileConnection]
    2. FileConnection 設定為建立的檔案連線。
  5. 完成其他 Azure Data Lake Analytics 工作的設定。

案例 5:使用以 SSIS 變數產生的 U-SQL 陳述式

在某些情況下,您可能需要動態產生U-SQL 語句。 您可以搭配 SSIS 運算式及其他 SSIS 工作 (例如指令碼工作) 使用 SSIS 變數,來協助動態產生 U-SQL 陳述式。

  1. 透過 [SSIS] > [變數] 最上層功能表,開啟 [變數] 工具視窗。

  2. 新增 SSIS 變數並直接設定其值,或使用 [運算式] 來產生值。

  3. 新增 [Azure Data Lake Analytics] 工作,然後:

    1. 將 [SourceType] 設定為 [Variable]
    2. SourceVariable 設定為現在建立的 SSIS 變數。
  4. 完成其他 Azure Data Lake Analytics 工作的設定。

案例 6:將參數傳遞至 U-SQL 指令碼

在某些情況下,您可能會想要在U-SQL 腳稿中動態設定U-SQL 變數值。 Azure Data Lake Analytics 工作中的參數對應功能可協助進行此案例。 一共有兩個常見的使用者案例:

  • 根據目前的日期和時間,以動態方式設定輸入和輸出檔案路徑變數。
  • 設定預存程序的參數。

深入了解如何設定 U-SQL 指令碼的參數

下一步