Quickstart: Een data factory en pijplijn maken met behulp van .NET SDK

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 quickstart wordt beschreven hoe u .NET SDK kunt gebruiken om een Azure-gegevensfactory te maken. Met de pijplijn die u in deze data factory maakt, worden gegevens gekopieerd van één map naar een andere map in een Azure Blob Storage. Zie Zelfstudie: Gegevens transformeren met Spark voor meer informatie over het transformeren van gegevens met Azure Data Factory.

Notitie

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

Vereisten

Azure-abonnement

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

Azure-rollen

Als u Data Factory-exemplaren wilt maken, moet het gebruikersaccount waarmee u zich bij Azure aanmeldt, lid zijn van de rol Inzender of Eigenaar, of moet dit een beheerder van het Azure-abonnement zijn. Als u de machtigingen wilt bekijken die u binnen het abonnement hebt, gaat u naar Azure Portal, selecteert u uw gebruikersnaam rechtsboven in de hoek, selecteert u het pictogram "..." voor meer opties en selecteert u Mijn machtigingen. Als u toegang tot meerdere abonnementen hebt, moet u het juiste abonnement selecteren.

Als u onderliggende resources wilt maken en beheren voor Data Factory, waaronder gegevenssets, gekoppelde services, pijplijnen, triggers en integratieruntimes, zijn de volgende vereisten van toepassing:

  • Als u onderliggende resources in Azure Portal wilt maken en beheren, moet u de rol Data Factory-inzender op minimaal het niveau van de resourcegroep hebben.
  • Voor het maken en beheren van onderliggende resources met PowerShell of de SDK is de rol Inzender op minimaal het resourceniveau voldoende.

Zie het artikel Rollen toevoegen voor voorbeelden van instructies voor het toevoegen van een gebruiker aan een rol.

Raadpleeg voor meer informatie de volgende artikelen:

Azure Storage-account

In deze Snelstart gaat u een algemeen Azure Storage-account (en dan met name voor Blob Storage) gebruiken als zowel bron- als doelgegevensarchieven. Raadpleeg het artikel Een opslagaccount maken als u geen Azure Storage-account hebt voor algemene doeleinden en er een wilt maken.

De naam van het opslagaccount ophalen

In deze quickstart hebt u de naam van uw Azure Storage-account nodig. De volgende procedure bevat stappen waarmee u de naam van uw opslagaccount kunt ophalen:

  1. Ga in een webbrowser naar de Azure Portal en meld u aan met uw Azure-gebruikersnaam en-wachtwoord.
  2. Selecteer in het menu Azure Portal Alle services en selecteer Storage>Storage-accounts. U kunt vanaf elke pagina ook Storage-accounts zoeken en selecteren.
  3. Filter op de pagina Storage-accounts op uw opslagaccount (indien nodig) en selecteer vervolgens uw opslagaccount.

U kunt vanaf elke pagina ook Storage-accounts zoeken en selecteren.

Een blobcontainer maken

In deze sectie maakt u in Azure Blob Storage een blobcontainer met de naam adftutorial.

  1. Selecteer op de pagina Storage-account Overzicht>Containers.

  2. Selecteer Container op de werkbalk van de <pagina Accountnaamcontainers> - .

  3. Voer in het dialoogvenster Nieuwe container als naam adftutorial in en selecteer OK. De pagina Accountnaamcontainers - > wordt bijgewerkt om adftutorial op te nemen in de lijst met containers.<

    List of containers

Voeg een invoermap en -bestand toe aan de blobcontainer

In dit gedeelte maakt u een map met de naam invoer in de container die u hebt gemaakt en vervolgens uploadt u een voorbeeldbestand naar de invoermap. Voor u begint, opent u een tekstverwerker zoals Kladblok en maakt u een bestand met de naam emp.txt met de volgende inhoud:

John, Doe
Jane, Doe

Sla het bestand op in de map c:\ADFv2QuickStartPSH. (Als de map nog niet bestaat, maakt u deze.) Ga vervolgens terug naar Azure Portal en volg deze stappen:

  1. Selecteer adftutorial in de bijgewerkte lijst met containers op de <pagina Accountnaamcontainers - > waar u was gebleven.

    1. Als u het venster hebt gesloten of naar een andere pagina bent gegaan, meldt u zich weer aan bij de Azure Portal.
    2. Selecteer in het menu Azure Portal Alle services en selecteer Storage>Storage-accounts. U kunt vanaf elke pagina ook Storage-accounts zoeken en selecteren.
    3. Selecteer uw opslagaccount en selecteer vervolgens Containers>adftutorial.
  2. Selecteer in de werkbalk van de containerpagina adftutorialUploaden.

  3. Selecteer op de pagina Blob uploaden het venster Bestanden en blader vervolgens naar en selecteer het bestand emp.txt.

  4. Vouw de kop Geavanceerd uit. De pagina wordt nu als volgt weergegeven:

    Select Advanced link

  5. In het vak Uploaden naar map voert u invoer in.

  6. Selecteer de knop Uploaden. Als het goed is, ziet u in de lijst nu het bestand emp.txt, evenals de uploadstatus hiervan.

  7. Selecteer het pictogram Sluiten (X) om de pagina Blob uploaden te sluiten.

Houdt de containerpagina adftutorial open. U gaat hiermee aan het einde van deze QuickStart de uitvoer controleren.

Visual Studio

De procedures in dit artikel zijn gebaseerd op Visual Studio 2019. De procedures voor Visual Studio 2013, 2015 en 2017 verschillen enigszins.

Een toepassing maken in Microsoft Entra-id

Volg in de secties Procedure : Gebruik de portal om een Microsoft Entra-toepassing en service-principal te maken die toegang heeft tot resources. Volg de instructies voor het uitvoeren van deze taken:

  1. Maak in Een Microsoft Entra-toepassing maken een toepassing die de .NET-toepassing vertegenwoordigt die u in deze zelfstudie maakt. Voor de aanmeldings-URL kunt u een dummy-URL opgeven, zoals wordt getoond in het artikel (https://contoso.org/exampleapp).
  2. Haal in Waarden ophalen voor aanmelden de toepassings-id en tenant-id op, en noteer deze waarden zodat u ze later in deze zelfstudie kunt gebruiken.
  3. Haal in Certificaten en geheimen de verificatiesleutel op, en noteer deze waarde zodat u deze later in deze zelfstudie kunt gebruiken.
  4. Wijs in De toepassing toewijzen aan een rol de toepassing toe aan de rol Inzender op het niveau van het abonnement, zodat met de toepassing gegevensfactory's in het abonnement kunnen worden gemaakt.

Een Visual Studio-project maken

Maak vervolgens een C# .NET-consoletoepassing in Visual Studio:

  1. Start Visual Studio.
  2. Selecteer in het Startvenster de optie Een nieuw project maken>Console-app (.NET Framework). .NET versie 4.5.2 of hoger is vereist.
  3. Voer ADFv2QuickStartin bij Projectnaam.
  4. Selecteer Maken om het project te maken.

NuGet-pakketten installeren

  1. Selecteer Hulpprogramma's>NuGet Package Manager>Package Manager-console.

  2. Voer in het deelvenster Package Manager Console de volgende opdrachten uit om pakketten te installeren. Zie het NuGet-pakket Azure.ResourceManager.DataFactory voor meer informatie.

    Install-Package Azure.ResourceManager.DataFactory -IncludePrerelease
    Install-Package Azure.Identity 
    

Een data factory maken

  1. Open Program.cs en neem de volgende instructies op om verwijzingen naar naamruimten toe te voegen.

    using Azure;
    using Azure.Core;
    using Azure.Core.Expressions.DataFactory;
    using Azure.Identity;
    using Azure.ResourceManager;
    using Azure.ResourceManager.DataFactory;
    using Azure.ResourceManager.DataFactory.Models;
    using Azure.ResourceManager.Resources;
    using System;
    using System.Collections.Generic;
    
  2. Voeg de volgende code toe aan de methode Main waarmee de variabelen worden ingesteld. Vervang de plaatsaanduidingen door uw eigen waarden. 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 gegevensopslagplaatsen (Azure Storage, Azure SQL Database, enzovoort) en berekeningen (HDInsight, enzovoort) die worden gebruikt in Data Factory, kunnen zich in andere regio's bevinden.

    // Set variables
    string tenantID = "<your tenant ID>";
    string applicationId = "<your application ID>";
    string authenticationKey = "<your authentication key for the application>";
    string subscriptionId = "<your subscription ID where the data factory resides>";
    string resourceGroup = "<your resource group where the data factory resides>";
    string region = "<the location of your resource group>";
    string dataFactoryName = 
        "<specify the name of data factory to create. It must be globally unique.>";
    string storageAccountName = "<your storage account name to copy data>";
    string storageKey = "<your storage account key>";
    // specify the container and input folder from which all files 
    // need to be copied to the output folder. 
    string inputBlobContainer = "<blob container to copy data from, e.g. containername>";
    string inputBlobPath = "<path to existing blob(s) to copy data from, e.g. inputdir/file>";
    //specify the contains and output folder where the files are copied
    string outputBlobContainer = "<blob container to copy data from, e.g. containername>";
    string outputBlobPath = "<the blob path to copy data to, e.g. outputdir/file>";
    
    // name of the Azure Storage linked service, blob dataset, and the pipeline
    string storageLinkedServiceName = "AzureStorageLinkedService";
    string blobDatasetName = "BlobDataset";
    string pipelineName = "Adfv2QuickStartPipeline";
    
  3. Voeg de volgende code toe aan de methode Main om een data factory te maken.

    ArmClient armClient = new ArmClient(
        new ClientSecretCredential(tenantID, applicationId, authenticationKey, new TokenCredentialOptions
        {
            AuthorityHost = AzureAuthorityHosts.AzurePublicCloud
        }), 
        subscriptionId, 
        new ArmClientOptions { Environment = ArmEnvironment.AzurePublicCloud }
    );
    
    ResourceIdentifier resourceIdentifier = SubscriptionResource.CreateResourceIdentifier(subscriptionId);
    SubscriptionResource subscriptionResource = armClient.GetSubscriptionResource(resourceIdentifier);
    
    Console.WriteLine("Get an existing resource group " + resourceGroupName + "...");
    var resourceGroupOperation = subscriptionResource.GetResourceGroups().Get(resourceGroupName);
    ResourceGroupResource resourceGroupResource = resourceGroupOperation.Value;
    
    Console.WriteLine("Create a data factory " + dataFactoryName + "...");
    DataFactoryData dataFactoryData = new DataFactoryData(AzureLocation.EastUS2);
    var dataFactoryOperation = resourceGroupResource.GetDataFactories().CreateOrUpdate(WaitUntil.Completed, dataFactoryName, dataFactoryData);
    Console.WriteLine(dataFactoryOperation.WaitForCompletionResponse().Content);
    
    // Get the data factory resource
    DataFactoryResource dataFactoryResource = dataFactoryOperation.Value;
    

Een gekoppelde service maken

Voeg de volgende code toe aan de methode Main om een gekoppelde Azure Storage-service te maken.

U maakt gekoppelde services in een gegevensfactory om uw gegevensarchieven en compute-services aan de gegevensfactory te koppelen. In deze quickstart hoeft u slechts één gekoppelde Azure Blob Storage-service te maken voor zowel de kopieerbron als de sinkopslag. deze heet 'AzureBlobStorageLinkedService' in het voorbeeld.

// Create an Azure Storage linked service
Console.WriteLine("Create a linked service " + storageLinkedServiceName + "...");
AzureBlobStorageLinkedService azureBlobStorage = new AzureBlobStorageLinkedService()
{
    ConnectionString = azureBlobStorageConnectionString
};

DataFactoryLinkedServiceData linkedServiceData = new DataFactoryLinkedServiceData(azureBlobStorage);

var linkedServiceOperation = dataFactoryResource.GetDataFactoryLinkedServices().CreateOrUpdate(WaitUntil.Completed, storageLinkedServiceName, linkedServiceData);
Console.WriteLine(linkedServiceOperation.WaitForCompletionResponse().Content);

Een gegevensset maken

Voeg de volgende code toe aan de Main-methode waarmee een gegevensset met scheidingstekens voor tekst wordt gemaakt.

U definieert een gegevensset die de gegevens vertegenwoordigt die van een bron naar een sink moeten worden gekopieerd. In dit voorbeeld verwijst deze tekstgegevensset met scheidingstekens naar de gekoppelde Azure Blob Storage-service die u in de vorige stap hebt gemaakt. De gegevensset gebruikt twee parameters waarvan de waarde is ingesteld in een activiteit die de gegevensset verbruikt. De parameters worden gebruikt om de 'container' en 'folderPath' te maken die verwijst naar de locatie waar de gegevens zich bevinden/worden opgeslagen.

// Create an Azure Blob dataset
DataFactoryLinkedServiceReference linkedServiceReference = new DataFactoryLinkedServiceReference(DataFactoryLinkedServiceReferenceType.LinkedServiceReference, storageLinkedServiceName);
DelimitedTextDataset delimitedTextDataset = new DelimitedTextDataset(linkedServiceReference)
{
    DataLocation = new AzureBlobStorageLocation
    {
        Container = DataFactoryElement<string>.FromExpression("@dataset().container"),
        FileName = DataFactoryElement<string>.FromExpression("@dataset().path")
    },
    Parameters =
    {
        new KeyValuePair<string, EntityParameterSpecification>("container",new EntityParameterSpecification(EntityParameterType.String)),
        new KeyValuePair<string, EntityParameterSpecification>("path",new EntityParameterSpecification(EntityParameterType.String))
    },
    FirstRowAsHeader = false,
    QuoteChar = "\"",
    EscapeChar = "\\",
    ColumnDelimiter = ","
};

DataFactoryDatasetData datasetData = new DataFactoryDatasetData(delimitedTextDataset);

var datasetOperation = dataFactoryResource.GetDataFactoryDatasets().CreateOrUpdate(WaitUntil.Completed, blobDatasetName, datasetData);
Console.WriteLine(datasetOperation.WaitForCompletionResponse().Content);

Een pipeline maken

Voeg de volgende code toe aan de methode Main om een pijplijn met een kopieeractiviteit te maken.

In dit voorbeeld bevat deze pijplijn één activiteit en heeft deze vier parameters: de invoerblobcontainer en het pad, en de uitvoer-blobcontainer en het pad. De waarden voor deze parameters worden ingesteld wanneer de pijplijn wordt geactiveerd of uitgevoerd. De kopieeractiviteit verwijst naar dezelfde blobgegevensset die u in de vorige stap heb gemaakt als invoer en uitvoer. Wanneer de gegevensset wordt gebruikt als invoergegevensset, worden invoercontainer en -pad opgegeven. En wanneer de gegevensset wordt gebruikt als uitvoergegevensset, worden de uitvoercontainer en het pad opgegeven.

// Create a pipeline with a copy activity
Console.WriteLine("Creating pipeline " + pipelineName + "...");
DataFactoryPipelineData pipelineData = new DataFactoryPipelineData()
{
    Parameters =
    {
        new KeyValuePair<string, EntityParameterSpecification>("inputContainer",new EntityParameterSpecification(EntityParameterType.String)),
        new KeyValuePair<string, EntityParameterSpecification>("inputPath",new EntityParameterSpecification(EntityParameterType.String)),
        new KeyValuePair<string, EntityParameterSpecification>("outputContainer",new EntityParameterSpecification(EntityParameterType.String)),
        new KeyValuePair<string, EntityParameterSpecification>("outputPath",new EntityParameterSpecification(EntityParameterType.String))
    },
    Activities =
    {
        new CopyActivity("CopyFromBlobToBlob",new DataFactoryBlobSource(),new DataFactoryBlobSink())
        {
            Inputs =
            {
                new DatasetReference(DatasetReferenceType.DatasetReference,blobDatasetName)
                {
                    Parameters =
                    {
                        new KeyValuePair<string, BinaryData>("container", BinaryData.FromString("\"@pipeline().parameters.inputContainer\"")),
                        new KeyValuePair<string, BinaryData>("path", BinaryData.FromString("\"@pipeline().parameters.inputPath\""))
                    }
                }
            },
            Outputs =
            {
                new DatasetReference(DatasetReferenceType.DatasetReference,blobDatasetName)
                {
                    Parameters =
                    {
                        new KeyValuePair<string, BinaryData>("container", BinaryData.FromString("\"@pipeline().parameters.outputContainer\"")),
                        new KeyValuePair<string, BinaryData>("path", BinaryData.FromString("\"@pipeline().parameters.outputPath\""))
                    }
                }
            }
        }
    }
};

var pipelineOperation = dataFactoryResource.GetDataFactoryPipelines().CreateOrUpdate(WaitUntil.Completed, pipelineName, pipelineData);
Console.WriteLine(pipelineOperation.WaitForCompletionResponse().Content);

Een pijplijnuitvoering maken

Voeg de volgende code toe aan de methode Main om een pijplijnuitvoering te activeren.

Met deze code worden ook waarden ingesteld van de parameters inputContainer, inputPath, outputContainer en outputPath die zijn opgegeven in de pijplijn met de werkelijke waarden van de bron- en sink-blobpaden.

// Create a pipeline run
Console.WriteLine("Creating pipeline run...");
Dictionary<string, BinaryData> parameters = new Dictionary<string, BinaryData>()
{
    { "inputContainer",BinaryData.FromObjectAsJson(inputBlobContainer) },
    { "inputPath",BinaryData.FromObjectAsJson(inputBlobPath) },
    { "outputContainer",BinaryData.FromObjectAsJson(outputBlobContainer) },
    { "outputPath",BinaryData.FromObjectAsJson(outputBlobPath) }
};

var pipelineResource = dataFactoryResource.GetDataFactoryPipeline(pipelineName);
var runResponse = pipelineResource.Value.CreateRun(parameters);
Console.WriteLine("Pipeline run ID: " + runResponse.Value.RunId);

Een pijplijnuitvoering controleren

  1. Voeg de volgende code toe aan de methode Main om continu de status te controleren totdat het kopiëren van de gegevens is voltooid.

    // Monitor the pipeline run
    Console.WriteLine("Checking pipeline run status...");
    DataFactoryPipelineRunInfo pipelineRun;
    while (true)
    {
        pipelineRun = dataFactoryResource.GetPipelineRun(runResponse.Value.RunId.ToString());
        Console.WriteLine("Status: " + pipelineRun.Status);
        if (pipelineRun.Status == "InProgress" || pipelineRun.Status == "Queued")
            System.Threading.Thread.Sleep(15000);
        else
            break;
    }
    
  2. Voeg de volgende code toe aan de methode Main om details van de kopieeractiviteit weer te geven, zoals de omvang van de gelezen of weggeschreven gegevens.

    // Check the copy activity run details
    Console.WriteLine("Checking copy activity run details...");
    
    var queryResponse = dataFactoryResource.GetActivityRun(pipelineRun.RunId.ToString(), 
        new RunFilterContent(DateTime.UtcNow.AddMinutes(-10), DateTime.UtcNow.AddMinutes(10)));
    
    var enumerator = queryResponse.GetEnumerator();
    enumerator.MoveNext();
    
    if (pipelineRun.Status == "Succeeded")
        Console.WriteLine(enumerator.Current.Output);
    else
        Console.WriteLine(enumerator.Current.Error);
    Console.WriteLine("\nPress any key to exit...");
    Console.ReadKey();
    

De code uitvoeren

Bouw en start de toepassing en controleer vervolgens de uitvoering van de pijplijn.

In de console wordt de voortgang weergegeven van het maken van een data factory, een gekoppelde service, gegevenssets, pijplijn en pijplijnuitvoering. Vervolgens wordt de uitvoeringsstatus van de pijplijn gecontroleerd. Wacht totdat u de details van de uitvoering van de kopieeractiviteit ziet met de omvang van de gelezen/weggeschreven gegevens. Gebruik vervolgens hulpprogramma's zoals Azure Storage Explorer om te controleren of de blob(s) is/zijn gekopieerd van het 'inputBlobPath' naar het 'outputBlobPath' zoals u hebt opgegeven in de variabelen.

Voorbeelduitvoer

Create a data factory quickstart-adf...
{
  "name": "quickstart-adf",
  "type": "Microsoft.DataFactory/factories",
  "properties": {
    "provisioningState": "Succeeded",
    "version": "2018-06-01"
  },
  "location": "eastus2"
}
Create a linked service AzureBlobStorage...
{
  "name": "AzureBlobStorage",
  "type": "Microsoft.DataFactory/factories/linkedservices",
  "properties": {
    "type": "AzureBlobStorage",
    "typeProperties": {
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=<storageAccountName>;",
      "encryptedCredential": "<encryptedCredential>"
    }
  }
}
Creating dataset BlobDelimitedDataset...
{
  "name": "BlobDelimitedDataset",
  "type": "Microsoft.DataFactory/factories/datasets",
  "properties": {
    "type": "DelimitedText",
    "linkedServiceName": {
      "type": "LinkedServiceReference",
      "referenceName": "AzureBlobStorage"
    },
    "parameters": {
      "container": {
        "type": "String"
      },
      "path": {
        "type": "String"
      }
    },
    "typeProperties": {
      "location": {
        "container": {
          "type": "Expression",
          "value": "@dataset().container"
        },
        "type": "AzureBlobStorageLocation",
        "fileName": {
          "type": "Expression",
          "value": "@dataset().path"
        }
      },
      "columnDelimiter": ",",
      "quoteChar": "\"",
      "escapeChar": "\\",
      "firstRowAsHeader": false
    }
  }
}
Creating pipeline Adfv2QuickStartPipeline...
{
  "properties": {
    "activities": [
      {
        "inputs": [
          {
            "type": "DatasetReference",
            "referenceName": "BlobDelimitedDataset",
            "parameters": {
              "container": "@pipeline().parameters.inputContainer",
              "path": "@pipeline().parameters.inputPath"
            }
          }
        ],
        "outputs": [
          {
            "type": "DatasetReference",
            "referenceName": "BlobDelimitedDataset",
            "parameters": {
              "container": "@pipeline().parameters.outputContainer",
              "path": "@pipeline().parameters.outputPath"
            }
          }
        ],
        "name": "CopyFromBlobToBlob",
        "type": "Copy",
        "typeProperties": {
          "source": {
            "type": "BlobSource"
          },
          "sink": {
            "type": "BlobSink"
          }
        }
      }
    ],
    "parameters": {
      "inputContainer": {
        "type": "String"
      },
      "inputPath": {
        "type": "String"
      },
      "outputContainer": {
        "type": "String"
      },
      "outputPath": {
        "type": "String"
      }
    }
  }
}
Creating pipeline run...
Pipeline run ID: 3aa26ffc-5bee-4db9-8bac-ccbc2d7b51c1
Checking pipeline run status...
Status: InProgress
Status: Succeeded
Checking copy activity run details...
{
  "dataRead": 1048,
  "dataWritten": 1048,
  "filesRead": 1,
  "filesWritten": 1,
  "sourcePeakConnections": 1,
  "sinkPeakConnections": 1,
  "copyDuration": 8,
  "throughput": 1.048,
  "errors": [],
  "effectiveIntegrationRuntime": "AutoResolveIntegrationRuntime (East US 2)",
  "usedDataIntegrationUnits": 4,
  "billingReference": {
    "activityType": "DataMovement",
    "billableDuration": [
      {
        "meterType": "AzureIR",
        "duration": 0.06666666666666667,
        "unit": "DIUHours"
      }
    ],
    "totalBillableDuration": [
      {
        "meterType": "AzureIR",
        "duration": 0.06666666666666667,
        "unit": "DIUHours"
      }
    ]
  },
  "usedParallelCopies": 1,
  "executionDetails": [
    {
      "source": {
        "type": "AzureBlobStorage"
      },
      "sink": {
        "type": "AzureBlobStorage"
      },
      "status": "Succeeded",
      "start": "2023-12-15T10:25:33.9991558Z",
      "duration": 8,
      "usedDataIntegrationUnits": 4,
      "usedParallelCopies": 1,
      "profile": {
        "queue": {
          "status": "Completed",
          "duration": 5
        },
        "transfer": {
          "status": "Completed",
          "duration": 1,
          "details": {
            "listingSource": {
              "type": "AzureBlobStorage",
              "workingDuration": 0
            },
            "readingFromSource": {
              "type": "AzureBlobStorage",
              "workingDuration": 0
            },
            "writingToSink": {
              "type": "AzureBlobStorage",
              "workingDuration": 0
            }
          }
        }
      },
      "detailedDurations": {
        "queuingDuration": 5,
        "transferDuration": 1
      }
    }
  ],
  "dataConsistencyVerification": {
    "VerificationResult": "NotVerified"
  }
}

Press any key to exit...

De uitvoer controleren

De uitvoermap wordt automatisch door de pijplijn gemaakt in de blobcontainer adftutorial. Vervolgens wordt het bestand emp.txt gekopieerd van de invoermap naar de uitvoermap.

  1. Selecteer in de Azure Portal op de containerpagina adftutorial waarbij u gestopt bent in de sectie Een invoermap en een bestand toevoegen voor de blobcontainer hierboven Vernieuwen om de uitvoermap weer te geven.
  2. Selecteer Uitvoer in de lijst met mappen.
  3. Controleer of het bestand emp.txt naar de uitvoermap is gekopieerd.

Resources opschonen

Als u de data factory programmatisch wilt verwijderen, voegt u de volgende regels code toe aan het programma:

Console.WriteLine("Deleting the data factory");
dataFactoryResource.Delete(WaitUntil.Completed);

Volgende stappen

Met de pijplijn in dit voorbeeld worden gegevens gekopieerd van de ene naar de andere locatie in Azure Blob Storage. Doorloop de zelfstudies voor meer informatie over het gebruiken van Data Factory in andere scenario's.