教學課程:將數據從 SQL Server 資料庫複製到 Azure Blob 記憶體

適用於:Azure Data Factory Azure Synapse Analytics

提示

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

在本教學課程中,您會使用 Azure PowerShell 建立數據處理站管線,以將數據從 SQL Server 資料庫複製到 Azure Blob 記憶體。 您可以建立並使用自我裝載整合運行時間,以在內部部署與雲端數據存放區之間移動數據。

注意

本文不提供Data Factory 服務的詳細簡介。 如需詳細資訊,請參閱 Azure Data Factory 簡介

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

  • 建立資料處理站。
  • 建立自我裝載整合執行階段。
  • 建立 SQL Server 和 Azure 儲存體 連結的服務。
  • 建立 SQL Server 和 Azure Blob 數據集。
  • 建立具有複製活動的管線來移動資料。
  • 啟動管線執行。
  • 監視管線執行。

必要條件

Azure 訂用帳戶

開始之前,如果您還沒有 Azure 訂用帳戶, 請建立免費帳戶

Azure 角色

若要建立數據處理站實例,您用來登入 Azure 的使用者帳戶必須獲指派參與者或擁有者角色,或必須是 Azure 訂用帳戶的系統管理員

若要檢視您在訂用帳戶中擁有的許可權,請移至 Azure 入口網站,選取右上角的使用者名稱,然後選取 [許可權]。 如果您有多個訂用帳戶的存取權,請選取適當的訂用帳戶。 如需將使用者新增至角色的範例指示,請參閱使用 Azure 入口網站 指派 Azure 角色一文。

SQL Server 2014、2016 和 2017

在本教學課程中,您會使用 SQL Server 資料庫作為 數據存放區。 您在本教學課程中建立的數據處理站管線會將數據從這個 SQL Server 資料庫(來源)複製到 Azure Blob 記憶體(接收)。 接著,您會在 SQL Server 資料庫中建立名為 emp 的數據表,並將幾個範例專案插入數據表中。

  1. 啟動 SQL Server Management Studio。 如果計算機上尚未安裝,請移至 下載 SQL Server Management Studio

  2. 使用您的認證 連線 SQL Server 實例。

  3. 建立範例資料庫。 在樹檢視中,以滑鼠右鍵按兩下 [資料庫],然後選取 [ 新增資料庫]。

  4. 在 [ 新增資料庫] 視窗中,輸入資料庫的名稱,然後選取 [ 確定]。

  5. 若要建立 emp 數據表並將一些範例數據插入其中,請對資料庫執行下列查詢腳本。 在樹檢視中,以滑鼠右鍵按下您所建立的資料庫,然後選取 [ 新增查詢]。

    CREATE TABLE dbo.emp
    (
        ID int IDENTITY(1,1) NOT NULL,
        FirstName varchar(50),
        LastName varchar(50)
    )
    GO
    
    INSERT INTO emp (FirstName, LastName) VALUES ('John', 'Doe')
    INSERT INTO emp (FirstName, LastName) VALUES ('Jane', 'Doe')
    GO
    

Azure 儲存體帳戶

在本教學課程中,您會使用一般用途的 Azure 記憶體帳戶(特別是 Azure Blob 記憶體)作為目的地/接收數據存放區。 如果您沒有一般用途的 Azure 記憶體帳戶,請參閱 建立記憶體帳戶。 您在本教學課程中建立的數據處理站管線會將數據從 SQL Server 資料庫(來源)複製到此 Azure Blob 記憶體(接收)。

取得記憶體帳戶名稱和帳戶金鑰

在本教學課程中,您會使用 Azure 記憶體帳戶的名稱和密鑰。 執行下列動作來取得記憶體帳戶的名稱和金鑰:

  1. 使用您的 Azure 使用者名稱和密碼登入 Azure 入口網站

  2. 在左窗格中,選取 [更多服務],使用 儲存體 關鍵詞進行篩選,然後選取 [儲存體 帳戶]。

    搜尋記憶體帳戶

  3. 在記憶體帳戶清單中,篩選記憶體帳戶 (如有需要),然後選取您的記憶體帳戶。

  4. [儲存體 帳戶] 視窗中,選取 [存取密鑰]。

  5. [儲存體 帳戶名稱和key1] 方塊中,複製值,然後將其貼到 記事本 或其他編輯器中,以供稍後在本教學課程中使用。

建立 adftutorial 容器

在本節中,您會在 Azure Blob 記憶體中建立名為 adftutorial 的 Blob 容器。

  1. [儲存體 帳戶] 視窗中,切換至 [概觀],然後選取 [Blob]。

    選取 Blob 選項

  2. 在 [ Blob 服務 ] 視窗中,選取 [容器]。

  3. 在 [新增容器] 視窗中的 [名稱] 方塊中,輸入 adftutorial,然後選取 [確定]。

    輸入容器名稱

  4. 在容器清單中,選取 adftutorial

  5. 將容器視窗保留為 adftutorial 開啟。 您可以使用它來驗證教學課程結尾的輸出。 Data Factory 會自動在此容器中建立輸出資料夾,因此您不需要建立一個。

Windows PowerShell

安裝 Azure PowerShell

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 請參閱安裝 Azure PowerShell 以開始使用。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

如果您尚未在計算機上安裝最新版本的 Azure PowerShell。 如需詳細指示,請參閱 如何安裝和設定 Azure PowerShell

登入 PowerShell

  1. 在您的電腦上啟動PowerShell,並透過完成本快速入門教學課程保持開啟。 如果您關閉並重新開啟它,則必須再次執行這些命令。

  2. 執行下列命令,然後輸入您用來登入 Azure 入口網站 的 Azure 使用者名稱和密碼:

    Connect-AzAccount
    
  3. 如果您有多個 Azure 訂用帳戶,請執行下列命令來選取您想要使用的訂用帳戶。 以 Azure 訂用帳戶的識別碼取代 SubscriptionId

    Select-AzSubscription -SubscriptionId "<SubscriptionId>"   	
    

建立資料處理站

  1. 為稍後在PowerShell命令中使用的資源組名定義變數。 將下列命令複製到 PowerShell,指定 Azure 資源群組的名稱(以雙引號括住,例如 ),"adfrg"然後執行命令。

    $resourceGroupName = "ADFTutorialResourceGroup"
    
  2. 若要建立 Azure 資源群組,請執行下列命令:

    New-AzResourceGroup $resourceGroupName -location 'East US'
    

    如果資源群組已經存在,您可能不想覆寫它。 將不同的值指派給 $resourceGroupName 變數,然後執行一次命令。

  3. 為數據處理站名稱定義變數,以供稍後在PowerShell命令中使用。 名稱必須以字母或數字開頭,且只能包含字母、數位和虛線 (-) 字元。

    重要

    使用全域唯一名稱更新數據處理站名稱。 例如 ADFTutorialFactorySP1127。

    $dataFactoryName = "ADFTutorialFactory"
    
  4. 定義資料處理站位置的變數:

    $location = "East US"
    
  5. 若要建立數據處理站,請執行下列 Set-AzDataFactoryV2 Cmdlet:

    Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location $location -Name $dataFactoryName
    

注意

  • 數據處理站的名稱必須是全域唯一的。 如果發生下列錯誤,請變更名稱,並再試一次。
    The specified data factory name 'ADFv2TutorialDataFactory' is already in use. Data factory names must be globally unique.
    
  • 若要建立數據處理站實例,您用來登入 Azure 的使用者帳戶必須獲 指派參與者擁有者 角色,或必須是 Azure 訂用帳戶的系統管理員
  • 如需 Data Factory 目前可用的 Azure 區域清單,請選取您在下列頁面上感興趣的區域,然後展開 [分析 ] 以找出 Data Factory依區域提供的產品。 數據處理站所使用的數據存放區(Azure 儲存體、Azure SQL 資料庫 等)和計算(Azure HDInsight 等)可以位於其他區域。

建立自我裝載整合執行階段

在本節中,您會建立自我裝載整合運行時間,並將它與內部部署計算機與 SQL Server 資料庫產生關聯。 自我裝載整合運行時間是將機器上 SQL Server 資料庫的數據複製到 Azure Blob 記憶體的元件。

  1. 建立整合運行時間名稱的變數。 使用唯一的名稱,並記下名稱。 您將在本教學課程稍後使用它。

    $integrationRuntimeName = "ADFTutorialIR"
    
  2. 建立自我裝載整合執行階段。

    Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Name $integrationRuntimeName -Type SelfHosted -Description "selfhosted IR description"
    

    以下是範例輸出:

    Name              : ADFTutorialIR
    Type              : SelfHosted
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Description       : selfhosted IR description
    Id                : /subscriptions/<subscription ID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>/integrationruntimes/<integrationRuntimeName>
    
  3. 若要擷取所建立整合運行時間的狀態,請執行下列命令:

    Get-AzDataFactoryV2IntegrationRuntime -name $integrationRuntimeName -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Status
    

    以下是範例輸出:

    State                     : NeedRegistration
    Version                   :
    CreateTime                : 9/10/2019 3:24:09 AM
    AutoUpdate                : On
    ScheduledUpdateDate       :
    UpdateDelayOffset         :
    LocalTimeZoneOffset       :
    InternalChannelEncryption :
    Capabilities              : {}
    ServiceUrls               : {eu.frontend.clouddatahub.net}
    Nodes                     : {}
    Links                     : {}
    Name                      : <Integration Runtime name>
    Type                      : SelfHosted
    ResourceGroupName         : <resourceGroup name>
    DataFactoryName           : <dataFactory name>
    Description               : selfhosted IR description
    Id                        : /subscriptions/<subscription ID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>/integrationruntimes/<integrationRuntimeName>
    
  4. 若要擷 取驗證密鑰 ,以向雲端中的 Data Factory 服務註冊自我裝載整合運行時間,請執行下列命令。 複製其中一個金鑰(不包括引號),以在下一個步驟中註冊您在計算機上安裝的自我裝載整合運行時間。

    Get-AzDataFactoryV2IntegrationRuntimeKey -Name $integrationRuntimeName -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName | ConvertTo-Json
    

    以下是範例輸出:

    {
        "AuthKey1":  "IR@0000000000-0000-0000-0000-000000000000@xy0@xy@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=",
        "AuthKey2":  "IR@0000000000-0000-0000-0000-000000000000@xy0@xy@yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy="
    }
    

安裝整合運行時間

  1. 在本機 Windows 計算機上下載 Azure Data Factory Integration Runtime ,然後執行安裝。

  2. 在 [ 歡迎使用 Microsoft Integration Runtime 安裝 精靈] 中,選取 [ 下一步]。

  3. 在 [ 終端使用者許可協定] 視窗中,接受條款與許可協定,然後選取 [ 下一步]。

  4. 在 [ 目的地資料夾] 視窗中,選取 [ 下一步]。

  5. 在 [ 準備安裝 Microsoft Integration Runtime] 視窗中,選取 [ 安裝]。

  6. 在 [ 已完成的 Microsoft Integration Runtime 安裝 精靈] 中,選取 [ 完成]。

  7. 在 [註冊 Integration Runtime (自我裝載)] 視窗中,貼上您在上一節中儲存的密鑰,然後選取 [註冊]。

    註冊整合運行時間

  8. 在 [新增 Integration Runtime (自我裝載) 節點] 視窗中,選取 [完成]。

    [新增整合運行時間節點] 視窗

  9. 成功註冊自我裝載整合運行時間時,會顯示下列訊息:

    已成功註冊

  10. 在 [註冊 Integration Runtime (自我裝載)] 視窗中,選取 [啟動 Configuration Manager]。

  11. 當節點連線到雲端服務時,會顯示下列訊息:

    節點已連線

  12. 執行下列動作來測試 SQL Server 資料庫的連線能力:

    a. 在 [ Configuration Manager] 視窗中,切換至 [ 診斷] 索引標籤

    b. 在 [ 數據源類型 ] 方塊中,選取 [SqlServer]。

    c. 輸入伺服器名稱。

    d. 輸入資料庫名稱。

    e. 選取驗證模式。

    f. 輸入用戶名稱。

    .g 輸入與使用者名稱相關聯的密碼。

    h. 若要確認整合運行時間可以連線到 SQL Server,請選取 [ 測試]。
    連線 成功

    如果連線成功,則會顯示綠色複選標記圖示。 否則,您會收到與失敗相關聯的錯誤訊息。 修正任何問題,並確定整合運行時間可以連線到您的 SQL Server 實例。

    請記下上述所有值,以供稍後在本教學課程中使用。

建立連結服務

若要將您的資料存放區和計算服務連結至數據處理站,請在數據處理站中建立連結的服務。 在本教學課程中,您會將 Azure 記憶體帳戶和 SQL Server 實例連結至數據存放區。 鏈接的服務具有 Data Factory 服務在運行時間用來連線的連線資訊。

建立 Azure 儲存體 連結服務 (目的地/接收)

在此步驟中,您會將 Azure 記憶體帳戶連結至數據處理站。

  1. 使用下列程序代碼,在 C:\ADFv2Tutorial 資料夾中建立名為 Azure 的 JSON 檔案 儲存體 LinkedService.json如果ADFv2Tutorial資料夾不存在,請加以建立。

    重要

    儲存盤案之前,請將 accountName> 和 <accountKey> 取代<為 Azure 記憶體帳戶的名稱和密鑰。 您已在必要 條件一 節中指出。

    {
        "name": "AzureStorageLinkedService",
        "properties": {
            "annotations": [],
            "type": "AzureBlobStorage",
            "typeProperties": {
                "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net"
            }
        }
    }
    
  2. 在 PowerShell 中,切換至 C:\ADFv2Tutorial 資料夾。

    Set-Location 'C:\ADFv2Tutorial'
    
  3. 若要建立連結的服務,Azure 儲存體 LinkedService,請執行下列 Set-AzDataFactoryV2LinkedService Cmdlet:

    Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -Name "AzureStorageLinkedService" -File ".\AzureStorageLinkedService.json"
    

    以下是範例輸出:

    LinkedServiceName : AzureStorageLinkedService
    ResourceGroupName : <resourceGroup name>
    DataFactoryName   : <dataFactory name>
    Properties        : Microsoft.Azure.Management.DataFactory.Models.AzureBlobStorageLinkedService
    

    如果您收到「找不到檔案」錯誤,請執行 dir 命令來確認檔案存在。 如果檔名具有.txt擴展名(例如 Azure 儲存體 LinkedService.json.txt),請將其移除,然後再次執行 PowerShell 命令。

建立與加密 SQL Server 連結服務 (來源)

在此步驟中,您會將 SQL Server 實例連結至數據處理站。

  1. 使用下列程序代碼,在 C:\ADFv2Tutorial 資料夾中建立名為 SqlServerLinkedService.json 的 JSON 檔案:

    重要

    根據您用來連線到 SQL Server 的驗證,選取區段。

    使用 SQL 驗證 (sa):

    {  
        "name":"SqlServerLinkedService",
        "type":"Microsoft.DataFactory/factories/linkedservices",
        "properties":{  
            "annotations":[  
    
            ],
            "type":"SqlServer",
            "typeProperties":{  
                "connectionString":"integrated security=False;data source=<serverName>;initial catalog=<databaseName>;user id=<userName>;password=<password>"
            },
            "connectVia":{  
                "referenceName":"<integration runtime name> ",
                "type":"IntegrationRuntimeReference"
            }
        }
    }
    

    使用 Windows 驗證:

    {  
        "name":"SqlServerLinkedService",
        "type":"Microsoft.DataFactory/factories/linkedservices",
        "properties":{  
            "annotations":[  
    
            ],
            "type":"SqlServer",
            "typeProperties":{  
                "connectionString":"integrated security=True;data source=<serverName>;initial catalog=<databaseName>",
                "userName":"<username> or <domain>\\<username>",
                "password":{  
                    "type":"SecureString",
                    "value":"<password>"
                }
            },
            "connectVia":{  
                "referenceName":"<integration runtime name>",
                "type":"IntegrationRuntimeReference"
            }
        }
    }
    

    重要

    • 根據您用來連線到 SQL Server 實例的驗證,選取區段。
    • 將整合運行時間名稱>取代<為整合運行時間的名稱。
    • 儲存盤案之前,請將 servername、<databasename>>、<username> 和< password> 取代<為 SQL Server 實例的值。
    • 如果您需要在使用者帳戶或伺服器名稱中使用反斜杠 (\),請在其前面加上逸出字元 (\)。 例如,使用 mydomain\\myuser
  2. 若要加密敏感數據(使用者名稱、密碼等),請執行 New-AzDataFactoryV2LinkedServiceEncryptedCredential Cmdlet。
    此加密可確保使用資料保護應用程式開發介面 (DPAPI) 加密認證。 加密的認證會儲存在自我裝載整合運行時間節點 (本機計算機) 本機上。 輸出承載可以重新導向至包含加密認證的另一個 JSON 檔案(在此案例中為 encryptedLinkedService.json)。

    New-AzDataFactoryV2LinkedServiceEncryptedCredential -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -IntegrationRuntimeName $integrationRuntimeName -File ".\SQLServerLinkedService.json" > encryptedSQLServerLinkedService.json
    
  3. 執行下列命令,以建立 EncryptedSqlServerLinkedService:

    Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -Name "EncryptedSqlServerLinkedService" -File ".\encryptedSqlServerLinkedService.json"
    

建立資料集

在此步驟中,您會建立輸入和輸出數據集。 它們代表複製作業的輸入和輸出數據,其會將數據從 SQL Server 資料庫複製到 Azure Blob 記憶體。

建立源 SQL Server 資料庫的數據集

在此步驟中,您會定義代表 SQL Server 資料庫實例中數據的數據集。 數據集的類型為 SqlServerTable。 它是指您在上一個步驟中建立的 SQL Server 鏈接服務。 鏈接服務具有 Data Factory 服務在運行時間用來連線到 SQL Server 實例的連接資訊。 此數據集會指定資料庫中包含數據的 SQL 資料表。 在本教學課程中 ,emp 數據表包含源數據。

  1. 使用下列程序代碼,在 C:\ADFv2Tutorial 資料夾中建立名為 SqlServerDataset.jsonJSON 檔案:

    {  
        "name":"SqlServerDataset",
        "properties":{  
            "linkedServiceName":{  
                "referenceName":"EncryptedSqlServerLinkedService",
                "type":"LinkedServiceReference"
            },
            "annotations":[  
    
            ],
            "type":"SqlServerTable",
            "schema":[  
    
            ],
            "typeProperties":{  
                "schema":"dbo",
                "table":"emp"
            }
        }
    }
    
  2. 若要建立數據集 SqlServerDataset,請執行 Set-AzDataFactoryV2Dataset Cmdlet。

    Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SqlServerDataset" -File ".\SqlServerDataset.json"
    

    以下是範例輸出:

    DatasetName       : SqlServerDataset
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.SqlServerTableDataset
    

建立 Azure Blob 記憶體的資料集(接收)

在此步驟中,您會定義數據集,代表將複製到 Azure Blob 記憶體的數據。 數據集的類型為 AzureBlob。 它是指您稍早在本教學課程中建立 Azure 儲存體 鏈接服務。

鏈接服務具有數據處理站在運行時間用來連線到 Azure 記憶體帳戶的連線資訊。 此數據集會指定從 SQL Server 資料庫複製資料之 Azure 記憶體中的資料夾。 在本教學課程中,資料夾是 adftutorial/fromonprem,其中 adftutorial 是 Blob 容器,而 fromonprem 是資料夾。

  1. 使用下列程序代碼,在 C:\ADFv2Tutorial 資料夾中建立名為 AzureBlobDataset.jsonJSON 檔案:

    {  
        "name":"AzureBlobDataset",
        "properties":{  
            "linkedServiceName":{  
                "referenceName":"AzureStorageLinkedService",
                "type":"LinkedServiceReference"
            },
            "annotations":[  
    
            ],
            "type":"DelimitedText",
            "typeProperties":{  
                "location":{  
                    "type":"AzureBlobStorageLocation",
                    "folderPath":"fromonprem",
                    "container":"adftutorial"
                },
                "columnDelimiter":",",
                "escapeChar":"\\",
                "quoteChar":"\""
            },
            "schema":[  
    
            ]
        },
        "type":"Microsoft.DataFactory/factories/datasets"
    }
    
  2. 若要建立 AzureBlobDataset 數據集,請執行 Set-AzDataFactoryV2Dataset Cmdlet。

    Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureBlobDataset" -File ".\AzureBlobDataset.json"
    

    以下是範例輸出:

    DatasetName       : AzureBlobDataset
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.DelimitedTextDataset
    

建立新管線

在本教學課程中,您會建立具有複製活動的管線。 複製活動會使用 SqlServerDataset 做為輸入數據集,並使用 AzureBlobDataset 做為輸出數據集。 來源類型設定為 SqlSource ,而接收類型設定為 BlobSink

  1. 使用下列程序代碼,在 C:\ADFv2Tutorial 資料夾中建立名為 SqlServerToBlobPipeline.json 的 JSON 檔案:

    {  
        "name":"SqlServerToBlobPipeline",
        "properties":{  
            "activities":[  
                {  
                    "name":"CopySqlServerToAzureBlobActivity",
                    "type":"Copy",
                    "dependsOn":[  
    
                    ],
                    "policy":{  
                        "timeout":"7.00:00:00",
                        "retry":0,
                        "retryIntervalInSeconds":30,
                        "secureOutput":false,
                        "secureInput":false
                    },
                    "userProperties":[  
    
                    ],
                    "typeProperties":{  
                        "source":{  
                            "type":"SqlServerSource"
                        },
                        "sink":{  
                            "type":"DelimitedTextSink",
                            "storeSettings":{  
                                "type":"AzureBlobStorageWriteSettings"
                            },
                            "formatSettings":{  
                                "type":"DelimitedTextWriteSettings",
                                "quoteAllText":true,
                                "fileExtension":".txt"
                            }
                        },
                        "enableStaging":false
                    },
                    "inputs":[  
                        {  
                            "referenceName":"SqlServerDataset",
                            "type":"DatasetReference"
                        }
                    ],
                    "outputs":[  
                        {  
                            "referenceName":"AzureBlobDataset",
                            "type":"DatasetReference"
                        }
                    ]
                }
            ],
            "annotations":[  
    
            ]
        }
    }
    
  2. 若要建立管線 SQLServerToBlobPipeline,請執行 Set-AzDataFactoryV2Pipeline Cmdlet。

    Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SQLServerToBlobPipeline" -File ".\SQLServerToBlobPipeline.json"
    

    以下是範例輸出:

    PipelineName      : SQLServerToBlobPipeline
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Activities        : {CopySqlServerToAzureBlobActivity}
    Parameters        :  
    

建立管線執行

啟動 SQLServerToBlobPipeline 管線的管線執行,並擷取管線執行標識碼以供日後監視。

$runId = Invoke-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineName 'SQLServerToBlobPipeline'

監視管道執行

  1. 若要持續檢查管線 SQLServerToBlobPipeline 的執行狀態,請在 PowerShell 中執行下列腳本,並列印最終結果:

    while ($True) {
        $result = Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId $runId -RunStartedAfter (Get-Date).AddMinutes(-30) -RunStartedBefore (Get-Date).AddMinutes(30)
    
        if (($result | Where-Object { $_.Status -eq "InProgress" } | Measure-Object).count -ne 0) {
            Write-Host "Pipeline run status: In Progress" -foregroundcolor "Yellow"
            Start-Sleep -Seconds 30
        }
        else {
            Write-Host "Pipeline 'SQLServerToBlobPipeline' run finished. Result:" -foregroundcolor "Yellow"
            $result
            break
        }
    }
    

    以下是範例執行的輸出:

    ResourceGroupName    : <resourceGroupName>
    DataFactoryName      : <dataFactoryName>
    ActivityRunId        : 24af7cf6-efca-4a95-931d-067c5c921c25
    ActivityName         : CopySqlServerToAzureBlobActivity
    ActivityType         : Copy
    PipelineRunId        : 7b538846-fd4e-409c-99ef-2475329f5729
    PipelineName         : SQLServerToBlobPipeline
    Input                : {source, sink, enableStaging}
    Output               : {dataRead, dataWritten, filesWritten, sourcePeakConnections...}
    LinkedServiceName    :
    ActivityRunStart     : 9/11/2019 7:10:37 AM
    ActivityRunEnd       : 9/11/2019 7:10:58 AM
    DurationInMs         : 21094
    Status               : Succeeded
    Error                : {errorCode, message, failureType, target}
    AdditionalProperties : {[retryAttempt, ], [iterationHash, ], [userProperties, {}], [recoveryStatus, None]...}
    
  2. 您可以取得管線 SQLServerToBlobPipeline 的執行識別碼,並執行下列命令來檢查詳細的活動執行結果:

    Write-Host "Pipeline 'SQLServerToBlobPipeline' run result:" -foregroundcolor "Yellow"
    ($result | Where-Object {$_.ActivityName -eq "CopySqlServerToAzureBlobActivity"}).Output.ToString()
    

    以下是範例執行的輸出:

    {  
        "dataRead":36,
        "dataWritten":32,
        "filesWritten":1,
        "sourcePeakConnections":1,
        "sinkPeakConnections":1,
        "rowsRead":2,
        "rowsCopied":2,
        "copyDuration":18,
        "throughput":0.01,
        "errors":[  
    
        ],
        "effectiveIntegrationRuntime":"ADFTutorialIR",
        "usedParallelCopies":1,
        "executionDetails":[  
            {  
                "source":{  
                    "type":"SqlServer"
                },
                "sink":{  
                    "type":"AzureBlobStorage",
                    "region":"CentralUS"
                },
                "status":"Succeeded",
                "start":"2019-09-11T07:10:38.2342905Z",
                "duration":18,
                "usedParallelCopies":1,
                "detailedDurations":{  
                    "queuingDuration":6,
                    "timeToFirstByte":0,
                    "transferDuration":5
                }
            }
        ]
    }
    

確認輸出

管線會自動在 Blob 容器中建立名為 fromonpremadftutorial 輸出資料夾。 確認您在輸出資料夾中看到 dbo.emp.txt 檔案。

  1. 在 Azure 入口網站 的 adftutorial 容器視窗中,選取 [重新整理] 以查看輸出資料夾。

  2. 在資料夾清單中選取 fromonprem

  3. 確認您看到名為 dbo.emp.txt的檔案。

    輸出檔案

此範例中的管線會將數據從一個位置複製到 Azure Blob 記憶體中的另一個位置。 您已了解如何︰

  • 建立資料處理站。
  • 建立自我裝載整合執行階段。
  • 建立 SQL Server 和 Azure 儲存體 連結服務。
  • 建立 SQL Server 和 Azure Blob 數據集。
  • 建立具有複製活動的管線來移動資料。
  • 啟動管線執行。
  • 監視管線執行。

如需 Data Factory 所支援的數據存放區清單,請參閱 支援的數據存放區

若要瞭解如何將數據大量從來源複製到目的地,請繼續進行下列教學課程: