クイック スタート:.NET SDK を使用してデータ ファクトリとパイプラインを作成するQuickstart: Create a data factory and pipeline using .NET SDK

このクイックスタートでは、.NET SDK を使用して Azure データ ファクトリを作成する方法について説明します。This quickstart describes how to use .NET SDK to create an Azure data factory. このデータ ファクトリに作成されたパイプラインは、データを Azure BLOB ストレージ内のあるフォルダーから別のフォルダーにコピーします。The pipeline you create in this data factory copies data from one folder to another folder in an Azure blob storage. Azure Data Factory を使用してデータを変換する方法のチュートリアルについては、Spark を使用したデータ変換のチュートリアルを参照してください。For a tutorial on how to transform data using Azure Data Factory, see Tutorial: Transform data using Spark.

注意

この記事では、Data Factory サービスの概要については詳しく取り上げません。This article does not provide a detailed introduction of the Data Factory service. Azure Data Factory サービスの概要については、「Azure Data Factory の概要」をご覧ください。For an introduction to the Azure Data Factory service, see Introduction to Azure Data Factory.

前提条件Prerequisites

Azure サブスクリプションAzure subscription

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。If you don't have an Azure subscription, create a free account before you begin.

Azure ロールAzure roles

Data Factory インスタンスを作成するには、Azure へのサインインに使用するユーザー アカウントが、"共同作成者" ロールまたは "所有者" ロールのメンバーであるか、Azure サブスクリプションの "管理者" である必要があります。To create Data Factory instances, the user account that you use to sign in to Azure must be a member of the contributor or owner role, or an administrator of the Azure subscription. サブスクリプションで自分が持っているアクセス許可を表示するには、Azure portal に移動し、右上にあるユーザー名を選択し、 [その他のオプション] (...) を選択し、 [アクセス許可] を選択します。To view the permissions that you have in the subscription, go to the Azure portal, select your username in the upper-right corner, select More options (...), and then select My permissions. 複数のサブスクリプションにアクセスできる場合は、適切なサブスクリプションを選択します。If you have access to multiple subscriptions, select the appropriate subscription.

データ セット、リンクされたサービス、パイプライン、トリガー、および統合ランタイムを含む Data Factory の子リソースを作成および管理するには、次の要件が適用されます。To create and manage child resources for Data Factory - including datasets, linked services, pipelines, triggers, and integration runtimes - the following requirements are applicable:

  • Azure portal で子リソースを作成および管理するには、リソース グループ レベル以上で Data Factory 共同作成者 ロールに属している必要があります。To create and manage child resources in the Azure portal, you must belong to the Data Factory Contributor role at the resource group level or above.
  • PowerShell または SDK を使用して子リソースを作成および管理する場合は、リソース レベル以上での 共同作成者 ロールで十分です。To create and manage child resources with PowerShell or the SDK, the contributor role at the resource level or above is sufficient.

ロールにユーザーを追加する方法に関するサンプル手順については、 ロールの追加 に関する記事を参照してください。For sample instructions about how to add a user to a role, see the Add roles article.

詳細については、次の記事を参照してください。For more info, see the following articles:

Azure ストレージ アカウントAzure storage account

このクイック スタートでは、"ソース" データ ストアと "コピー先" データ ストアの両方に汎用の Azure ストレージ アカウント (具体的には BLOB ストレージ) を使用します。You use a general-purpose Azure storage account (specifically Blob storage) as both source and destination data stores in this quickstart. 汎用の Azure ストレージ アカウントがない場合、作成方法については、「 ストレージ アカウントの作成 」を参照してください。If you don't have a general-purpose Azure storage account, see Create a storage account to create one.

ストレージ アカウント名を取得するGet the storage account name

このクイックスタートには、Azure ストレージ アカウントの名前が必要です。You will need the name of your Azure storage account for this quickstart. 以下の手順に従って、ご利用のストレージ アカウントの名前を取得してください。The following procedure provides steps to get the name of your storage account:

  1. Web ブラウザーで Azure portal にアクセスし、Azure のユーザー名とパスワードを使用してサインインします。In a web browser, go to the Azure portal and sign in using your Azure username and password.
  2. [すべてのサービス] > [ストレージ] > [ストレージ アカウント] の順に選択します。Select All services > Storage > Storage accounts.
  3. [ストレージ アカウント] ページで、ご利用のストレージ アカウントを (必要に応じて) フィルターで抽出し、該当するストレージ アカウントを選択します。In the Storage accounts page, filter for your storage account (if needed), and then select your storage account.

BLOB コンテナーを作成するCreate a blob container

このセクションでは、adftutorial という名前の BLOB コンテナーを Azure Blob Storage に作成します。In this section, you create a blob container named adftutorial in Azure Blob storage.

  1. ストレージ アカウント ページで、 [概要] > [BLOB] を選択します。From the storage account page, select Overview > Blobs.

  2. < アカウント名 > - BLOB ページのツールバーで、コンテナー を選択します。On the <Account name> - Blobs page's toolbar, select Container.

  3. [新しいコンテナー] ダイアログ ボックスで、名前に「adftutorial」と入力し、 [OK] を選択します。In the New container dialog box, enter adftutorial for the name, and then select OK. < アカウント名 > - BLOB ページが更新され、コンテナーの一覧に adftutorial が含まれるようになります。The <Account name> - Blobs page is updated to include adftutorial in the list of containers.

    コンテナーの一覧

BLOB コンテナーの入力フォルダーとファイルを追加するAdd an input folder and file for the blob container

このセクションでは、先ほど作成したコンテナーに input という名前のフォルダーを作成し、入力フォルダーにサンプル ファイルをアップロードします。In this section, you create a folder named input in the container you just created, and then upload a sample file to the input folder. 開始する前に、メモ帳 などのテキスト エディターを開き、次の内容を含む emp.txt という名前のファイルを作成します。Before you begin, open a text editor such as Notepad, and create a file named emp.txt with the following content:

John, Doe
Jane, Doe

C:\ADFv2QuickStartPSH フォルダーにファイルを保存しますSave the file in the C:\ADFv2QuickStartPSH folder. (フォルダーがまだ存在しない場合は作成します)。Azure portal に戻り、次の手順を実行します。(If the folder doesn't already exist, create it.) Then return to the Azure portal and follow these steps:

  1. 中断した [< アカウント名 >] - [BLOB] ページで、コンテナーの更新された一覧から [adftutorial] を選択します。In the <Account name> - Blobs page where you left off, select adftutorial from the updated list of containers. (ウィンドウを閉じた場合、または別のページに移動した場合は、Azure portal にもう一度サインインし、 [すべてのサービス] > [ストレージ] > [ストレージ アカウント] を選択し、 [BLOB] > [adftutorial] を選択します)。(If you closed the window or went to another page, sign in to the Azure portal again, select All services > Storage > Storage accounts, select your storage account, and then select Blobs > adftutorial.)

  2. adftutorial コンテナー ページのツールバーで、 [アップロード] を選択します。On the adftutorial container page's toolbar, select Upload.

  3. [BLOB のアップロード] ページで、 [ファイル] ボックスを選択し、emp.txt ファイルを参照して選択します。In the Upload blob page, select the Files box, and then browse to and select the emp.txt file.

  4. [詳細設定] の見出しを展開します。Expand the Advanced heading. 次のようにページが表示されます。The page now displays as shown:

    [詳細設定] リンクの選択

  5. [アップロード先のフォルダー] ボックスに「input」と入力します。In the Upload to folder box, enter input.

  6. [アップロード] ボタンを選択します。Select the Upload button. 一覧に emp.txt ファイルとアップロードの状態が表示されます。You should see the emp.txt file and the status of the upload in the list.

  7. [閉じる] アイコン (X) を選択して、 [BLOB のアップロード] ページを閉じます。Select the Close icon (an X) to close the Upload blob page.

adftutorial コンテナーのページを開いたままにしておきます。Keep the adftutorial container page open. このクイック スタートの最後で、このページを使用して出力を確認します。You use it to verify the output at the end of this quickstart.

Visual StudioVisual Studio

この記事のチュートリアルでは、Visual Studio 2019 を使用します。The walkthrough in this article uses Visual Studio 2019. Visual Studio 2013、2015、または 2017 での手順は少し異なります。The procedures for Visual Studio 2013, 2015, or 2017 differ slightly.

Azure .NET SDKAzure .NET SDK

Azure .NET SDK をマシンにダウンロードしてインストールします。Download and install Azure .NET SDK on your machine.

Azure Active Directory にアプリケーションを作成するCreate an application in Azure Active Directory

方法: リソースにアクセスできる Azure AD アプリケーションとサービス プリンシパルをポータルで作成する」の各セクションの手順に従って、以下のタスクを実行します。From the sections in How to: Use the portal to create an Azure AD application and service principal that can access resources, follow the instructions to do these tasks:

  1. Azure Active Directory アプリケーションを作成する」で、このチュートリアルで作成している .NET アプリケーションを表すアプリケーションを作成します。In Create an Azure Active Directory application, create an application that represents the .NET application you are creating in this tutorial. サインオン URL については、この記事に示されているようにダミーの URL (https://contoso.org/exampleapp) を指定できます。For the sign-on URL, you can provide a dummy URL as shown in the article (https://contoso.org/exampleapp).
  2. サインインするための値を取得する」で、アプリケーション IDテナント ID を取得し、それらの値をメモしておいてください。このチュートリアルで後ほど使用します。In Get values for signing in, get the application ID and tenant ID, and note down these values that you use later in this tutorial.
  3. 証明書とシークレット」で、認証キーを取得し、その値をメモしておいてください。このチュートリアルで後ほど使用します。In Certificates and secrets, get the authentication key, and note down this value that you use later in this tutorial.
  4. アプリケーションをロールに割り当てる」で、アプリケーションがサブスクリプションにデータ ファクトリを作成できるように、サブスクリプション レベルでアプリケーションを共同作成者ロールに割り当てます。In Assign the application to a role, assign the application to the Contributor role at the subscription level so that the application can create data factories in the subscription.

Visual Studio プロジェクトを作成するCreate a Visual Studio project

次に、Visual Studio で、C# .NET コンソール アプリケーションを作成します。Next, create a C# .NET console application in Visual Studio:

  1. Visual Studio を起動します。Launch Visual Studio.
  2. スタート ウィンドウで、 [新しいプロジェクトの作成] > [コンソール アプリ (.NET Framework)] の順に選択します。In the Start window, select Create a new project > Console App (.NET Framework). .NET バージョン 4.5.2 以降が必要です。.NET version 4.5.2 or above is required.
  3. [プロジェクト名] に「ADFv2QuickStart」と入力します。In Project name, enter ADFv2QuickStart.
  4. [作成] を選択してプロジェクトを作成します。Select Create to create the project.

NuGet パッケージのインストールInstall NuGet packages

  1. [ツール] > [NuGet パッケージ マネージャー] > [パッケージ マネージャー コンソール] の順に選択します。Select Tools > NuGet Package Manager > Package Manager Console.

  2. [パッケージ マネージャー コンソール] ウィンドウで、次のコマンドを実行してパッケージをインストールします。In the Package Manager Console pane, run the following commands to install packages. 詳細については、Microsoft.Azure.Management.DataFactory nuget パッケージを参照してください。For more information, see the Microsoft.Azure.Management.DataFactory nuget package.

    Install-Package Microsoft.Azure.Management.DataFactory
    Install-Package Microsoft.Azure.Management.ResourceManager -IncludePrerelease
    Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory
    

データ ファクトリ クライアントを作成するCreate a data factory client

  1. Program.cs を開き、次のステートメントを挿入して、名前空間への参照を追加します。Open Program.cs, include the following statements to add references to namespaces.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using Microsoft.Rest;
    using Microsoft.Azure.Management.ResourceManager;
    using Microsoft.Azure.Management.DataFactory;
    using Microsoft.Azure.Management.DataFactory.Models;
    using Microsoft.IdentityModel.Clients.ActiveDirectory;
    
  2. 変数を設定する次のコードを Main メソッドに追加します。Add the following code to the Main method that sets the variables. プレースホルダーを実際の値に置き換えてください。Replace the placeholders with your own values. 現在 Data Factory が利用できる Azure リージョンの一覧については、次のページで目的のリージョンを選択し、 [分析] を展開して [Data Factory] を探してください。リージョン別の利用可能な製品For a list of Azure regions in which Data Factory is currently available, select the regions that interest you on the following page, and then expand Analytics to locate Data Factory: Products available by region. データ ファクトリで使用するデータ ストア (Azure Storage、Azure SQL Database など) やコンピューティング (HDInsight など) は他のリージョンに配置できます。The data stores (Azure Storage, Azure SQL Database, and more) and computes (HDInsight and others) used by data factory can be in other regions.

    // 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 storageAccount = "<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 inputBlobPath =
        "<path to existing blob(s) to copy data from, e.g. containername/inputdir>";
    //specify the contains and output folder where the files are copied
    string outputBlobPath =
        "<the blob path to copy data to, e.g. containername/outputdir>";
    
    // name of the Azure Storage linked service, blob dataset, and the pipeline
    string storageLinkedServiceName = "AzureStorageLinkedService";
    string blobDatasetName = "BlobDataset";
    string pipelineName = "Adfv2QuickStartPipeline";
    
  3. DataFactoryManagementClient クラスのインスタンスを作成する次のコードを Main メソッドに追加します。Add the following code to the Main method that creates an instance of DataFactoryManagementClient class. このオブジェクトを使用して、データ ファクトリ、リンクされたサービス、データセット、パイプラインを作成します。You use this object to create a data factory, a linked service, datasets, and a pipeline. また、このオブジェクトを使用して、パイプラインの実行の詳細を監視します。You also use this object to monitor the pipeline run details.

    // Authenticate and create a data factory management client
    var context = new AuthenticationContext("https://login.windows.net/" + tenantID);
    ClientCredential cc = new ClientCredential(applicationId, authenticationKey);
    AuthenticationResult result = context.AcquireTokenAsync(
        "https://management.azure.com/", cc).Result;
    ServiceClientCredentials cred = new TokenCredentials(result.AccessToken);
    var client = new DataFactoryManagementClient(cred) {
        SubscriptionId = subscriptionId };
    

Data Factory を作成する。Create a data factory

データ ファクトリを作成する次のコードを Main メソッドに追加します。Add the following code to the Main method that creates a data factory.

// Create a data factory
Console.WriteLine("Creating data factory " + dataFactoryName + "...");
Factory dataFactory = new Factory
{
    Location = region,
    Identity = new FactoryIdentity()
};
client.Factories.CreateOrUpdate(resourceGroup, dataFactoryName, dataFactory);
Console.WriteLine(
    SafeJsonConvert.SerializeObject(dataFactory, client.SerializationSettings));

while (client.Factories.Get(resourceGroup, dataFactoryName).ProvisioningState ==
       "PendingCreation")
{
    System.Threading.Thread.Sleep(1000);
}

リンクされたサービスを作成するCreate a linked service

Azure Storage のリンクされたサービスを作成する次のコードを Main メソッドに追加します。Add the following code to the Main method that creates an Azure Storage linked service.

データ ストアおよびコンピューティング サービスをデータ ファクトリにリンクするには、リンクされたサービスをデータ ファクトリに作成します。You create linked services in a data factory to link your data stores and compute services to the data factory. このクイックスタートでは、コピー ソースとシンク ストアの両方のために、Azure Storage のリンクされたサービスを 1 つ作成するだけで済みます。このサービスは、サンプルでは "AzureStorageLinkedService" という名前です。In this Quickstart, you only need to create one Azure Storage linked service for both the copy source and the sink store; it's named "AzureStorageLinkedService" in the sample.

// Create an Azure Storage linked service
Console.WriteLine("Creating linked service " + storageLinkedServiceName + "...");

LinkedServiceResource storageLinkedService = new LinkedServiceResource(
    new AzureStorageLinkedService
    {
        ConnectionString = new SecureString(
            "DefaultEndpointsProtocol=https;AccountName=" + storageAccount +
            ";AccountKey=" + storageKey)
    }
);
client.LinkedServices.CreateOrUpdate(
    resourceGroup, dataFactoryName, storageLinkedServiceName, storageLinkedService);
Console.WriteLine(SafeJsonConvert.SerializeObject(
    storageLinkedService, client.SerializationSettings));

データセットを作成するCreate a dataset

Azure BLOB データセットを作成する次のコードを Main メソッドに追加します。Add the following code to the Main method that creates an Azure blob dataset.

ソースからシンクにコピーするデータを表すデータセットを定義します。You define a dataset that represents the data to copy from a source to a sink. この例のこの BLOB データセットは、前の手順で作成した Azure Storage のリンクされたサービスを参照します。In this example, this Blob dataset references to the Azure Storage linked service you created in the previous step. データセットは、データセットを使用するアクティビティで設定された値を持つパラメーターを受け取ります。The dataset takes a parameter whose value is set in an activity that consumes the dataset. パラメーターは、データの存在および格納場所を指す "folderPath" を構築するために使用されます。The parameter is used to construct the "folderPath" pointing to where the data resides/is stored.

// Create an Azure Blob dataset
Console.WriteLine("Creating dataset " + blobDatasetName + "...");
DatasetResource blobDataset = new DatasetResource(
    new AzureBlobDataset
    {
        LinkedServiceName = new LinkedServiceReference
        {
            ReferenceName = storageLinkedServiceName
        },
        FolderPath = new Expression { Value = "@{dataset().path}" },
        Parameters = new Dictionary<string, ParameterSpecification>
        {
            { "path", new ParameterSpecification { Type = ParameterType.String } }
        }
    }
);
client.Datasets.CreateOrUpdate(
    resourceGroup, dataFactoryName, blobDatasetName, blobDataset);
Console.WriteLine(
    SafeJsonConvert.SerializeObject(blobDataset, client.SerializationSettings));

パイプラインを作成する。Create a pipeline

コピー アクティビティが含まれているパイプラインを作成する次のコードを Main メソッドに追加します。Add the following code to the Main method that creates a pipeline with a copy activity.

この例では、このパイプラインには 1 つのアクティビティが含まれており、2 つのパラメーター (入力 BLOB パスと出力 BLOB パス) を受け取ります。In this example, this pipeline contains one activity and takes two parameters: the input blob path and the output blob path. これらのパラメーターの値は、パイプラインがトリガー/実行されたときに設定されます。The values for these parameters are set when the pipeline is triggered/run. コピー アクティビティは、入力と出力として、前の手順で作成された同じ BLOB データセットを参照します。The copy activity refers to the same blob dataset created in the previous step as input and output. データセットが入力データセットとして使用される場合は、入力パスが指定されます。When the dataset is used as an input dataset, input path is specified. また、データセットが出力データセットとして使用される場合は、出力パスが指定されます。And, when the dataset is used as an output dataset, the output path is specified.

// Create a pipeline with a copy activity
Console.WriteLine("Creating pipeline " + pipelineName + "...");
PipelineResource pipeline = new PipelineResource
{
    Parameters = new Dictionary<string, ParameterSpecification>
    {
        { "inputPath", new ParameterSpecification { Type = ParameterType.String } },
        { "outputPath", new ParameterSpecification { Type = ParameterType.String } }
    },
    Activities = new List<Activity>
    {
        new CopyActivity
        {
            Name = "CopyFromBlobToBlob",
            Inputs = new List<DatasetReference>
            {
                new DatasetReference()
                {
                    ReferenceName = blobDatasetName,
                    Parameters = new Dictionary<string, object>
                    {
                        { "path", "@pipeline().parameters.inputPath" }
                    }
                }
            },
            Outputs = new List<DatasetReference>
            {
                new DatasetReference
                {
                    ReferenceName = blobDatasetName,
                    Parameters = new Dictionary<string, object>
                    {
                        { "path", "@pipeline().parameters.outputPath" }
                    }
                }
            },
            Source = new BlobSource { },
            Sink = new BlobSink { }
        }
    }
};
client.Pipelines.CreateOrUpdate(resourceGroup, dataFactoryName, pipelineName, pipeline);
Console.WriteLine(SafeJsonConvert.SerializeObject(pipeline, client.SerializationSettings));

パイプラインの実行を作成するCreate a pipeline run

パイプラインの実行をトリガーする次のコードを Main メソッドに追加します。Add the following code to the Main method that triggers a pipeline run.

また、このコードは、パイプラインで指定された inputPathoutputPath パラメーターの値を、ソースおよびシンクの BLOB パスの実際の値に設定します。This code also sets values of the inputPath and outputPath parameters specified in the pipeline with the actual values of the source and sink blob paths.

// Create a pipeline run
Console.WriteLine("Creating pipeline run...");
Dictionary<string, object> parameters = new Dictionary<string, object>
{
    { "inputPath", inputBlobPath },
    { "outputPath", outputBlobPath }
};
CreateRunResponse runResponse = client.Pipelines.CreateRunWithHttpMessagesAsync(
    resourceGroup, dataFactoryName, pipelineName, parameters: parameters
).Result.Body;
Console.WriteLine("Pipeline run ID: " + runResponse.RunId);

パイプラインの実行を監視するMonitor a pipeline run

  1. データのコピーが完了するまで状態を継続的にチェックするために、次のコードを Main メソッドに追加します。Add the following code to the Main method to continuously check the status until it finishes copying the data.

    // Monitor the pipeline run
    Console.WriteLine("Checking pipeline run status...");
    PipelineRun pipelineRun;
    while (true)
    {
        pipelineRun = client.PipelineRuns.Get(
            resourceGroup, dataFactoryName, runResponse.RunId);
        Console.WriteLine("Status: " + pipelineRun.Status);
        if (pipelineRun.Status == "InProgress")
            System.Threading.Thread.Sleep(15000);
        else
            break;
    }
    
  2. コピー アクティビティの実行の詳細 (たとえば、読み取りおよび書き込みされたデータのサイズ) を取得する次のコードを Main メソッドに追加します。Add the following code to the Main method that retrieves copy activity run details, such as the size of the data that's read or written.

    // Check the copy activity run details
    Console.WriteLine("Checking copy activity run details...");
    
    RunFilterParameters filterParams = new RunFilterParameters(
        DateTime.UtcNow.AddMinutes(-10), DateTime.UtcNow.AddMinutes(10));
    ActivityRunsQueryResponse queryResponse = client.ActivityRuns.QueryByPipelineRun(
        resourceGroup, dataFactoryName, runResponse.RunId, filterParams);
    if (pipelineRun.Status == "Succeeded")
        Console.WriteLine(queryResponse.Value.First().Output);
    else
        Console.WriteLine(queryResponse.Value.First().Error);
    Console.WriteLine("\nPress any key to exit...");
    Console.ReadKey();
    

コードの実行Run the code

アプリケーションをビルドして起動し、パイプラインの実行を確認します。Build and start the application, then verify the pipeline execution.

コンソールに、データ ファクトリ、リンクされたサービス、データセット、パイプライン、およびパイプラインの実行の作成の進捗状況が表示されます。The console prints the progress of creating data factory, linked service, datasets, pipeline, and pipeline run. その後、パイプラインの実行状態が確認されます。It then checks the pipeline run status. コピー アクティビティの実行の詳細と、読み取りおよび書き込みデータのサイズが表示されるまで待ちます。Wait until you see the copy activity run details with the size of the read/write data. 次に、Azure Storage Explorer などのツールを使用して、変数で指定したように BLOB が "inputBlobPath" から "outputBlobPath" にコピーされていることを確認します。Then use tools such as Azure Storage explorer to check the blob(s) is copied to "outputBlobPath" from "inputBlobPath" as you specified in the variables.

サンプル出力Sample output

Creating data factory SPv2Factory0907...
{
  "identity": {
    "type": "SystemAssigned"
  },
  "location": "East US"
}
Creating linked service AzureStorageLinkedService...
{
  "properties": {
    "type": "AzureStorage",
    "typeProperties": {
      "connectionString": {
        "value": "DefaultEndpointsProtocol=https;AccountName=<storageAccountName>;AccountKey=<storageAccountKey>",
        "type": "SecureString"
      }
    }
  }
}
Creating dataset BlobDataset...
{
  "properties": {
    "type": "AzureBlob",
    "typeProperties": {
      "folderPath": {
        "value": "@{dataset().path}",
        "type": "Expression"
      }
    },
    "linkedServiceName": {
      "referenceName": "AzureStorageLinkedService",
      "type": "LinkedServiceReference"
    },
    "parameters": {
      "path": {
        "type": "String"
      }
    }
  }
}
Creating pipeline Adfv2QuickStartPipeline...
{
  "properties": {
    "activities": [
      {
        "type": "Copy",
        "typeProperties": {
          "source": {
            "type": "BlobSource"
          },
          "sink": {
            "type": "BlobSink"
          }
        },
        "inputs": [
          {
            "referenceName": "BlobDataset",
            "parameters": {
              "path": "@pipeline().parameters.inputPath"
            },
            "type": "DatasetReference"
          }
        ],
        "outputs": [
          {
            "referenceName": "BlobDataset",
            "parameters": {
              "path": "@pipeline().parameters.outputPath"
            },
            "type": "DatasetReference"
          }
        ],
        "name": "CopyFromBlobToBlob"
      }
    ],
    "parameters": {
      "inputPath": {
        "type": "String"
      },
      "outputPath": {
        "type": "String"
      }
    }
  }
}
Creating pipeline run...
Pipeline run ID: 308d222d-3858-48b1-9e66-acd921feaa09
Checking pipeline run status...
Status: InProgress
Status: InProgress
Checking copy activity run details...
{
    "dataRead": 331452208,
    "dataWritten": 331452208,
    "copyDuration": 23,
    "throughput": 14073.209,
    "errors": [],
    "effectiveIntegrationRuntime": "DefaultIntegrationRuntime (West US)",
    "usedDataIntegrationUnits": 2,
    "billedDuration": 23
}

Press any key to exit...

出力を検証するVerify the output

このパイプラインは、adftutorial BLOB コンテナーに対して output フォルダーを自動的に作成します。The pipeline automatically creates the output folder in the adftutorial blob container. そのうえで、input フォルダーから output フォルダーに emp.txt ファイルをコピーします。Then, it copies the emp.txt file from the input folder to the output folder.

  1. Azure portal で、前の「BLOB コンテナーの入力フォルダーとファイルを追加する」セクションで見た adftutorial コンテナー ページの [最新の情報に更新] を選択し、output フォルダーを確認します。In the Azure portal, on the adftutorial container page that you stopped at in the Add an input folder and file for the blob container section above, select Refresh to see the output folder.
  2. フォルダー一覧で、 [output] を選択します。In the folder list, select output.
  3. emp.txt が output フォルダーにコピーされていることを確認します。Confirm that the emp.txt is copied to the output folder.

リソースのクリーンアップClean up resources

プログラムによってデータ ファクトリを削除するには、次のコード行をプログラムに追加します。To programmatically delete the data factory, add the following lines of code to the program:

Console.WriteLine("Deleting the data factory");
client.Factories.Delete(resourceGroup, dataFactoryName);

次の手順Next steps

このサンプルのパイプラインは、Azure BLOB ストレージ内のある場所から別の場所にデータをコピーするものです。The pipeline in this sample copies data from one location to another location in an Azure blob storage. より多くのシナリオで Data Factory を使用する方法については、チュートリアルを参照してください。Go through the tutorials to learn about using Data Factory in more scenarios.