Freigeben über


Kopieren mehrerer Tabellen in Massen mithilfe von Azure Data Factory mithilfe von PowerShell

Gilt für: Azure Data Factory Azure Synapse Analytics

Tipp

Data Factory in Microsoft Fabric ist die nächste Generation von Azure Data Factory mit einer einfacheren Architektur, integrierter KI und neuen Features. Wenn Sie mit der Datenintegration noch nicht vertraut sind, beginnen Sie mit Fabric Data Factory. Vorhandene ADF-Workloads können auf Fabric aktualisiert werden, um auf neue Funktionen in der Datenwissenschaft, Echtzeitanalysen und Berichterstellung zuzugreifen.

In diesem Lernprogramm wird das Kopieren einer Reihe von Tabellen von Azure SQL-Datenbank nach Azure Synapse Analytics veranschaulicht. Sie können dieses Muster auch in anderen Kopierszenarios anwenden. So können Sie z.B. Tabellen aus SQL Server/Oracle in Azure SQL-Datenbank/Data Warehouse/Azure Blob kopieren oder verschiedene Pfade aus Blob in Azure SQL-Datenbanktabellen.

Auf einem hohen Niveau umfasst dieses Tutorial die folgenden Schritte:

  • Erstellen einer Data Factory.
  • Erstellen Sie verknüpfte Dienste für Azure SQL-Datenbank, Azure Synapse Analytics und Azure Storage.
  • Erstellen Sie Azure SQL-Datenbank und Azure Synapse Analytics Datasets.
  • Erstellen einer Pipeline zum Abrufen der zu kopierenden Tabellen und einer weiteren Pipeline zur Durchführung des eigentlichen Kopiervorgangs.
  • Starten einer Pipelineausführung
  • Überwachen der Pipeline- und Aktivitätsausführungen.

In diesem Lernprogramm wird Azure PowerShell verwendet. Informationen zur Verwendung von anderen Tools/SDKs zum Erstellen einer Data Factory finden Sie unter Schnellstarts.

Kompletter Workflow

In diesem Szenario gibt es eine Reihe von Tabellen in Azure SQL-Datenbank, die in Azure Synapse Analytics kopiert werden sollen. Nachfolgend ist der logische Ablauf eines Workflows dargestellt, der in Pipelines ausgeführt wird:

Workflow

  • Die erste Pipeline ruft die Liste mit den Tabellen ab, die in die Senkendatenspeicher kopiert werden sollen. Sie können stattdessen auch eine Metadatentabelle mit den Tabellen verwalten, die in die Senkendatenspeicher kopiert werden sollen. Die Pipeline löst anschließend eine weitere Pipeline aus, die wiederum jede Tabelle in der Datenbank durchläuft und den Datenkopiervorgang ausführt.
  • Die zweite Pipeline führt den eigentlichen Kopiervorgang aus. Dazu wird die Liste mit den Tabellen als Parameter verwendet. Kopieren Sie für jede Tabelle in der Liste die spezifische Tabelle in Azure SQL-Datenbank in die entsprechende Tabelle in Azure Synapse Analytics mithilfe staged copy via Blob Storage and PolyBase um optimale Leistung zu erzielen. In diesem Beispiel wird die Liste mit den Tabellen von der ersten Pipeline als Wert für den Parameter übergeben.

Wenn Sie nicht über ein Azure-Abonnement verfügen, erstellen Sie ein free Konto, bevor Sie beginnen.

Voraussetzungen

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Install Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrate Azure PowerShell von AzureRM zu Az.

  • Azure PowerShell. Befolgen Sie die Anweisungen in Wie sie Azure PowerShell.
  • Azure Storage-Konto. Das Azure Speicherkonto wird als Staging-Blob-Speicher im Massenkopiervorgang verwendet.
  • Azure SQL-Datenbank. Diese Datenbank enthält die Quelldaten.
  • Azure Synapse Analytics. Dieses Data Warehouse enthält die Daten, die aus der SQL-Datenbank kopiert werden.

SQL-Datenbank und Azure Synapse Analytics vorbereiten

Bereiten Sie die Quell-Azure-SQL-Datenbank vor:

Erstellen Sie eine Datenbank mit den Adventure Works LT-Beispieldaten in der Azure SQL-Datenbank, indem Sie den Artikel „Create a database in Azure SQL-Datenbank“ ausführen. In diesem Lernprogramm werden alle Tabellen aus dieser Beispieldatenbank in Azure Synapse Analytics kopiert.

Vorbereiten der Azure Synapse Analytics-Senke

  1. Wenn Sie nicht über einen Azure Synapse-Analytics-Arbeitsbereich verfügen, lesen Sie den Artikel Get started with Azure Synapse Analytics, um Schritte zur Erstellung eines solchen zu finden.

  2. Erstellen Sie entsprechende Tabellenschemas in Azure Synapse Analytics. Sie verwenden Azure Data Factory zum Migrieren/Kopieren von Daten in einem späteren Schritt.

Azure Dienste für den Zugriff auf SQL Server

Erlauben Sie Azure-Diensten für SQL-Datenbank und Azure Synapse Analytics den Zugriff auf den SQL Server. Stellen Sie sicher, dass die Einstellung Zugriff auf Azure-Dienste zulassen auf EIN für Ihren Server eingeschaltet ist. Diese Einstellung ermöglicht es dem Data Factory-Dienst, Daten aus Ihrem Azure SQL-Datenbank zu lesen und Daten in Azure Synapse Analytics zu schreiben. Führen Sie folgende Schritte aus, um diese Einstellung zu überprüfen und zu aktivieren:

  1. Klicken Sie links auf Alle Dienste und anschließend auf SQL Server.
  2. Wählen Sie Ihren Server aus, und klicken Sie unter EINSTELLUNGEN auf Firewall.
  3. Klicken Sie auf der Seite Firewall-Einstellungen auf EIN für Zugriff auf Azure-Dienste zulassen.

Erstellen einer Data Factory

  1. Starten Sie PowerShell. Lassen Sie Azure PowerShell bis zum Ende dieses Lernprogramms geöffnet. Wenn Sie PowerShell schließen und erneut öffnen, müssen Sie die Befehle erneut ausführen.

    Führen Sie den folgenden Befehl aus, und geben Sie den Benutzernamen und das Kennwort ein, mit dem Sie sich beim Azure Portal anmelden:

    Connect-AzAccount
    

    Führen Sie den folgenden Befehl aus, um alle Abonnements für dieses Konto anzuzeigen:

    Get-AzSubscription
    

    Führen Sie den folgenden Befehl aus, um das gewünschte Abonnement auszuwählen: Ersetzen Sie SubscriptionId durch die ID Ihres Azure-Abonnements:

    Select-AzSubscription -SubscriptionId "<SubscriptionId>"
    
  2. Führen Sie zum Erstellen einer Data Factory das Cmdlet Set-AzDataFactoryV2 aus. Ersetzen Sie vor dem Ausführen des Befehls die Platzhalter durch Ihre eigenen Werte.

    $resourceGroupName = "<your resource group to create the factory>"
    $dataFactoryName = "<specify the name of data factory to create. It must be globally unique.>"
    Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location "East US" -Name $dataFactoryName
    

    Beachten Sie folgende Punkte:

    • Der Name der Azure Data Factory muss global eindeutig sein. Wenn die folgende Fehlermeldung angezeigt wird, ändern Sie den Namen, und wiederholen Sie den Vorgang.

      The specified Data Factory name 'ADFv2QuickStartDataFactory' is already in use. Data Factory names must be globally unique.
      
    • Zum Erstellen von Data Factory-Instanzen müssen Sie Mitwirkender oder Administrator des Azure-Abonnements sein.

    • Wählen Sie für eine Liste Azure Regionen, in denen Data Factory zurzeit verfügbar ist, die Regionen aus, die Sie auf der folgenden Seite interessieren, und erweitern Sie dann Analytics, um Data Factory: Products available by region zu finden. Die Datenspeicher (Azure Storage, Azure SQL-Datenbank, etc.) und Berechnungen (HDInsight, usw.), die von der Data Factory verwendet werden, können sich in anderen Regionen befinden.

Erstellen von verknüpften Diensten

In diesem Tutorial erstellen Sie drei verknüpfte Dienste für Quell-, Senken- und Stagingblob, die Verbindungen mit Ihren Datenspeichern enthalten:

Erstellen Sie die verknüpfte Dienstquelle für die Azure SQL-Datenbank

  1. Erstellen Sie im Ordner C:\ADFv2TutorialBulkCopy eine JSON-Datei mit dem Namen AzureSqlDatabaseLinkedService.json und dem folgenden Inhalt: (Erstellen Sie den Ordner „ADFv2TutorialBulkCopy“, falls dieser noch nicht vorhanden ist.)

    Wichtig

    Ersetzen Sie <servername>, <datenbankname>, <benutzername>@<servername> und <password> mit Werten Ihrer Azure SQL-Datenbank vor dem Speichern der Datei.

    {
        "name": "AzureSqlDatabaseLinkedService",
        "properties": {
            "type": "AzureSqlDatabase",
            "typeProperties": {
                "connectionString": "Server=tcp:<servername>.database.windows.net,1433;Database=<databasename>;User ID=<username>@<servername>;Password=<password>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30"
            }
        }
    }
    
  2. Wechseln Sie in Azure PowerShell zum Ordner ADFv2TutorialBulkCopy.

  3. Führen Sie das Cmdlet Set-AzDataFactoryV2LinkedService aus, um den verknüpften Dienst zu erstellen: AzureSqlDatabaseLinkedService.

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

    Hier ist die Beispielausgabe:

    LinkedServiceName : AzureSqlDatabaseLinkedService
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Properties        : Microsoft.Azure.Management.DataFactory.Models.AzureSqlDatabaseLinkedService
    

Erstellen des verknüpften Azure Synapse Analytics-Senkendiensts

  1. Erstellen Sie im Ordner C:\ADFv2TutorialBulkCopy eine JSON-Datei mit dem Namen AzureSqlDWLinkedService.json und dem folgenden Inhalt:

    Wichtig

    Ersetzen Sie <servername>, <datenbankname>, <benutzername>@<servername> und <password> mit Werten Ihrer Azure SQL-Datenbank vor dem Speichern der Datei.

    {
        "name": "AzureSqlDWLinkedService",
        "properties": {
            "type": "AzureSqlDW",
            "typeProperties": {
                "connectionString": "Server=tcp:<servername>.database.windows.net,1433;Database=<databasename>;User ID=<username>@<servername>;Password=<password>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30"
            }
        }
    }
    
  2. Führen Sie zum Erstellen des verknüpften Diensts AzureSqlDWLinkedService das Cmdlet Set-AzDataFactoryV2LinkedService aus.

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

    Hier ist die Beispielausgabe:

    LinkedServiceName : AzureSqlDWLinkedService
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Properties        : Microsoft.Azure.Management.DataFactory.Models.AzureSqlDWLinkedService
    

Erstellen Sie einen verknüpften Dienst für das Staging-Azure Storage.

In diesem Lernprogramm verwenden Sie Azure Blob Storage als Zwischen-Staging-Bereich, um PolyBase für eine bessere Kopierleistung zu ermöglichen.

  1. Erstellen Sie im Ordner C:\ADFv2TutorialBulkCopy eine JSON-Datei mit dem Namen AzureStorageLinkedService.json und dem folgenden Inhalt:

    Wichtig

    Ersetzen Sie <accountName> und <accountKey> durch Namen und Schlüssel Ihres Azure Speicherkontos, bevor Sie die Datei speichern.

    {
        "name": "AzureStorageLinkedService",
        "properties": {
            "type": "AzureStorage",
            "typeProperties": {
                "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>"
            }
        }
    }
    
  2. Führen Sie zum Erstellen des verknüpften Diensts AzureStorageLinkedService das Cmdlet Set-AzDataFactoryV2LinkedService aus.

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

    Hier ist die Beispielausgabe:

    LinkedServiceName : AzureStorageLinkedService
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Properties        : Microsoft.Azure.Management.DataFactory.Models.AzureStorageLinkedService
    

Erstellen von Datasets

In diesem Tutorial werden Quell- und Senkendatasets erstellt, die den Speicherort der Daten angeben:

Erstellen eines Datasets für die SQL-Quelldatenbank

  1. Erstellen Sie im Ordner C:\ADFv2TutorialBulkCopy eine JSON-Datei mit dem Namen AzureSqlDatabaseDataset.json und dem folgenden Inhalt. „tableName“ stellt einen Dummy dar. Später verwenden Sie in der Kopieraktivität die SQL-Abfrage zum Abrufen von Daten.

    {
        "name": "AzureSqlDatabaseDataset",
        "properties": {
            "type": "AzureSqlTable",
            "linkedServiceName": {
                "referenceName": "AzureSqlDatabaseLinkedService",
                "type": "LinkedServiceReference"
            },
            "typeProperties": {
                "tableName": "dummy"
            }
        }
    }
    
  2. Führen Sie zum Erstellen des Datasets AzureSqlDatabaseDataset das Cmdlet Set-AzDataFactoryV2Dataset aus.

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

    Hier ist die Beispielausgabe:

    DatasetName       : AzureSqlDatabaseDataset
    ResourceGroupName : <resourceGroupname>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.AzureSqlTableDataset
    

Erstellen eines Datasets für die Azure Synapse Analytics-Senke

  1. Erstellen Sie im Ordner C:\ADFv2TutorialBulkCopy eine JSON-Datei mit dem Namen AzureSqlDWDataset.json und dem folgenden Inhalt: „tableName“ ist als Parameter festgelegt. Später übergibt die Kopieraktivität, die auf dieses Dataset verweist, den tatsächlichen Wert in das Dataset.

    {
        "name": "AzureSqlDWDataset",
        "properties": {
            "type": "AzureSqlDWTable",
            "linkedServiceName": {
                "referenceName": "AzureSqlDWLinkedService",
                "type": "LinkedServiceReference"
            },
            "typeProperties": {
                "tableName": {
                    "value": "@{dataset().DWTableName}",
                    "type": "Expression"
                }
            },
            "parameters":{
                "DWTableName":{
                    "type":"String"
                }
            }
        }
    }
    
  2. Führen Sie zum Erstellen des Datasets AzureSqlDWDataset das Cmdlet Set-AzDataFactoryV2Dataset aus.

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

    Hier ist die Beispielausgabe:

    DatasetName       : AzureSqlDWDataset
    ResourceGroupName : <resourceGroupname>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.AzureSqlDwTableDataset
    

Erstellen von Pipelines

In diesem Tutorial werden zwei Pipelines erstellt:

Erstellen der Pipeline „IterateAndCopySQLTables“

Diese Pipeline verwendet die Liste mit den Tabellen als Parameter. Für jede Tabelle in der Liste werden Daten aus der Tabelle in Azure SQL-Datenbank nach Azure Synapse Analytics kopiert. Dazu wird das gestaffelte Kopieren und PolyBase verwendet.

  1. Erstellen Sie im Ordner C:\ADFv2TutorialBulkCopy eine JSON-Datei mit dem Namen IterateAndCopySQLTables.json und dem folgenden Inhalt:

    {
        "name": "IterateAndCopySQLTables",
        "properties": {
            "activities": [
                {
                    "name": "IterateSQLTables",
                    "type": "ForEach",
                    "typeProperties": {
                        "isSequential": "false",
                        "items": {
                            "value": "@pipeline().parameters.tableList",
                            "type": "Expression"
                        },
                        "activities": [
                            {
                                "name": "CopyData",
                                "description": "Copy data from Azure SQL Database to Azure Synapse Analytics",
                                "type": "Copy",
                                "inputs": [
                                    {
                                        "referenceName": "AzureSqlDatabaseDataset",
                                        "type": "DatasetReference"
                                    }
                                ],
                                "outputs": [
                                    {
                                        "referenceName": "AzureSqlDWDataset",
                                        "type": "DatasetReference",
                                        "parameters": {
                                            "DWTableName": "[@{item().TABLE_SCHEMA}].[@{item().TABLE_NAME}]"
                                        }
                                    }
                                ],
                                "typeProperties": {
                                    "source": {
                                        "type": "SqlSource",
                                        "sqlReaderQuery": "SELECT * FROM [@{item().TABLE_SCHEMA}].[@{item().TABLE_NAME}]"
                                    },
                                    "sink": {
                                        "type": "SqlDWSink",
                                        "preCopyScript": "TRUNCATE TABLE [@{item().TABLE_SCHEMA}].[@{item().TABLE_NAME}]",
                                        "allowPolyBase": true
                                    },
                                    "enableStaging": true,
                                    "stagingSettings": {
                                        "linkedServiceName": {
                                            "referenceName": "AzureStorageLinkedService",
                                            "type": "LinkedServiceReference"
                                        }
                                    }
                                }
                            }
                        ]
                    }
                }
            ],
            "parameters": {
                "tableList": {
                    "type": "Object"
                }
            }
        }
    }
    
  2. Führen Sie zum Erstellen der Pipeline IterateAndCopySQLTables das Cmdlet Set-AzDataFactoryV2Pipeline aus.

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

    Hier ist die Beispielausgabe:

    PipelineName      : IterateAndCopySQLTables
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Activities        : {IterateSQLTables}
    Parameters        : {[tableList, Microsoft.Azure.Management.DataFactory.Models.ParameterSpecification]}
    

Erstellen Sie die Pipeline „GetTableListAndTriggerCopyData“

Mit dieser Pipeline werden zwei Schritte ausgeführt:

  • Sucht nach der Azure SQL-Datenbank Systemtabelle, um die Liste der zu kopierenden Tabellen abzurufen.
  • Auslösen der Pipeline „IterateAndCopySQLTables“, um den eigentlichen Kopiervorgang der Daten auszuführen.
  1. Erstellen Sie im Ordner C:\ADFv2TutorialBulkCopy eine JSON-Datei mit dem Namen GetTableListAndTriggerCopyData.json und dem folgenden Inhalt:

    {
        "name":"GetTableListAndTriggerCopyData",
        "properties":{
            "activities":[
                { 
                    "name": "LookupTableList",
                    "description": "Retrieve the table list from Azure SQL database",
                    "type": "Lookup",
                    "typeProperties": {
                        "source": {
                            "type": "SqlSource",
                            "sqlReaderQuery": "SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.TABLES WHERE TABLE_TYPE = 'BASE TABLE' and TABLE_SCHEMA = 'SalesLT' and TABLE_NAME <> 'ProductModel'"
                        },
                        "dataset": {
                            "referenceName": "AzureSqlDatabaseDataset",
                            "type": "DatasetReference"
                        },
                        "firstRowOnly": false
                    }
                },
                {
                    "name": "TriggerCopy",
                    "type": "ExecutePipeline",
                    "typeProperties": {
                        "parameters": {
                            "tableList": {
                                "value": "@activity('LookupTableList').output.value",
                                "type": "Expression"
                            }
                        },
                        "pipeline": {
                            "referenceName": "IterateAndCopySQLTables",
                            "type": "PipelineReference"
                        },
                        "waitOnCompletion": true
                    },
                    "dependsOn": [
                        {
                            "activity": "LookupTableList",
                            "dependencyConditions": [
                                "Succeeded"
                            ]
                        }
                    ]
                }
            ]
        }
    }
    
  2. Führen Sie zum Erstellen der Pipeline GetTableListAndTriggerCopyData das Cmdlet Set-AzDataFactoryV2Pipeline aus.

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

    Hier ist die Beispielausgabe:

    PipelineName      : GetTableListAndTriggerCopyData
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Activities        : {LookupTableList, TriggerCopy}
    Parameters        :
    

Starten und Überwachen der Pipelineausführung

  1. Starten Sie eine Pipelineausführung für die Hauptpipeline „GetTableListAndTriggerCopyData“, und erfassen Sie die ID der Pipelineausführung für die zukünftige Überwachung. Darunter wird die Ausführung der Pipeline „IterateAndCopySQLTables“ wie in der Aktivität „ExecutePipeline“ angegeben ausgelöst.

    $runId = Invoke-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineName 'GetTableListAndTriggerCopyData'
    
  2. Führen Sie das folgende Skript aus, um den Status der Pipeline GetTableListAndTriggerCopyData zu überprüfen. Drucken Sie das Ergebnis der endgültigen Pipeline- und Aktivitätsausführung aus.

    while ($True) {
        $run = Get-AzDataFactoryV2PipelineRun -ResourceGroupName $resourceGroupName -DataFactoryName $DataFactoryName -PipelineRunId $runId
    
        if ($run) {
            if ($run.Status -ne 'InProgress') {
                Write-Host "Pipeline run finished. The status is: " $run.Status -ForegroundColor "Yellow"
                Write-Host "Pipeline run details:" -ForegroundColor "Yellow"
                $run
                break
            }
            Write-Host  "Pipeline is running...status: InProgress" -ForegroundColor "Yellow"
        }
    
        Start-Sleep -Seconds 15
    }
    
    $result = Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId $runId -RunStartedAfter (Get-Date).AddMinutes(-30) -RunStartedBefore (Get-Date).AddMinutes(30)
    Write-Host "Activity run details:" -ForegroundColor "Yellow"
    $result
    

    Hier ist die Ausgabe der Beispielausführung:

    Pipeline run details:
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    RunId             : 0000000000-00000-0000-0000-000000000000
    PipelineName      : GetTableListAndTriggerCopyData
    LastUpdated       : 9/18/2017 4:08:15 PM
    Parameters        : {}
    RunStart          : 9/18/2017 4:06:44 PM
    RunEnd            : 9/18/2017 4:08:15 PM
    DurationInMs      : 90637
    Status            : Succeeded
    Message           : 
    
    Activity run details:
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    ActivityName      : LookupTableList
    PipelineRunId     : 0000000000-00000-0000-0000-000000000000
    PipelineName      : GetTableListAndTriggerCopyData
    Input             : {source, dataset, firstRowOnly}
    Output            : {count, value, effectiveIntegrationRuntime}
    LinkedServiceName : 
    ActivityRunStart  : 9/18/2017 4:06:46 PM
    ActivityRunEnd    : 9/18/2017 4:07:09 PM
    DurationInMs      : 22995
    Status            : Succeeded
    Error             : {errorCode, message, failureType, target}
    
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    ActivityName      : TriggerCopy
    PipelineRunId     : 0000000000-00000-0000-0000-000000000000
    PipelineName      : GetTableListAndTriggerCopyData
    Input             : {pipeline, parameters, waitOnCompletion}
    Output            : {pipelineRunId}
    LinkedServiceName : 
    ActivityRunStart  : 9/18/2017 4:07:11 PM
    ActivityRunEnd    : 9/18/2017 4:08:14 PM
    DurationInMs      : 62581
    Status            : Succeeded
    Error             : {errorCode, message, failureType, target}
    
  3. Rufen Sie die Ausführungs-ID der Pipeline IterateAndCopySQLTables ab, und überprüfen Sie das detaillierte Ergebnis der Aktivitätsausführung wie folgt:

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

    Hier ist die Ausgabe der Beispielausführung:

    {
        "pipelineRunId": "7514d165-14bf-41fb-b5fb-789bea6c9e58"
    }
    
    $result2 = Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId <copy above run ID> -RunStartedAfter (Get-Date).AddMinutes(-30) -RunStartedBefore (Get-Date).AddMinutes(30)
    $result2
    
  4. Stellen Sie eine Verbindung mit der Azure Synapse Analytics-Senke her, und überprüfen Sie, ob die Daten aus Azure SQL-Datenbank ordnungsgemäß kopiert wurden.

In diesem Tutorial haben Sie die folgenden Schritte ausgeführt:

  • Erstellen einer Data Factory.
  • Erstellen Sie verknüpfte Dienste für Azure SQL-Datenbank, Azure Synapse Analytics und Azure Storage.
  • Erstellen Sie Azure SQL-Datenbank und Azure Synapse Analytics Datasets.
  • Erstellen einer Pipeline zum Abrufen der zu kopierenden Tabellen und einer weiteren Pipeline zur Durchführung des eigentlichen Kopiervorgangs.
  • Starten einer Pipelineausführung
  • Überwachen der Pipeline- und Aktivitätsausführungen.

Fahren Sie nun mit dem folgenden Tutorial fort, um mehr über das inkrementelle Kopieren von Daten aus einer Quelle in ein Ziel zu erfahren: