Zelfstudie: Gegevens uit een SQL Server-database kopiëren naar Azure Blob Storage

Van toepassing op: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory in Microsoft Fabric is de volgende generatie van Azure Data Factory, met een eenvoudigere architectuur, ingebouwde AI en nieuwe functies. Als u nieuw bent in gegevensintegratie, begint u met Fabric Data Factory. Bestaande ADF-workloads kunnen upgraden naar Fabric om toegang te krijgen tot nieuwe mogelijkheden voor gegevenswetenschap, realtime analyses en rapportage.

In deze zelfstudie gebruikt u Azure PowerShell om een data factory-pijplijn te maken waarmee gegevens uit een SQL Server-database worden gekopieerd naar Azure Blob-opslag. U maakt en gebruikt een zelf-gehoste Integration Runtime, die gegevens verplaatst tussen on-premises en cloudgegevensarchieven.

Notitie

Dit artikel is geen gedetailleerde introductie tot de Data Factory-service. Zie Inleiding tot Azure Data Factory voor meer informatie.

In deze zelfstudie voert u de volgende stappen uit:

  • Een data factory maken.
  • Een zelf-hostende Integration Runtime maken.
  • Maak SQL Server en Azure Storage gekoppelde services.
  • Maak datasets voor SQL Server en Azure Blob.
  • Maak een pijplijn met een kopieeractiviteit om de gegevens te verplaatsen.
  • Een pijplijnuitvoering starten.
  • Controleer de pijplijnuitvoering.

Vereisten

Azure-abonnement

Als u nog geen Azure abonnement hebt, maakt u een gratis account voordat u begint.

Azure-rollen

Als u data factory-exemplaren wilt maken, moet het gebruikersaccount dat u gebruikt om u aan te melden bij Azure zijn toegewezen aan een rol Contributor of Owner of moet een administrator van het Azure-abonnement zijn.

Als u de machtigingen wilt bekijken die u in het abonnement hebt, gaat u naar de Azure-portal, selecteert u uw gebruikersnaam in de rechterbovenhoek en selecteert u vervolgens machtigingen. Als u toegang tot meerdere abonnementen hebt, moet u het juiste abonnement selecteren. Zie het artikel Assign Azure roles using the Azure portal article voor voorbeeldinstructies voor het toevoegen van een gebruiker aan een rol.

SQL Server 2014, 2016 en 2017

In deze zelfstudie gebruikt u een SQL Server-database als een source gegevensarchief. De pijplijn in de data factory die u in deze zelfstudie maakt, kopieert gegevens van deze SQL Server database (bron) naar Azure Blob Storage (sink). Vervolgens maakt u een tabel met de naam emp in de SQL Server-database en voegt u een aantal voorbeeldvermeldingen in de tabel in.

  1. Start SQL Server Management Studio. Als deze nog niet op uw computer is geïnstalleerd, gaat u naar Download SQL Server Management Studio.

  2. Maak verbinding met uw SQL Server-exemplaar met uw inloggegevens.

  3. Maak een voorbeelddatabase. Klik in de structuurweergave met de rechtermuisknop op Databases en selecteer Nieuwe database.

  4. Voer in het venster Nieuwe database een naam in voor de database en selecteer OK.

  5. Voer het volgende queryscript uit voor de database. Hiermee wordt de emp-tabel gemaakt en worden enkele voorbeeldgegevens ingevoegd in deze tabel. In de structuurweergave klikt u met de rechtermuisknop op de database die u hebt gemaakt en selecteert u Nieuwe query.

    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 Storage-account

In deze handleiding gebruikt u een algemeen opslagaccount in Azure (met name Azure Blob Storage) als doelgegevensopslag. Als u geen algemeen Azure opslagaccount hebt, raadpleegt u Maak een opslagaccount. De pijplijn in de data factory die u in deze zelfstudie maakt, kopieert gegevens van de SQL Server-database (bron) naar deze Azure Blob-opslag (sink).

De naam en sleutel van een opslagaccount ophalen

In deze zelfstudie gebruikt u de naam en sleutel van uw Azure-opslagaccount. Als u de naam en sleutel van uw opslagaccount wilt ophalen, doet u het volgende:

  1. Meld u aan bij de Azure-portal met uw Azure gebruikersnaam en wachtwoord.

  2. Selecteer in het linkerdeelvenster Meer services, filter met behulp van het sleutelwoord Opslag en selecteer vervolgens Opslagaccounts.

    Zoeken naar een opslagaccount

  3. Filter in de lijst met opslagaccounts op uw opslagaccount (indien nodig) en selecteer vervolgens uw opslagaccount.

  4. Selecteer in het venster Opslagaccount de optie Toegangssleutels.

  5. Kopieer de waarden in de vakken opslagaccountnaam en key1 en plak deze in Kladblok of een andere editor voor later gebruik in de zelfstudie.

De container adftutorial maken

In deze sectie maakt u een blobcontainer met de naam adftutorial in uw Azure Blob-opslag.

  1. Schakel in het venster Opslagaccount over naar Overzicht en klik vervolgens op Blobs.

    De optie Blobs selecteren

  2. Selecteer in het venster Blob-service, Container.

  3. Voer in het venster Nieuwe container in het vak Naamadftutorial in en selecteer OK.

    Naam van container invoeren

  4. Selecteer adftutorial in de lijst met containers.

  5. Houd het venster Container voor adftutorial geopend. U gebruikt het om aan het einde van de handleiding de uitvoer te controleren. In Data Factory wordt automatisch in deze container de uitvoermap gemaakt, zodat u er zelf geen hoeft te maken.

Windows PowerShell

Azure PowerShell installeren

Notitie

U wordt aangeraden de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Install Azure PowerShell om aan de slag te gaan. Zie Migrate Azure PowerShell van AzureRM naar Az voor meer informatie over het migreren naar de Az PowerShell-module.

Installeer de nieuwste versie van Azure PowerShell als u deze nog niet op uw computer hebt. Zie Het installeren en configureren van Azure PowerShell voor gedetailleerde instructies.

Aanmelden bij PowerShell

  1. Start PowerShell op uw computer en houd dit programma geopend totdat deze Quick Start-zelfstudie is afgerond. Als u het programma sluit en opnieuw opent, moet u deze opdrachten opnieuw uitvoeren.

  2. Voer de volgende opdracht uit en voer vervolgens de Azure gebruikersnaam en het wachtwoord in waarmee u zich aanmeldt bij de Azure-portal:

    Connect-AzAccount
    
  3. Als u meerdere Azure-abonnementen hebt, voert u de volgende opdracht uit om het abonnement te selecteren waarmee u wilt werken. Vervang SubscriptionId door de id van uw Azure-abonnement:

    Select-AzSubscription -SubscriptionId "<SubscriptionId>"   	
    

Een data factory maken

  1. Definieer een variabele voor de naam van de resourcegroep die u later gaat gebruiken in PowerShell-opdrachten. Kopieer de volgende opdracht naar PowerShell, geef een naam op voor de Azure resourcegroep (tussen dubbele aanhalingstekens; bijvoorbeeld "adfrg") en voer de opdracht uit.

    $resourceGroupName = "ADFTutorialResourceGroup"
    
  2. Voer de volgende opdracht uit om de Azure resourcegroep te maken:

    New-AzResourceGroup $resourceGroupName -location 'East US'
    

    Als de resourcegroep al bestaat, wilt u waarschijnlijk niet dat deze wordt overschreven. Wijs een andere waarde toe aan de $resourceGroupName-variabele en voer de opdracht opnieuw uit.

  3. Definieer een variabele voor de naam van de data factory die u later kunt gebruiken in PowerShell-opdrachten. De naam moet beginnen met een letter of cijfer en mag alleen letters, cijfers en streepjes (-) bevatten.

    Belangrijk

    Werk de naam van de data factory zodanig bij dat deze uniek is. Bijvoorbeeld: ADFTutorialFactorySP1127.

    $dataFactoryName = "ADFTutorialFactory"
    
  4. Definieer een variabele voor de locatie van de data factory:

    $location = "East US"
    
  5. Voer voor het maken van de data factory de cmdlet Set-AzDataFactoryV2 uit:

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

Notitie

  • De naam van de data factory moet wereldwijd uniek zijn. Als de volgende fout zich voordoet, wijzigt u de naam en probeert u het opnieuw.
    The specified data factory name 'ADFv2TutorialDataFactory' is already in use. Data factory names must be globally unique.
    
  • Om data-factory-exemplaren te maken, aan het gebruikersaccount dat u gebruikt om u aan te melden bij Azure moet een rol van contributor of owner of een administrator van het Azure-abonnement zijn toegewezen.
  • Voor een lijst met Azure regio's waarin Data Factory momenteel beschikbaar is, selecteert u de regio's die u interesseren op de volgende pagina en vouwt u vervolgens Analytics uit om Data Factory uit te vouwen: Products beschikbaar per regio. De gegevensarchieven (Azure Storage, Azure SQL Database enzovoort) en berekeningen (Azure HDInsight enzovoort) die door de data factory worden gebruikt, kunnen zich in andere regio's bevinden.

Zelf-gehoste integratie-runtime maken

In deze sectie maakt u een zelf-hostende Integration Runtime en koppelt u deze aan een on-premises machine aan de SQL Server-database. De zelf-hostende Integration Runtime is het onderdeel waarmee gegevens van de SQL Server-database op uw computer worden gekopieerd naar Azure Blob Storage.

  1. Maak een variabele voor de naam van een Integration Runtime. Gebruik een unieke naam en noteer deze. U gaat deze verderop in de zelfstudie gebruiken.

    $integrationRuntimeName = "ADFTutorialIR"
    
  2. Een zelf-hostende Integration Runtime maken.

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

    Hier volgt een voorbeeld van uitvoer:

    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. Voer de volgende opdracht uit om de status van de gemaakte Integration Runtime op te halen:

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

    Hier volgt een voorbeeld van uitvoer:

    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. Voer de volgende opdracht uit om verificatiesleutels op te halen voor het registreren van de zelf-hostende Integration Runtime met Data Factory-service in de cloud. Kopieer een van de sleutels (zonder de aanhalingstekens) om de zelf-hostende Integration Runtime te registeren die u tijdens de volgende stap op uw computer gaat installeren.

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

    Hier volgt een voorbeeld van uitvoer:

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

Integration Runtime installeren

  1. Download Azure Data Factory Integration Runtime op een lokale Windows computer en voer de installatie uit.

  2. Selecteer in de wizard Welcome to Microsoft Integration Runtime Setup de optie Next.

  3. Ga in het venster Gebruiksrechtovereenkomst akkoord met de voorwaarden en de gebruiksrechtovereenkomst en selecteer Volgende.

  4. Selecteer in het venster DoelmapVolgende.

  5. Selecteer in het venster Ready om Microsoft Integration Runtime te installeren Install.

  6. Selecteer in de wizard Completed the Microsoft Integration Runtime Setup de optie Finish.

  7. Plak in het venster Register Integration Runtime (zelf-hostend) de sleutel die u in de vorige sectie hebt opgeslagen en selecteer vervolgens Register.

    Integration Runtime registreren

  8. Selecteer in het venster Nieuw Integration Runtime (zelf-hostend) knooppuntVoltooien.

    Nieuw Integration Runtime knooppuntvenster

  9. U ziet het volgende bericht wanneer de zelf-gehoste Integration Runtime succesvol is geregistreerd.

    Registratie is voltooid

  10. Selecteer in het venster Register Integration Runtime (zelf-hostend) en Launch Configuration Manager.

  11. Wanneer het knooppunt is verbonden met de cloudservice, ziet u het volgende bericht:

    Knooppunt is verbonden

  12. Test de connectiviteit met uw SQL Server-database als volgt:

    a. Schakel in het venster Configuration Manager over naar het tabblad Diagnostics.

    b. Selecteer in het vak Type gegevensbronSqlServer.

    c. Voer de naam van de server in.

    d. Voer de naam van de database in.

    e. Selecteer de verificatiemethode.

    f. Voer de gebruikersnaam in.

    g. Voer het wachtwoord in dat bij de gebruikersnaam hoort.

    h. Selecteer Test om te bevestigen dat Integration Runtime verbinding kan maken met de SQL Server.
    Connectiviteit geslaagd

    U ziet een groen vinkje als het gelukt is om verbinding te maken. Anders ontvangt u een foutmelding die bij de fout hoort. Los eventuele problemen op en zorg ervoor dat de integration runtime verbinding kan maken met uw SQL Server-exemplaar.

    Noteer alle voorgaande waarden voor later gebruik in deze zelfstudie.

Gekoppelde services maken

Maak gekoppelde services in een data factory om uw gegevensarchieven en compute-services aan de data factory te koppelen. In deze handleiding koppelt u uw Azure opslagaccount en SQL Server exemplaar aan de datastore. De gekoppelde services beschikken over de verbindingsgegevens die de Data Factory-service tijdens runtime gebruikt om er een verbinding mee tot stand te brengen.

Een Azure Storage gekoppelde service maken (bestemming/sink)

In deze stap koppelt u uw Azure-opslagaccount aan de data factory.

  1. Maak een JSON-bestand met de naam AzureStorageLinkedService.json in de map C:\ADFv2Tutorial met de volgende code. Maak de map ADFv2Tutorial als deze nog niet bestaat.

    Belangrijk

    Voordat u het bestand opslaat, vervangt u <accountName> en <accountKey> door de naam en sleutel van uw Azure-opslagaccount. U hebt deze genoteerd in de Vereisten sectie.

    {
        "name": "AzureStorageLinkedService",
        "properties": {
            "annotations": [],
            "type": "AzureBlobStorage",
            "typeProperties": {
                "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net"
            }
        }
    }
    
  2. Schakel in PowerShell over naar de map C:\ADFv2Tutorial.

    Set-Location 'C:\ADFv2Tutorial'
    
  3. Voer om een gekoppelde service te maken met de naam AzureStorageLinkedService de volgende Set-AzDataFactoryV2LinkedService cmdlet uit:

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

    Hier volgt een voorbeelduitvoer:

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

    Als u een "bestand niet gevonden" foutmelding krijgt, controleer dan of het bestand bestaat door de opdracht dir uit te voeren. Als de bestandsnaam de extensie .txt heeft (bijvoorbeeld AzureStorageLinkedService.json.txt), verwijdert u deze en voert u vervolgens de PowerShell-opdracht opnieuw uit.

Een SQL Server gekoppelde service (bron) maken en versleutelen

In deze stap koppelt u uw SQL Server exemplaar aan de data factory.

  1. Maak een JSON-bestand met de naam SqlServerLinkedService.json in de map C:\ADFv2Tutorial met de volgende code:

    Belangrijk

    Selecteer de sectie die is gebaseerd op de verificatie die u gebruikt om verbinding te maken met SQL Server.

    SQL-verificatie gebruiken (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"
            }
        }
    }
    

    Gebruik van Windows-authenticatie:

    {  
        "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"
            }
        }
    }
    

    Belangrijk

    • Selecteer de sectie die is gebaseerd op de verificatie die u gebruikt om verbinding te maken met uw SQL Server exemplaar.
    • Vervang <de naam van de Integration Runtime door de naam> van uw Integration Runtime.
    • Voordat u het bestand opslaat, vervangt u <servername>, <databasename>, <username> en <password> met de waarden van uw SQL Server-exemplaar.
    • Als u een backslash (\) wilt gebruiken in de naam van uw gebruikersaccount of server, moet u deze voorafgaan door het escape-teken (\). Gebruik bijvoorbeeld mydomain\\myuser.
  2. Voor het versleutelen van gevoelige gegevens (gebruikersnaam, wachtwoord, enz.), voer de New-AzDataFactoryV2LinkedServiceEncryptedCredential cmdlet uit.
    Deze versleuteling zorgt ervoor dat de referenties zijn versleuteld met behulp van DPAPI (Data Protection Application Programming Interface). De versleutelde referenties worden lokaal op het zelf-gehoste Integration Runtime-knooppunt (lokale computer) opgeslagen. De uitvoerpayload kan worden omgeleid naar een ander JSON-bestand (in dit geval encryptedLinkedService.json). Dit bestand bevat de versleutelde referenties.

    New-AzDataFactoryV2LinkedServiceEncryptedCredential -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -IntegrationRuntimeName $integrationRuntimeName -File ".\SQLServerLinkedService.json" > encryptedSQLServerLinkedService.json
    
  3. Voer de volgende opdracht uit. Hiermee wordt de EncryptedSqlServerLinkedService gemaakt:

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

Gegevenssets maken

In deze stap gaat u gegevenssets voor invoer en uitvoer maken. Ze vertegenwoordigen invoer- en uitvoergegevens voor de kopieerbewerking, waarmee gegevens uit de SQL Server database worden gekopieerd naar Azure Blob-opslag.

Een gegevensset maken voor de brondatabase SQL Server

In deze stap definieert u een gegevensset die gegevens vertegenwoordigt in het SQL Server database-exemplaar. De gegevensset is van het type SqlServerTable. Deze verwijst naar de SQL Server gekoppelde service die u in de vorige stap hebt gemaakt. De gekoppelde service bevat de verbindingsgegevens die de Data Factory-service gebruikt om tijdens runtime verbinding te maken met uw SQL Server-exemplaar. Deze gegevensset bepaalt welke SQL-tabel in de database de gegevens bevat. In deze handleiding bevat de tabel emp de brongegevens.

  1. Maak een JSON-bestand met de naam SqlServerDataset.json in de map C:\ADFv2Tutorial met de volgende code:

    {  
        "name":"SqlServerDataset",
        "properties":{  
            "linkedServiceName":{  
                "referenceName":"EncryptedSqlServerLinkedService",
                "type":"LinkedServiceReference"
            },
            "annotations":[  
    
            ],
            "type":"SqlServerTable",
            "schema":[  
    
            ],
            "typeProperties":{  
                "schema":"dbo",
                "table":"emp"
            }
        }
    }
    
  2. Voer voor het maken van de gegevensset SqlServerDataset de cmdlet Set-AzDataFactoryV2Dataset uit.

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

    Hier volgt een voorbeeld van uitvoer:

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

Een gegevensset maken voor Azure Blob Storage (sink)

In deze stap definieert u een gegevensset die gegevens vertegenwoordigt die worden gekopieerd naar Azure Blob-opslag. De gegevensset is van het type AzureBlob. Het verwijst naar de Azure Storage gekoppelde service die u eerder in deze zelfstudie hebt gemaakt.

De gekoppelde service bevat de verbindingsgegevens die de data factory tijdens runtime gebruikt om verbinding te maken met uw Azure opslagaccount. Deze gegevensset geeft de map in de Azure-opslag op waarnaar de gegevens uit de SQL Server-database worden gekopieerd. In deze zelfstudie is de map adftutorial/fromonprem, waarbij adftutorial de blobcontainer is en fromonprem de map.

  1. Maak een JSON-bestand met de naam AzureBlobDataset.json in de map C:\ADFv2Tutorial met de volgende code:

    {  
        "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. Voer voor het maken van de gegevensset AzureBlobDataset de cmdlet Set-AzDataFactoryV2Dataset uit.

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

    Hier volgt een voorbeeld van uitvoer:

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

Een pipeline maken

In deze tutorial creëert u een pijplijn met een kopieeractiviteit. Tijdens de kopieeractiviteit wordt de SqlServerDataset als invoergegevensset en AzureBlobDataset als de uitvoergegevensset gebruikt. Het brontype is ingesteld op SqlSource en het sinktype is ingesteld op BlobSink.

  1. Maak een JSON-bestand met de naam SqlServerToBlobPipeline.json in de map C:\ADFv2Tutorial met de volgende code:

    {  
        "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. De pijplijn SqlServerToBlobPipeline maken: voer de Set-AzDataFactoryV2Pipeline cmdlet uit.

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

    Hier volgt een voorbeeld van uitvoer:

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

Een pijplijnrun maken

Start een uitvoering van de SQLServerToBlobPipeline pijplijn en leg de ID voor de pijplijnuitvoering vast voor toekomstige bewaking.

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

De pijplijnrun controleren.

  1. Voer het volgende script in PowerShell uit om continu de uitvoeringsstatus van de pijplijn SQLServerToBlobPipeline te controleren, en druk het eindresultaat af:

    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
        }
    }
    

    Hier volgt een voorbeeld van de voorbeelduitvoering:

    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. U kunt de run-id van de pijplijn SQLServerToBlobPipeline ophalen en vervolgens het gedetailleerde uitvoeringsresultaat van de activiteit controleren met de volgende opdracht:

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

    Hier volgt een voorbeeld van de voorbeelduitvoering:

    {  
        "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
                }
            }
        ]
    }
    

De uitvoer controleren

De pijplijn maakt automatisch de uitvoermap fromonprem in de adftutorial blob-container aan. Controleer of u het bestand dbo.emp.txt in de uitvoermap ziet.

  1. Selecteer in de Azure-portal in het containervenster adftutorialRefresh om de uitvoermap weer te geven.

  2. Selecteer fromonprem in de lijst met mappen.

  3. Controleer of u een bestand met de naam dbo.emp.txt ziet.

    Uitvoerbestand

De pijplijn in dit voorbeeld kopieert gegevens van de ene locatie naar de andere in Azure Blob-opslag. U hebt geleerd hoe u:

  • Een data factory maken.
  • Een zelf-hostende Integration Runtime maken.
  • Maak SQL Server en Azure Storage gekoppelde services.
  • Maak datasets voor SQL Server en Azure Blob.
  • Maak een pijplijn met een kopieeractiviteit om de gegevens te verplaatsen.
  • Een pijplijnuitvoering starten.
  • Controleer de pijplijnuitvoering.

Zie Ondersteunde gegevensopslagexemplaren voor een lijst met gegevensopslagexemplaren die worden ondersteund door Data Factory.

Ga door naar de volgende zelfstudie voor informatie over het bulksgewijs kopiëren van gegevens uit een bron naar een bestemming: