Share via


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

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

In deze zelfstudie gebruikt u Azure PowerShell om een Data Factory-pijplijn te maken waarmee gegevens worden gekopieerd van een SQL Server-database naar een Azure Blob-opslag. U gaat een zelf-hostende Integration Runtime maken en gebruiken. Deze verplaatst gegevens van on-premises gegevensarchieven en gegevensarchieven in de cloud en omgekeerd.

Notitie

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

In deze zelfstudie voert u de volgende stappen uit:

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

Vereisten

Azure-abonnement

Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.

Azure-rollen

Als u data factory-exemplaren wilt maken, moet het gebruikersaccount waarmee u zich bij Azure aanmeldt, toegewezen zijn aan de rollen Inzender of Eigenaar, of moet dit een beheerder van het Azure-abonnement zijn.

Als u de machtigingen die u hebt in het abonnement wilt bekijken, gaat u naar Azure Portal, selecteert u rechtsboven in de hoek uw gebruikersnaam en selecteert u vervolgens Machtigingen. Als u toegang tot meerdere abonnementen hebt, moet u het juiste abonnement selecteren. Zie het artikel Azure Portal toewijzen 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 brongegevensopslag. De pijplijn in de data factory die u in deze zelfstudie gaat maken, kopieert gegevens van deze SQL Server-database (bron) naar Azure Blob-opslag (sink). Maak een tabel met de naam emp in uw SQL Server-database en voeg een aantal voorbeeldgegevens toe aan de tabel.

  1. Start SQL Server Management Studio. Als dit niet al is geïnstalleerd op uw computer, gaat u naar SQL Server Management Studio downloaden.

  2. Maak verbinding met SQL Server-exemplaar met behulp van uw referenties.

  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 zelfstudie gaat u een algemeen Azure Storage-account (en dan met name Azure Blob Storage) gebruiken als een doel/sink-gegevensopslag. Zie het artikel Een opslagaccount maken als u geen Azure Storage-account hebt voor algemene doeleinden. De pijplijn in de data factory die u in deze zelfstudie gaat maken, kopieert gegevens van de SQL Server-database (bron) naar deze Azure Blob-opslag (sink).

De naam en sleutel van een opslagaccount ophalen

In deze QuickStart gaat u de naam en sleutel van uw Azure Storage-account gebruiken. Als u de naam en sleutel van uw opslagaccount wilt ophalen, doet u het volgende:

  1. Meld u aan bij 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 in uw Azure Blob Storage een blobcontainer met de naam adftutorial.

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

    De optie Blobs selecteren

  2. Selecteer in het venster Blob-serviceContainer.

  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 gaat hiermee aan het einde van deze zelfstudie de uitvoer controleren. In Data Factory wordt automatisch in deze container de uitvoermap gemaakt, zodat u er zelf geen hoeft te maken.

Windows PowerShell

Installeer Azure PowerShell

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Installeer de nieuwste versie van Azure PowerShell als u deze niet al op uw computer hebt. Zie Azure PowerShell installeren en configureren 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 geef de gebruikersnaam en het wachtwoord op waarmee u zich aanmeldt bij 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 tekst van de volgende opdracht naar PowerShell, geef een naam op voor de Azure-resourcegroep (bijvoorbeeld tussen dubbele aanhalingstekens) "adfrg"en voer de opdracht uit.

    $resourceGroupName = "ADFTutorialResourceGroup"
    
  2. Voer de volgende opdracht uit om de 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 een Globally Unique Identifier 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.
    
  • Als u Data Factory-exemplaren wilt maken, moet het gebruikersaccount waarmee u zich bij Azure aanmeldt, toegewezen zijn aan de rollen Inzender of Eigenaar, of moet dit een beheerder van het Azure-abonnement zijn.
  • Voor een lijst met Azure-regio’s waarin Data Factory momenteel beschikbaar is, selecteert u op de volgende pagina de regio’s waarin u geïnteresseerd bent, vouwt u vervolgens Analytics uit en gaat u naar Data Factory: Beschikbare producten per regio. De gegevensopslagexemplaren (Azure Storage, Azure SQL Database enzovoort) en berekeningen (Azure HDInsight enzovoort) die worden gebruikt in Data Factory, kunnen zich in andere regio's bevinden.

Zelf-hostende Integration Runtime maken

In deze sectie kunt u een zelf-hostende Integration Runtime maken en deze koppelen aan een on-premises computer met de SQL Server database. De zelf-hostende Integration Runtime is het onderdeel waarmee gegevens worden gekopieerd van SQL Server-database op uw computer 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 zelf-hostende 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. Klik bij Welkom bij de installatiewizard van Microsoft Integration Runtime op Volgende.

  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 Gereed om Microsoft Integration Runtime te installerenInstalleren.

  6. Klik in De installatiewizard voor Microsoft Integration Runtime is voltooid op Voltooien.

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

    Integration Runtime registreren

  8. Klik in het venster Nieuw knooppunt voor Integration Runtime (zelf-hostend) op Voltooien.

    Venster Nieuw knooppunt voor Integration Runtime

  9. U ziet het volgende bericht wanneer de zelf-hostende Integration Runtime is geregistreerd:

    Registratie is voltooid

  10. In het venster Integration Runtime (zelf-hostend) registeren selecteert u Configuration Manager starten.

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

    Knooppunt is verbonden

  12. Test nu de verbinding met uw SQL Server-database door het volgende te doen:

    a. Schakel in het venster Configuratiebeheer over naar het tabblad Diagnostische gegevens.

    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 controleren of 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 met uw SQL Server-exemplaar kan maken.

    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 zelfstudie gaat u uw Azure Storage-account en uw SQL Server-exemplaar aan de gegevensopslag koppelen. 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 gekoppelde Azure Storage-service maken (bestemming/sink)

Tijdens deze stap koppelt u uw Azure Storage-account 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 sectie Vereisten.

    {
        "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 voorbeeld van uitvoer:

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

    Als u de fout Bestand niet gevonden krijgt, bevestig dan dat 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 gekoppelde SQL Server-service (bron) maken en versleutelen

In deze stap gaat u uw SQL Server-exemplaar aan de data factory koppelen.

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

    Belangrijk

    Selecteer de sectie op basis van 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"
            }
        }
    }
    

    Windows-verificatie gebruiken:

    {  
        "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 op basis van 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 servernaam>, <databasenaam>,< gebruikersnaam> en< wachtwoord> door 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-hostende 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. Deze vertegenwoordigen invoer- en uitvoergegevenssets voor de kopieerbewerking, die gegevens van de SQL Server-database naar Azure Blob-opslag kopiëren.

Een gegevensset maken voor bron SQL Server-database

Tijdens deze stap definieert u een gegevensset die gegevens in de SQL Server-database vertegenwoordigt. De gegevensset is van het type SqlServerTable. Deze gegevensset verwijst naar de gekoppelde SQL Server-service die u in de vorige stap hebt gemaakt. De gekoppelde service beschikt over de verbindingsgegevens die de Data Factory-service gebruikt om tijdens runtime een verbinding met uw SQL Server-exemplaar tot stand te brengen. Deze gegevensset bepaalt welke SQL-tabel in de database de gegevens bevat. In deze zelfstudie 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-opslag (sink)

Tijdens deze stap gaat u een gegevensset definiëren die gegevens vertegenwoordigt die moeten worden gekopieerd naar de Azure Blob-opslag. De gegevensset is van het type AzureBlob. Deze gegevensset verwijst naar de gekoppelde Azure Storage-service die u eerder in deze zelfstudie hebt gemaakt.

De gekoppelde service beschikt over de verbindingsgegevens die de Data Factory-service tijdens runtime gebruikt om verbinding met uw Azure Storage-account te maken. Deze gegevensset duidt de map in de Azure-opslag aan waarnaar de gegevens van de SQL Server-database worden gekopieerd. In deze zelfstudie is de map adftutorial/fromonprem waar de adftutorial blobcontainer is en is 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

Tijdens deze stap maakt 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 pijplijnuitvoering maken

Start een pijplijnuitvoering voor de pijplijn SQLServerToBlobPipeline en leg de id voor de pijplijnuitvoering vast voor toekomstige controle.

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

De pijplijnuitvoering 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 uitvoermap fromonprem wordt automatisch door de pijplijn gemaakt in de adftutorial blobcontainer. Controleer of u het bestand dbo.emp.txt in de uitvoermap ziet.

  1. Klik in Azure Portal op het venster met de adftutorial-container op Vernieuwen 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

Met de pijplijn in dit voorbeeld worden gegevens gekopieerd van de ene locatie naar een andere locatie in een Azure Blob-opslag. U hebt geleerd hoe u:

  • Een data factory maken.
  • Een zelf-hostende Integration Runtime maken.
  • Gekoppelde services maken voor SQL Server en Azure Storage.
  • Gegevenssets maken voor SQL Server en Azure Blob.
  • Een pijplijn maakt 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: