使用 Azure Data Factory 將資料從 Azure Blob 儲存體複製到 Azure SQL 資料庫中的資料庫

適用于: Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用于企業的單一分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告等所有專案。 瞭解如何 免費啟動新的試用版

在本教學課程中,您會使用 Azure Data Factory 使用者介面 (UI) 建立資料處理站。 此資料處理站中的管線會將資料從 Azure Blob 儲存體複製到 Azure SQL 資料庫 中的資料庫。 本教學課程中的組態模式適用于從檔案型資料存放區複製到關聯式資料存放區。 如需支援作為來源和接收的資料存放區清單,請參閱 支援的資料存放區 資料表。

注意

如果您不熟悉 Data Factory,請參閱 Azure Data Factory 簡介。

在本教學課程中,您會執行下列步驟:

  • 建立資料處理站。
  • 建立具有複製活動的管線。
  • 測試執行管線。
  • 手動觸發管線。
  • 依排程觸發管線。
  • 監視管線和活動執行。

必要條件

  • Azure 訂用帳戶 。 如果您沒有 Azure 訂用帳戶,請在開始前建立免費 Azure 帳戶
  • Azure 儲存體帳戶 。 您可以使用 Blob 儲存體作為 資料存放區。 如果您沒有儲存體帳戶,請參閱 建立 Azure 儲存體帳戶以取得建立儲存體帳戶 的步驟。
  • Azure SQL Database。 您可以使用資料庫作為 接收 資料存放區。 如果您沒有 Azure SQL 資料庫中的資料庫,請參閱 在 Azure SQL 資料庫 中建立資料庫,以取得建立資料庫的步驟。

建立 Blob 和 SQL 資料表

現在,請執行下列步驟,為您的 Blob 儲存體和 SQL 資料庫準備教學課程。

建立來源 Blob

  1. 啟動記事本。 複製下列文字,並將其儲存為 磁片上的 emp.txt 檔案:

    FirstName,LastName
    John,Doe
    Jane,Doe
    
  2. 在 Blob 儲存體中建立名為 adftutorial 的容器。 在此容器中建立名為 input 的資料夾。 然後,將 emp.txt 檔案上傳至 輸入 資料夾。 使用 Azure 入口網站 或工具,例如 Azure 儲存體 Explorer 來執行這些工作。

建立接收 SQL 資料表

  1. 使用下列 SQL 腳本在資料庫中建立 dbo.emp 資料表:

    CREATE TABLE dbo.emp
    (
        ID int IDENTITY(1,1) NOT NULL,
        FirstName varchar(50),
        LastName varchar(50)
    )
    GO
    
    CREATE CLUSTERED INDEX IX_emp_ID ON dbo.emp (ID);
    
  2. 允許 Azure 服務存取 SQL Server。 請確定 已針對 SQL Server 開啟 [允許存取 Azure 服務 ],讓 Data Factory 可以將資料寫入 SQL Server。 若要確認並開啟此設定,請移至邏輯 SQL Server > 概觀 > 設定伺服器防火牆 > 將 [允許存取 Azure 服務 ] 選項設定 [開啟 ]。

建立資料處理站

在此步驟中,您會建立資料處理站,並啟動 Data Factory UI,以在資料處理站中建立管線。

  1. 開啟 Microsoft Edge Google Chrome 。 目前只有 Microsoft Edge 和 Google Chrome 網頁瀏覽器才支援 Data Factory UI。

  2. 在左側功能表上,選取 [建立資源 > 整合 > Data Factory]。

  3. 在 [ 建立 Data Factory ] 頁面的 [基本] 索引標籤底 下,選取您要在其中建立 Data Factory 的 Azure 訂 用帳戶。

  4. 針對 資源群組 ,請採取下列步驟之一:

    a. 從下拉式清單中選取現有的資源群組。

    b. 選取 [ 新建 ],然後輸入新資源群組的名稱。

    若要瞭解資源群組,請參閱 使用資源群組來管理您的 Azure 資源

  5. 在 [ 區域 ] 下,選取資料處理站的位置。 下拉式清單中只會顯示支援的位置。 資料處理站所使用的資料存放區(例如,Azure 儲存體和SQL 資料庫)和計算(例如 Azure HDInsight)可以位於其他區域。

  6. 在 [名稱] 下,輸入 ADFTutorialDataFactory

    Azure Data Factory 的名稱必須是 全域唯 一的。 如果您收到名稱值的相關錯誤訊息,請輸入資料處理站的不同名稱。 (例如 yournameADFTutorialDataFactory)。 如需 Data Factory 成品的命名規則,請參閱 Data Factory 命名規則

    New data factory error message for duplicate name.

  7. 在 [版本] 底下 ,選取 [V2 ]。

  8. 選取 頂端的 [Git 組態 ] 索引標籤,然後選取 [稍後設定 Git] 核取方塊。

  9. 選取 [ 檢閱 + 建立 ],然後在驗證通過之後選取 [建立 ]。

  10. 建立完成後,您會在通知中心看到通知。 選取 [移至資源 ] 以流覽至 Data Factory 頁面。

  11. 在 [ 開啟 Azure Data Factory Studio ] 圖格上選取 [開啟 ],以在不同的索引標籤中啟動 Azure Data Factory UI。

建立新管線

在此步驟中,您會在資料處理站中建立具有複製活動的管線。 複製活動會將資料從 Blob 儲存體複製到SQL 資料庫。 在快速入門教學課程中 ,您已依照下列步驟建立管線:

  1. 建立連結的服務。
  2. 建立輸入和輸出資料集。
  3. 建立管線。

在本教學課程中,您會從建立管線開始。 然後,當您需要連結服務與資料集來設定管線時,即可建立這些服務與資料集。

  1. 在首頁上,選取 [協調]。

    Screenshot that shows the ADF home page.

  2. 在 [屬性] 底下的 [一般] 面板中,指定 [Name ] 的 CopyPipeline 然後按一下右上角的 [屬性] 圖示,以折迭面板。

  3. 在 [ 活動 ] 工具方塊中,展開 [ 移動和轉換 ] 類別,然後將 [複製資料] 活動從工具箱拖放 到管線設計工具介面。 針對 Name 指定 CopyFromBlobToSql

    Copy activity

設定來源

提示

在本教學課程中,您會使用 帳戶金鑰 作為來源資料存放區的驗證類型,但您可以視需要選擇其他支援的驗證方法: SAS URI 服務主體 受控識別 。 如需詳細資訊,請參閱本文 中的 對應章節。 若要安全地儲存資料存放區的秘密,也建議您使用 Azure 金鑰保存庫。 如需詳細圖例,請參閱這篇文章

  1. 移至 [ 來源] 索引標籤。選取 [+ 新增 ] 以建立來源資料集。

  2. 在 [ 新增資料集] 對話方塊中,選取 [Azure Blob 儲存體 ],然後選取 [ 繼續 ]。 來源資料位於 Blob 儲存體中,因此您可以選取 來源資料集Azure Blob 儲存體

  3. 在 [ 選取格式] 對話方塊中,選擇資料的格式類型,然後選取 [ 繼續 ]。

  4. 在 [ 設定屬性 ] 對話方塊中,輸入 SourceBlobDataset for Name。 選取 [第一個資料列] 作為標頭 核取方塊。 在 [ 連結服務 ] 文字方塊中,選取 [+ 新增 ]。

  5. 在 [ 新增連結服務 (Azure Blob 儲存體) ] 對話方塊中,輸入 Azure儲存體LinkedService 作為名稱,從 儲存體帳戶名稱 清單中選取您的儲存體帳戶。 測試連線,選取 [ 建立 ] 以部署連結的服務。

  6. 建立連結服務之後,它會巡覽回 [ 設定屬性] 頁面。 在 [ 檔案路徑] 旁,選取 [ 流覽 ]。

  7. 流覽至 adftutorial/input 資料夾,選取 emp.txt 檔案,然後選取 [ 確定 ]。

  8. 選取 [確定]。 它會自動巡覽至管線頁面。 在 [來源] 索引標籤中,確認已 選取 SourceBlobDataset 。 若要預覽此頁面的資料,請選取 [預覽資料 ]。

    Source dataset

設定接收

提示

在本教學課程中,您會使用 SQL 驗證 作為接收資料存放區的驗證類型,但您可以視需要選擇其他支援的驗證方法: 服務主體 受控識別 。 如需詳細資訊,請參閱本文 中的 對應章節。 若要安全地儲存資料存放區的秘密,也建議您使用 Azure 金鑰保存庫。 如需詳細圖例,請參閱這篇文章

  1. 移至 [ 接收 ] 索引標籤,然後選取 [+ 新增 ] 以建立接收資料集。

  2. 在 [ 新增資料集] 對話方塊中,于搜尋方塊中輸入 「SQL」來篩選連接器,選取 [Azure SQL 資料庫 ],然後選取 [ 繼續 ]。 在本教學課程中,您會將資料複製到 SQL 資料庫。

  3. 在 [ 設定屬性 ] 對話方塊中,輸入 OutputSqlDataset for Name。 從 [ 連結服務 ] 下拉式清單中,選取 [ + 新增 ]。 資料集必須與連結的服務相關聯。 連結的服務具有 Data Factory 用來在執行時間連線至SQL 資料庫連接字串。 資料集會指定複製資料的容器、資料夾和檔案(選擇性)。

  4. 在 [ 新增連結服務 ][Azure SQL 資料庫] 對話方塊中,採取下列步驟:

    a. 在 [名稱] 下,輸入 AzureSqlDatabaseLinkedService

    b. 在 [伺服器名稱] 底下 ,選取您的 SQL Server 實例。

    c. 在 [資料庫名稱] 底下 ,選取您的資料庫。

    d. 在 [ 使用者名稱] 下,輸入使用者的名稱。

    e. 在 [ 密碼 ] 底下,輸入使用者的密碼。

    f. 選取 [ 測試連線 ] 以測試連線。

    .g 選取 [建立] 以部署連結的服務。

    Save new linked service

  5. 它會自動巡覽至 [ 設定屬性 ] 對話方塊。 在 [資料表] ,選取 [dbo].[emp] 。 然後選取確定

  6. 移至具有管線的索引標籤,然後在 [接收資料集] 中 ,確認 已選取 OutputSqlDataset

    Pipeline tab

您可以選擇性地將來源的架構對應至目的地的對應架構,方法是遵循 複製活動中 的架構對應。

驗證管線

若要驗證管線,請從工具列選取 [ 驗證 ]。

按一下右上方的 [程式碼],即可查看與管線 相關聯的 JSON 程式碼

偵錯和發佈管線

您可以將成品(連結的服務、資料集和管線)發佈至 Data Factory 或您自己的 Azure Repos Git 存放庫之前,先對管線進行偵錯。

  1. 若要偵錯管線,請選取工具列上的 [偵錯]。 您會在視窗底部的 [輸出] 索引標籤中看到管線執行狀態。

  2. 管線成功執行之後,在頂端工具列中,選取 [ 全部 發佈]。 此動作會將您建立的實體 (資料集和管線) 發佈至 Data Factory。

  3. 等到您看到 成功發佈的 訊息。 若要查看通知訊息,請按一下 右上方的 [顯示通知 ] 按鈕。

手動觸發管線

在此步驟中,您會手動觸發您在上一個步驟中發佈的管線。

  1. 選取 工具列上的 [觸發程式 ],然後選取 [ 立即 觸發]。 在 [ 管線執行] 頁面上,選取 [ 確定 ]。

  2. 移至左側的 [監視] 索引標籤。 您會看到由手動觸發程式觸發的管線執行。 您可以使用 [管線名稱 ] 資料行底下 的連結來檢視活動詳細資料,以及重新執行管線。

    Monitor pipeline runs

  3. 若要查看與管線執行相關聯的活動執行,請選取 [管線名稱 ] 資料行底下的 CopyPipeline 連結。 在此範例中,只有一個活動,因此您只會在清單中看到一個專案。 如需複製作業的詳細資訊,請選取 [活動名稱 ] 資料行底下的 [詳細 資料] 連結(眼鏡圖示)。 選取 頂端的 [所有管線執行 ] 以返回 [管線執行] 檢視。 若要重新整理檢視,請選取 [ 重新整理 ]。

    Monitor activity runs

  4. 確認將另外兩個數據列新增至 資料庫中的 emp 資料表。

依排程觸發管線

在此排程中,您會建立管線的排程觸發程式。 觸發程式會依指定的排程執行管線,例如每小時或每日。 在這裡,您會將觸發程式設定為每分鐘執行一次,直到指定的結束日期時間為止。

  1. 移至 [監視] 索引標籤上方左側的 [ 作者] 索引標籤。

  2. 移至您的管線,按一下 工具列上的 [觸發 程式],然後選取 [ 新增/編輯 ]。

  3. 在 [ 新增觸發程式 ] 對話方塊中,針對 [選擇觸發 程式] 區域選取 [+ 新增 ]。

  4. 在 [ 新增觸發程式] 視窗中,採取下列步驟:

    a. 在 [名稱] 底下 ,輸入 RunEveryMinute

    b. 更新觸發程式的開始日期 。 如果日期在目前日期時間之前,觸發程式會在發佈變更後開始生效。

    c. 在 [時區 ] 下,選取下拉式清單。

    d. 將 [ 週期 ] 設定為 [每 1 分鐘]。

    e. 選取 [指定結束日期] 核取方塊 ,並將 [結束 時間] 部分更新 為超過目前日期時間的 幾分鐘。 只有在發佈變更之後,才會啟動觸發程式。 如果您只將它設定為相隔幾分鐘,而且您當時不會發佈它,則不會看到觸發程式執行。

    f. 針對 [ 已啟用] 選項,選取 [ ]。

    .g 選取 [確定]。

    重要

    成本會與每個管線執行相關聯,因此請適當地設定結束日期。

  5. 在 [ 編輯觸發程式] 頁面上檢閱警告,然後選取 [ 儲存 ]。 此範例中的管線不會採用任何參數。

  6. 按一下 [ 全部 發佈] 以發佈變更。

  7. 移至左側的 [監視] 索引標籤,以查看觸發的管線執行。

    Triggered pipeline runs

  8. 若要從 [ 管線執行] 檢視切換至 [觸發程式執行 ] 檢視,請選取 視窗左側的 [觸發程式執行 ]。

  9. 您會看到觸發程式在清單中執行。

  10. 確認每分鐘有兩個數據列(針對每個管線執行)插入 emp 資料表, 直到指定的結束時間為止。

此範例中的管線會將資料從一個位置複製到 Blob 儲存體中的另一個位置。 您已了解如何︰

  • 建立資料處理站。
  • 建立具有複製活動的管線。
  • 測試執行管線。
  • 手動觸發管線。
  • 依排程觸發管線。
  • 監視管線和活動執行。

前進到下列教學課程,瞭解如何將資料從內部部署複製到雲端: