分享方式:


使用 Azure Data Factory 或 Synapse Analytics 中的 SQL Server 預存程序活動轉換資料

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory (部分機器翻譯),這是適用於企業的全方位分析解決方案。 Microsoft Fabric (部分機器翻譯) 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用 (部分機器翻譯)!

您在 Data Factory 或 Synapse 管線中使用資料轉換活動,以轉換並處理您的未經處理資料,來進行預測和深入解析。 預存程序活動是管線支援的其中一個轉換活動。 本文是以轉換資料一文為基礎,提供資料轉換及所支援轉換活動的一般概觀。

注意

如果您是 Azure Data Factory 的新手,請在閱讀本文之前先閱讀 Azure Data Factory 簡介,以及研習教學課程:教學課程:轉換資料。 若要深入了解 Synapse Analytics,請參閱什麼是 Azure Synapse Analytics

您可以使用「預存程序活動」來叫用您企業或 Azure 虛擬機器 (VM) 中的下列其中一個資料存放區:

  • Azure SQL Database
  • Azure Synapse Analytics
  • SQL Server Database。 如果您使用 SQL Server,請在裝載資料庫的同一部電腦上或可存取資料庫的個別電腦上安裝自我裝載整合執行階段。 自我裝載整合執行階段是一套透過安全且可管理的方式,將內部部署/Azure VM 上的資料來源連結至雲端服務的元件。 如需詳細資料,請參閱自我裝載整合執行階段一文。

重要

將資料複製到 Azure SQL Database 或 SQL Server 時,您可以使用 sqlWriterStoredProcedureName 屬性在複製活動中設定 SqlSink 以叫用預存程序。 如需有關此屬性的詳細資料,請參閱下列連接器文章:Azure SQL DatabaseSQL Server。 不支援在使用複製活動將資料複製到 Azure Synapse Analytics 時叫用預存程序。 但是,您可以使用預存程序活動來叫用 Azure Synapse Analytics 中的預存程序。

從 Azure SQL Database、SQL Server 或 Azure Synapse Analytics 複製資料時,您可以使用 sqlReaderStoredProcedureName 屬性在複製活動中設定 SqlSource,以叫用預存程序從來源資料庫讀取資料。 如需詳細資訊,請參閱下列連接器文章:Azure SQL DatabaseSQL ServerAzure Synapse Analytics

當預存程序具有輸出參數,而不是使用預存程序活動時,請使用查閱活動和指令碼活動。 預存程序活動尚不支援使用輸出參數呼叫 SP。

如果您使用預存程序活動呼叫具有輸出參數的預存程序,則會發生下列錯誤。

針對 SQL Server 執行失敗。 如果您需要進一步的支援,請連絡 SQL Server 小組。 Sql 錯誤號碼:201。 錯誤訊息:程序或函式 'sp_name' 預期未提供的參數 '@output_param_name'。

使用 UI 建立預存程序活動

若要在管線中使用預存程序活動,請完成下列步驟:

  1. 在管線 [活動] 窗格中搜尋 [預存程序],然後將 [預存程序] 活動拖曳至管線畫布。

  2. 在畫布上選取新的預存程序活動 (如未選取) 和其 [設定] 索引標籤以編輯詳細資料。

    Shows the UI for a Stored Procedure activity.

  3. 選取現有的或建立新的連結服務至 Azure SQL Database、Azure Synapse Analytics 或 SQL Server。

  4. 選擇預存程序,並提供執行所需的任何參數。

語法詳細資料

以下是 JSON 格式來定義預存程序活動︰

{
    "name": "Stored Procedure Activity",
    "description":"Description",
    "type": "SqlServerStoredProcedure",
    "linkedServiceName": {
        "referenceName": "AzureSqlLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "storedProcedureName": "usp_sample",
        "storedProcedureParameters": {
            "identifier": { "value": "1", "type": "Int" },
            "stringData": { "value": "str1" }

        }
    }
}

下表說明這些 JSON 屬性:

屬性 描述 必要
NAME 活動的名稱 Yes
description 說明活動用途的文字 No
type 對於預存程序活動,活動類型為 SqlServerStoredProcedure Yes
linkedServiceName 參考在 Data Factory 註冊為連結服務的 Azure SQL DatabaseAzure Synapse AnalyticsSQL Server。 若要深入了解此已連結的服務,請參閱計算已連結的服務一文。 Yes
storedProcedureName 指定要叫用的預存程序名稱。 Yes
storedProcedureParameters 指定預存程序參數的值。 使用 "param1": { "value": "param1Value","type":"param1Type" } 來傳遞資料來源所支援的參數值及其類型。 如果您需要為參數傳遞 Null,請使用 "param1": { "value": null } (全部小寫)。 No

參數資料類型對應

您為參數指定的資料類型,是對應至所用資料來源中資料類型的內部服務型別。 您可以在連接器文件中找到所述資料來源的資料類型對應。 例如:

請參閱下列文章,其說明如何以其他方式轉換資料: