使用 SQL Server Integration Services (SSIS) 將資料載入 Azure SQL 資料倉儲Load data into Azure SQL Data Warehouse with SQL Server Integration Services (SSIS)

適用於: 是SQL Server 是Azure Data Factory 中的 SSIS Integration Runtime 是Azure Synapse Analytics (SQL DW)APPLIES TO: yesSQL Server yesSSIS Integration Runtime in Azure Data Factory yesAzure Synapse Analytics (SQL DW)

建立 SQL Server Integration Services (SSIS) 套件,以將資料載入 Azure SQL 資料倉儲Create a SQL Server Integration Services (SSIS) package to load data into Azure SQL Data Warehouse. 您也可以選擇在資料通過 SSIS 資料流程時,對它們進行架構重組、轉換及清理。You can optionally restructure, transform, and cleanse the data as it passes through the SSIS data flow.

本文示範如何執行下列作業:This article shows you how to do the following things:

  • 在 Visual Studio 中建立新的 Integration Services 專案。Create a new Integration Services project in Visual Studio.
  • 設計可將資料從來源載入至目的地的 SSIS 套件。Design an SSIS package that loads data from the source into the destination.
  • 執行 SSIS 套件以載入資料。Run the SSIS package to load the data.

基本概念Basic concepts

套件是 SSIS 中的基本工作單位。The package is the basic unit of work in SSIS. 相關聯的套件會在專案中組成群組。Related packages are grouped in projects. 您會在 Visual Studio 中使用 SQL Server Data Tools 來建立專案和設計套件。You create projects and design packages in Visual Studio with SQL Server Data Tools. 設計程序是視覺化的程序,您可以從工具箱將元件拖放到設計介面,將它們連接,並設定其屬性。The design process is a visual process in which you drag and drop components from the Toolbox to the design surface, connect them, and set their properties. 當您完成您的套件之後,除能加以執行,也可選擇是否要將其部署到 SQL Server 或 SQL Database,以達到全面性管理、監視及安全性的目的。After you finish your package, you can run it, and you can optionally deploy it to SQL Server or SQL Database for comprehensive management, monitoring, and security.

SSIS 的詳細簡介超出本文範圍。A detailed introduction to SSIS is beyond the scope of this article. 如需詳細資訊,請參閱下列文章:To learn more, see the following articles:

使用 SSIS 將資料載入 SQL 資料倉儲的選項Options for loading data into SQL Data Warehouse with SSIS

SQL Server Integration Services (SSIS) 是彈性的工具組,可提供各種不同選項以針對 SQL 資料倉儲進行連線和資料的載入。SQL Server Integration Services (SSIS) is a flexible set of tools that provides a variety of options for connecting to, and loading data into, SQL Data Warehouse.

  1. 提供最佳效能的慣用方法是建立使用 Azure SQL DW 上傳工作的套件來載入資料。The preferred method, which provides the best performance, is to create a package that uses the Azure SQL DW Upload Task to load the data. 此工作會同時封裝來源和目的地資訊。This task encapsulates both source and destination information. 它假設您的來源資料是儲存在本機的分隔符號文字檔。It assumes that your source data is stored locally in delimited text files.

  2. 或者,您可以建立使用資料流程工作並包含來源和目的地的套件。Alternately, you can create a package that uses a Data Flow task that contains a source and a destination. 此方法支援各種不同的資料來源,包括 SQL Server 和 Azure SQL 資料倉儲。This approach supports a wide range of data sources, including SQL Server and Azure SQL Data Warehouse.

PrerequisitesPrerequisites

若要逐步執行本教學課程,您需要下列項目:To step through this tutorial, you need the following things:

  1. SQL Server Integration Services (SSIS)SQL Server Integration Services (SSIS). SSIS 是 SQL Server 的元件,並且需要 SQL Server 的授權版本或是開發人員或評估版本。SSIS is a component of SQL Server and requires a licensed version, or the developer or evaluation version, of SQL Server. 若要取得 SQL Server 的評估版本,請參閱評估 SQL ServerTo get an evaluation version of SQL Server, see Evaluate SQL Server.
  2. Visual Studio (選擇性)。Visual Studio (optional). 若要取得免費的 Visual Studio Community Edition,請參閱 Visual Studio CommunityTo get the free Visual Studio Community Edition, see Visual Studio Community. 如果您不想要安裝 Visual Studio,您可以只安裝 SQL Server Data Tools (SSDT)。If you don't want to install Visual Studio, you can install SQL Server Data Tools (SSDT) only. SSDT 會安裝具有有限功能的 Visual Studio 版本。SSDT installs a version of Visual Studio with limited functionality.
  3. 適用於 Visual Studio 的 SQL Server Data Tools (SSDT)SQL Server Data Tools for Visual Studio (SSDT). 若要取得適用於 Visual Studio 的 SQL Server Data Tools,請參閱下載 SQL Server Data Tools (SSDT)To get SQL Server Data Tools for Visual Studio, see Download SQL Server Data Tools (SSDT).
  4. Azure SQL 資料倉儲資料庫和權限An Azure SQL Data Warehouse database and permissions. 本教學課程會連線到 SQL 資料倉儲執行個體,並將資料載入至其中。This tutorial connects to a SQL Data Warehouse instance and loads data into it. 您必須有連線、建立資料表和載入資料的權限。You have to have permission to connect, to create a table, and to load data.

建立新的 Integration Services 專案Create a new Integration Services project

  1. 啟動 Visual Studio。Launch Visual Studio.
  2. 在 [檔案] 功能表上,選取 [新增 | 專案] 。On the File menu, select New | Project.
  3. 瀏覽至 [已安裝 | 範本 | 商業智慧 | Integration Services] 專案類型。Navigate to the Installed | Templates | Business Intelligence | Integration Services project types.
  4. 選取 [Integration Services 專案] 。Select Integration Services Project. 為 [名稱] 和 [位置] 提供值,然後選取 [確定] 。Provide values for Name and Location, and then select OK.

Visual Studio 會開啟並建立新的 Integration Services (SSIS) 專案。Visual Studio opens and creates a new Integration Services (SSIS) project. 然後,Visual Studio 會為專案中新的單一 SSIS 套件 (Package.dtsx) 開啟設計工具。Then Visual Studio opens the designer for the single new SSIS package (Package.dtsx) in the project. 您會看到下列畫面區域:You see the following screen areas:

  • 左側是 SSIS 元件的 [工具箱] 。On the left, the Toolbox of SSIS components.

  • 中間是有許多索引標籤的設計介面。In the middle, the design surface, with multiple tabs. 一般來說,您至少會使用 [控制流程] 和 [資料流程] 索引標籤。You typically use at least the Control Flow and the Data Flow tabs.

  • 右側是 [方案總管] 和 [屬性] 窗格。On the right, the Solution Explorer and the Properties panes.

選項 1 - 使用 SQL DW 上傳工作Option 1 - Use the SQL DW Upload task

第一個方法是使用 SQL DW 上傳工作的套件。The first approach is a package that uses the SQL DW Upload task. 此工作會同時封裝來源和目的地資訊。This task encapsulates both source and destination information. 它假設您的來源資料是儲存在本機或 Azure Blob 儲存體中的分隔符號文字檔。It assumes that your source data is stored in delimited text files, either locally or in Azure Blob Storage.

選項 1 的必要條件Prerequisites for Option 1

若要使用此選項設定教學課程,您需要下列項目:To continue the tutorial with this option, you need the following things:

  • Microsoft SQL Server Integration Services Feature Pack for AzureThe Microsoft SQL Server Integration Services Feature Pack for Azure. SQL DW 上傳工作是 Feature Pack 的元件。The SQL DW Upload task is a component of the Feature Pack.

  • Azure Blob 儲存體帳戶。An Azure Blob Storage account. SQL DW 上傳工作會將資料從 Azure Blob 儲存體上傳至 Azure SQL 資料倉儲。The SQL DW Upload task loads data from Azure Blob Storage into Azure SQL Data Warehouse. 您可以載入已在 Blob 儲存體中的檔案,或從您的電腦載入檔案。You can load files that are already in Blob Storage, or you can load files from your computer. 如果您選取電腦上的檔案,SQL DW 上傳工作會先將其上傳至 Blob 儲存體暫存,再將其載入 SQL 資料倉儲。If you select files on your computer, the SQL DW Upload task uploads them to Blob Storage first for staging, and then loads them into SQL Data Warehouse.

新增並設定 SQL DW 上傳工作Add and configure the SQL DW Upload Task

  1. 將 [SQL DW 上傳工作] 從 [工具箱] 拖曳至設計介面的中央 (在 [控制流程] 索引標籤上)。Drag a SQL DW Upload Task from the Toolbox to the center of the design surface (on the Control Flow tab).

  2. 按兩下工作以開啟 [SQL DW 上傳工作編輯器] 。Double-click the task to open the SQL DW Upload Task Editor.

    SQL DW 上傳工作編輯器的一般頁面

  3. 利用 Azure SQL DW 上傳工作一文中的指引,協助設定工作。Configure the task with the help of the guidance in the article Azure SQL DW Upload Task. 由於此工作會同時封裝來源和目的地資訊,以及來源與目的地資料表之間的對應,因此工作編輯器會有數頁設定需要完成。Since this task encapsulates both source and destination information, and the mappings between source and destination tables, the task editor has several pages of settings to configure.

手動建立類似的解決方案Create a similar solution manually

如需更多控制,您可以手動建立套件來封裝由 SQL DW 上傳工作完成的工作。For more control, you can manually create a package that emulates the work done by the SQL DW Upload task.

  1. 使用 Azure Blob 上傳工作將資料暫存於 Azure Blob 儲存體。Use the Azure Blob Upload Task to stage the data in Azure Blob Storage. 若要取得 Azure Blob 上傳工作,請下載 Microsoft SQL Server Integration Services Feature Pack for AzureTo get the Azure Blob Upload task, download the Microsoft SQL Server Integration Services Feature Pack for Azure.

  2. 然後使用 SSIS 執行 SQL 工作以啟動會將資料載入至 SQL 資料倉儲的 PolyBase 指令碼。Then use the SSIS Execute SQL task to launch a PolyBase script that loads the data into SQL Data Warehouse. 如需將資料從 Azure Blob 儲存體載入 SQL 資料倉儲 (但未使用 SSIS) 的範例,請參閱教學課程:將資料載入 Azure SQL 資料倉儲For an example that loads data from Azure Blob Storage into SQL Data Warehouse (but not with SSIS), see Tutorial: Load data to Azure SQL Data Warehouse.

選項 2 - 使用來源和目的地Option 2 - Use a source and destination

第二個方法是使用資料流程工作並包含來源和目的地的典型套件。The second approach is a typical package which uses a Data Flow task that contains a source and a destination. 此方法支援各種不同的資料來源,包括 SQL Server 和 Azure SQL 資料倉儲。This approach supports a wide range of data sources, including SQL Server and Azure SQL Data Warehouse.

本教學課程使用 SQL Server 作為資料來源。This tutorial uses SQL Server as the data source. SQL Server 會在內部部署或 Azure 虛擬機器上執行。SQL Server runs on premises or on an Azure virtual machine.

若要連線到 SQL Server 和 SQL 資料倉儲,您可以使用 ADO.NET 連線管理員以及來源和目的地,或 OLE DB 連線管理員以及來源和目的地。To connect to SQL Server and to SQL Data Warehouse, you can use an ADO.NET connection manager and source and destination, or an OLE DB connection manager and source and destination. 本教學課程採用 ADO.NET,因為它的設定選項最少。This tutorial uses ADO.NET because it has the fewest configuration options. OLE DB 會提供比 ADO.NET 稍微更好的效能。OLE DB may provide slightly better performance than ADO.NET.

捷徑是使用 [SQL Server 匯入和匯出精靈] 來建立基本套件。As a shortcut, you can use the SQL Server Import and Export Wizard to create the basic package. 然後,儲存套件,並在 Visual Studio 或 SSDT 中開啟以進行檢視和自訂。Then, save the package, and open it in Visual Studio or SSDT to view and customize it. 如需詳細資訊,請參閱使用 SQL Server 匯入和匯出精靈匯入和匯出資料For more info, see Import and Export Data with the SQL Server Import and Export Wizard.

選項 2 的必要條件Prerequisites for Option 2

若要使用此選項設定教學課程,您需要下列項目:To continue the tutorial with this option, you need the following things:

  1. 範例資料Sample data. 本教學課程使用儲存在 SQL Server 中 AdventureWorks 範例資料庫內的範例資料,作為要載入 SQL 資料倉儲的來源資料。This tutorial uses sample data stored in SQL Server in the AdventureWorks sample database as the source data to be loaded into SQL Data Warehouse. 若要取得 AdventureWorks 範例資料庫,請參閱 AdventureWorks 範例資料庫To get the AdventureWorks sample database, see AdventureWorks Sample Databases.

  2. 防火牆規則A firewall rule. 您必須使用本機電腦的 IP 位址針對 SQL 資料倉儲建立防火牆規則,然後才能將資料上傳到 SQL 資料倉儲。You have to create a firewall rule on SQL Data Warehouse with the IP address of your local computer before you can upload data to the SQL Data Warehouse.

建立基本資料流程Create the basic data flow

  1. 將 [資料流程工作] 從 [工具箱] 拖曳至設計介面的中央 (在 [控制流程] 索引標籤上)。Drag a Data Flow Task from the Toolbox to the center of the design surface (on the Control Flow tab).

  2. 按兩下 [資料流程工作] 以切換到 [資料流程] 索引標籤。Double-click the Data Flow Task to switch to the Data Flow tab.

  3. 從 [工具箱] 的 [其他來源] 清單中,將 [ADO.NET 來源] 拖曳至設計介面。From the Other Sources list in the Toolbox, drag an ADO.NET Source to the design surface. 保持選取來源配接器,在 [屬性] 窗格中將其名稱變更為 SQL Server 來源With the source adapter still selected, change its name to SQL Server source in the Properties pane.

  4. 從 [工具箱] 的 [其他目的地] 清單中,將 [ADO.NET 目的地] 拖曳至設計介面的 [ADO.NET 來源] 底下。From the Other Destinations list in the Toolbox, drag an ADO.NET Destination to the design surface under the ADO.NET Source. 保持選取目的地配接器,在 [屬性] 窗格中將其名稱變更為 SQL DW 目的地With the destination adapter still selected, change its name to SQL DW destination in the Properties pane.

設定來源配接器Configure the source adapter

  1. 按兩下來源配接器以開啟 [ADO.NET 來源編輯器] 。Double-click the source adapter to open the ADO.NET Source Editor.

  2. 在 [ADO.NET 來源編輯器] 的 [連線管理員] 索引標籤上,按一下 [ADO.NET 連線管理員] 清單旁的 [新增] 按鈕,以開啟 [設定 ADO.NET 連線管理員] 對話方塊,然後針對本教學課程載入資料的來源 SQL Server 資料庫建立連線設定。On the Connection Manager tab of the ADO.NET Source Editor, click the New button next to the ADO.NET connection manager list to open the Configure ADO.NET Connection Manager dialog box and create connection settings for the SQL Server database from which this tutorial loads data.

  3. 在 [設定 ADO.NET 連線管理員] 對話方塊中,按一下 [新增] 按鈕以開啟 [連線管理員] 對話方塊並建立新的資料連線。In the Configure ADO.NET Connection Manager dialog box, click the New button to open the Connection Manager dialog box and create a new data connection.

  4. 在 [連線管理員] 對話方塊中,執行下列事項。In the Connection Manager dialog box, do the following things.

    1. 針對 [提供者] ,選取 [SqlClient 資料提供者]。For Provider, select the SqlClient Data Provider.

    2. 針對 [伺服器名稱] ,輸入 SQL Server 名稱。For Server name, enter the SQL Server name.

    3. 在 [登入伺服器] 區段中,選取或輸入驗證資訊。In the Log on to the server section, select or enter authentication information.

    4. 在 [連線到資料庫] 區段中,選取 [AdventureWorks 範例資料庫]。In the Connect to a database section, select the AdventureWorks sample database.

    5. 按一下 [測試連接]Click Test Connection.

    6. 在報告連線測試結果的對話方塊中,按一下 [確定] 以返回 [連線管理員] 對話方塊。In the dialog box that reports the results of the connection test, click OK to return to the Connection Manager dialog box.

    7. 在 [連線管理員] 對話方塊中,按一下 [確定] 以返回 [設定 ADO.NET 連線管理員] 對話方塊。In the Connection Manager dialog box, click OK to return to the Configure ADO.NET Connection Manager dialog box.

  5. 在 [設定 ADO.NET 連線管理員] 對話方塊中,按一下 [確定] 以返回 [ADO.NET 來源編輯器] 。In the Configure ADO.NET Connection Manager dialog box, click OK to return to the ADO.NET Source Editor.

  6. 在 [ADO.NET 來源編輯器] 的 [資料表或檢視的名稱] 清單中,選取 [Sales.SalesOrderDetail] 資料表。In the ADO.NET Source Editor, in the Name of the table or the view list, select the Sales.SalesOrderDetail table.

  7. 按一下 [預覽] 以在 [預覽查詢結果] 對話方塊中查看來源資料表中的前 200 個資料列資料。Click Preview to see the first 200 rows of data in the source table in the Preview Query Results dialog box.

  8. 在 [預覽查詢結果] 對話方塊中,按一下 [關閉] 以返回 [ADO.NET 來源編輯器] 。In the Preview Query Results dialog box, click Close to return to the ADO.NET Source Editor.

  9. 在 [ADO.NET 來源編輯器] 中,按一下 [確定] 以完成設定資料來源。In the ADO.NET Source Editor, click OK to finish configuring the data source.

將來源配接器連線到目的地配接器Connect the source adapter to the destination adapter

  1. 在設計介面上選取來源配接器。Select the source adapter on the design surface.

  2. 選取從來源配接器延伸的藍色箭頭,並將它拖曳到目的地編輯器,直到它貼齊固定。Select the blue arrow that extends from the source adapter and drag it to the destination editor until it snaps into place.

    在一般的 SSIS 套件中,您可以在來源和目的地之間使用 SSIS 工具箱中的數個其他元件,以在資料通過 SSIS 資料流程時進行架構重組、轉換和清理。In a typical SSIS package, you use a number of other components from the SSIS Toolbox in between the source and the destination to restructure, transform, and cleanse your data as it passes through the SSIS data flow. 為了盡可能使此範例簡單,我們會將來源直接連線到目的地。To keep this example as simple as possible, we're connecting the source directly to the destination.

設定目的地配接器Configure the destination adapter

  1. 按兩下目的地配接器以開啟 [ADO.NET 目的地編輯器] 。Double-click the destination adapter to open the ADO.NET Destination Editor.

  2. 在 [ADO.NET 目的地編輯器] 的 [連線管理員] 索引標籤上,按一下 [連線管理員] 清單旁的 [新增] 按鈕,以開啟 [設定 ADO.NET 連線管理員] 對話方塊,然後針對本教學課程載入資料的目的地 Azure SQL 資料倉儲資料庫建立連線設定。On the Connection Manager tab of the ADO.NET Destination Editor, click the New button next to the Connection manager list to open the Configure ADO.NET Connection Manager dialog box and create connection settings for the Azure SQL Data Warehouse database into which this tutorial loads data.

  3. 在 [設定 ADO.NET 連線管理員] 對話方塊中,按一下 [新增] 按鈕以開啟 [連線管理員] 對話方塊並建立新的資料連線。In the Configure ADO.NET Connection Manager dialog box, click the New button to open the Connection Manager dialog box and create a new data connection.

  4. 在 [連線管理員] 對話方塊中,執行下列事項。In the Connection Manager dialog box, do the following things.

    1. 針對 [提供者] ,選取 [SqlClient 資料提供者]。For Provider, select the SqlClient Data Provider.
    2. 針對 [伺服器名稱] ,輸入 SQL 資料庫倉儲名稱。For Server name, enter the SQL Data Warehouse name.
    3. 在 [登入伺服器] 區段中,選取 [使用 SQL Server 驗證] 並輸入驗證資訊。In the Log on to the server section, select Use SQL Server authentication and enter authentication information.
    4. 在 [連線到資料庫] 區段中,選取現有的 SQL 資料倉儲資料庫。In the Connect to a database section, select an existing SQL Data Warehouse database.
    5. 按一下 [測試連接]Click Test Connection.
    6. 在報告連線測試結果的對話方塊中,按一下 [確定] 以返回 [連線管理員] 對話方塊。In the dialog box that reports the results of the connection test, click OK to return to the Connection Manager dialog box.
    7. 在 [連線管理員] 對話方塊中,按一下 [確定] 以返回 [設定 ADO.NET 連線管理員] 對話方塊。In the Connection Manager dialog box, click OK to return to the Configure ADO.NET Connection Manager dialog box.
  5. 在 [設定 ADO.NET 連線管理員] 對話方塊中,按一下 [確定] 以返回 [ADO.NET 目的地編輯器] 。In the Configure ADO.NET Connection Manager dialog box, click OK to return to the ADO.NET Destination Editor.

  6. 在 [ADO.NET 目的地編輯器] 中,按一下 [使用資料表或檢視] 清單旁的 [新增] 以開啟 [建立資料表] 對話方塊,並使用與來源資料表相符的資料行清單建立新的目的地資料表。In the ADO.NET Destination Editor, click New next to the Use a table or view list to open the Create Table dialog box to create a new destination table with a column list that matches the source table.

  7. 在 [建立資料表] 對話方塊中,執行下列事項。In the Create Table dialog box, do the following things.

    1. 將目的地資料表的名稱變更為 SalesOrderDetailChange the name of the destination table to SalesOrderDetail.

    2. 移除 rowguid 資料行。Remove the rowguid column. SQL 資料倉儲中不支援 uniqueidentifier 資料類型。The uniqueidentifier data type is not supported in SQL Data Warehouse.

    3. LineTotal 資料行的資料類型變更為 moneyChange the data type of the LineTotal column to money. SQL 資料倉儲中不支援 decimal 資料類型。The decimal data type is not supported in SQL Data Warehouse. 如需支援資料類型的資訊,請參閱 CREATE TABLE (Azure SQL 資料倉儲、平行處理資料倉儲)For info about supported data types, see CREATE TABLE (Azure SQL Data Warehouse, Parallel Data Warehouse).

    4. 按一下 [確定] 以建立資料表,並返回 [ADO.NET 目的地編輯器] 。Click OK to create the table and return to the ADO.NET Destination Editor.

  8. 在 [ADO.NET 目的地編輯器] 中,選取 [對應] 索引標籤以查看來源中的資料行如何對應至目的地中的資料行。In the ADO.NET Destination Editor, select the Mappings tab to see how columns in the source are mapped to columns in the destination.

  9. 按一下 [確定] ,以完成目的地設定。Click OK to finish configuring the destination.

執行套件以載入資料Run the package to load the data

按一下工具列上的 [啟動] 按鈕,或選取 [偵錯] 功能表上的其中一個 [執行] 選項來執行套件。Run the package by clicking the Start button on the toolbar or by selecting one of the Run options on the Debug menu.

以下段落描述使用本文所述的第二個選項 (也就是包含來源和目的地的資料流程) 建立套件時所看到的情況。The following paragraphs describe what you see if you created the package with the second option described in this article, that is, with a data flow containing a source and destination.

當套件開始執行時,您會看到黃色旋轉的轉輪表示活動,以及目前為止所處理的資料列數目。As the package begins to run, you see yellow spinning wheels to indicate activity as well as the number of rows processed so far.

當套件完成執行時,您會看到綠色核取記號表示已成功,以及從來源載入至目的地的資料列總數。When the package has finished running, you see green check marks to indicate success as well as the total number of rows of data loaded from the source to the destination.

恭喜!Congratulations! 您已成功地使用 SQL Server Integration Services 將資料載入至 Azure SQL 資料倉儲。You've successfully used SQL Server Integration Services to load data into Azure SQL Data Warehouse.

後續步驟Next steps