チュートリアル:データを移動する Data Factory パイプラインを Azure PowerShell で作成するTutorial: Create a Data Factory pipeline that moves data by using Azure PowerShell

注意

この記事は、Data Factory のバージョン 1 に適用されます。This article applies to version 1 of Data Factory. 現在のバージョンの Data Factory サービスを使用している場合は、コピー アクティビティのチュートリアルに関するページを参照してください。If you are using the current version of the Data Factory service, see copy activity tutorial.

この記事では、PowerShell を使用して Azure Blob Storage から Azure SQL データベースにデータをコピーするパイプラインを備えたデータ ファクトリを作成します。In this article, you learn how to use PowerShell to create a data factory with a pipeline that copies data from an Azure blob storage to an Azure SQL database. Azure Data Factory の使用経験がない場合は、このチュートリアルを実行する前に、「Azure Data Factory の概要」を参照してください。If you are new to Azure Data Factory, read through the Introduction to Azure Data Factory article before doing this tutorial.

このチュートリアルでは、1 つのアクティビティ (コピー アクティビティ) が含まれたパイプラインを作成します。In this tutorial, you create a pipeline with one activity in it: Copy Activity. コピー アクティビティは、サポートされているデータ ストアからサポートされているシンク データ ストアにデータをコピーします。The copy activity copies data from a supported data store to a supported sink data store. ソースおよびシンクとしてサポートされているデータ ストアの一覧については、サポートされているデータ ストアに関するセクションを参照してください。For a list of data stores supported as sources and sinks, see supported data stores. このアクティビティは、安全で信頼性の高いスケーラブルな方法によってさまざまなデータ ストア間でデータをコピーできる、グローバルに利用可能なサービスによって動作します。The activity is powered by a globally available service that can copy data between various data stores in a secure, reliable, and scalable way. コピー アクティビティの詳細については、データ移動アクティビティに関する記事を参照してください。For more information about the Copy Activity, see Data Movement Activities.

1 つのパイプラインには複数のアクティビティを含めることができます。A pipeline can have more than one activity. また、1 つのアクティビティの出力データセットを別のアクティビティの入力データセットとして指定することで、2 つのアクティビティを連鎖させる (アクティビティを連続的に実行する) ことができます。And, you can chain two activities (run one activity after another) by setting the output dataset of one activity as the input dataset of the other activity. 詳細については、「パイプライン内の複数アクティビティ」を参照してください。For more information, see multiple activities in a pipeline.

注意

この記事では、すべての Data Factory コマンドレットを取り上げているわけではありません。This article does not cover all the Data Factory cmdlets. これらのコマンドレットに関する包括的なドキュメントについては、Data Factory コマンドレット リファレンスを参照してください。See Data Factory Cmdlet Reference for comprehensive documentation on these cmdlets.

このチュートリアルのデータ パイプラインでは、ソース データ ストアからターゲット データ ストアにデータをコピーします。The data pipeline in this tutorial copies data from a source data store to a destination data store. Azure Data Factory を使用してデータを変換する方法のチュートリアルについては、Hadoop クラスターを使用してデータを変換するパイプラインを作成する方法のチュートリアルを参照してください。For a tutorial on how to transform data using Azure Data Factory, see Tutorial: Build a pipeline to transform data using Hadoop cluster.

前提条件Prerequisites

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

手順Steps

このチュートリアルの一部として実行する手順を次に示します。Here are the steps you perform as part of this tutorial:

  1. Azure データ ファクトリを作成します。Create an Azure data factory. この手順では、ADFTutorialDataFactoryPSH という名前のデータ ファクトリを作成します。In this step, you create a data factory named ADFTutorialDataFactoryPSH.

  2. リンクされたサービスをデータ ファクトリに作成します。Create linked services in the data factory. この手順では、2 つのリンクされたサービスを作成します (タイプ: Azure Storage、Azure SQL Database)。In this step, you create two linked services of types: Azure Storage and Azure SQL Database.

    AzureStorageLinkedService は、Azure ストレージ アカウントをデータ ファクトリにリンクします。The AzureStorageLinkedService links your Azure storage account to the data factory. 前提条件の一部として、コンテナーを作成し、データをこのストレージ アカウントにアップロードしました。You created a container and uploaded data to this storage account as part of prerequisites.

    AzureSqlLinkedService は、Azure SQL データベースをデータ ファクトリにリンクします。AzureSqlLinkedService links your Azure SQL database to the data factory. Blob Storage からコピーされたデータは、このデータベースに格納されます。The data that is copied from the blob storage is stored in this database. 前提条件の一部として、このデータベースに SQL テーブルを作成しました。You created a SQL table in this database as part of prerequisites.

  3. 入力および出力データセットをデータ ファクトリに作成します。Create input and output datasets in the data factory.

    Azure Storage のリンクされたサービスは、Data Factory サービスが実行時に Azure ストレージ アカウントへの接続に使用する接続文字列を指定します。The Azure storage linked service specifies the connection string that Data Factory service uses at run time to connect to your Azure storage account. また、入力 BLOB データセットは、コンテナーと、入力データが含まれているフォルダーを指定します。And, the input blob dataset specifies the container and the folder that contains the input data.

    同様に、Azure SQL Database のリンクされたサービスは、Data Factory サービスが実行時に Azure SQL データベースへの接続に使用する接続文字列を指定します。Similarly, the Azure SQL Database linked service specifies the connection string that Data Factory service uses at run time to connect to your Azure SQL database. 出力 SQL テーブル データセットは、BLOB ストレージのデータのコピー先となるデータベース内のテーブルを指定します。And, the output SQL table dataset specifies the table in the database to which the data from the blob storage is copied.

  4. データ ファクトリにパイプラインを作成します。Create a pipeline in the data factory. この手順では、コピー アクティビティのあるパイプラインを作成します。In this step, you create a pipeline with a copy activity.

    コピー アクティビティでは、Azure Blob Storage の BLOB から Azure SQL データベースのテーブルにデータをコピーします。The copy activity copies data from a blob in the Azure blob storage to a table in the Azure SQL database. パイプラインでコピー アクティビティを使用して、任意のサポートされているソースから任意のサポートされているターゲットにデータをコピーできます。You can use a copy activity in a pipeline to copy data from any supported source to any supported destination. サポートされているデータ ストアの一覧については、データ移動アクティビティに関する記事を参照してください。For a list of supported data stores, see data movement activities article.

  5. パイプラインを監視します。Monitor the pipeline. この手順では、PowerShell を使用して、入力および出力データセットのスライスを監視します。In this step, you monitor the slices of input and output datasets by using PowerShell.

Data Factory の作成Create a data factory

重要

チュートリアルの前提条件を完了します (まだ完了していない場合)。Complete prerequisites for the tutorial if you haven't already done so.

データ ファクトリは、1 つまたは複数のパイプラインを持つことができます。A data factory can have one or more pipelines. パイプラインには、1 つまたは複数のアクティビティを含めることができます。A pipeline can have one or more activities in it. たとえば、コピー元からコピー先のデータ ストアにデータをコピーするコピー アクティビティや、Hive スクリプトを実行し、入力データを変換して出力データを生成する HDInsight Hive アクティビティなどを含めることができます。For example, a Copy Activity to copy data from a source to a destination data store and a HDInsight Hive activity to run a Hive script to transform input data to product output data. それでは、この手順でデータ ファクトリの作成から始めましょう。Let's start with creating the data factory in this step.

  1. PowerShellを起動します。Launch PowerShell. Azure PowerShell は、このチュートリアルが終わるまで開いたままにしておいてください。Keep Azure PowerShell open until the end of this tutorial. Azure PowerShell を閉じて再度開いた場合は、これらのコマンドをもう一度実行する必要があります。If you close and reopen, you need to run the commands again.

    次のコマンドを実行して、Azure Portal へのサインインに使用するユーザー名とパスワードを入力します。Run the following command, and enter the user name and password that you use to sign in to the Azure portal:

    Connect-AzAccount
    

    次のコマンドを実行して、このアカウントのすべてのサブスクリプションを表示します。Run the following command to view all the subscriptions for this account:

    Get-AzSubscription
    

    次のコマンドを実行して、使用するサブスクリプションを選択します。Run the following command to select the subscription that you want to work with. <NameOfAzureSubscription> を自分の Azure サブスクリプションの名前で置き換えます。Replace <NameOfAzureSubscription> with the name of your Azure subscription:

    Get-AzSubscription -SubscriptionName <NameOfAzureSubscription> | Set-AzContext
    
  2. 次のコマンドを実行して、 ADFTutorialResourceGroup という名前の Azure リソース グループを作成します。Create an Azure resource group named ADFTutorialResourceGroup by running the following command:

    New-AzResourceGroup -Name ADFTutorialResourceGroup  -Location "West US"
    

    このチュートリアルの一部の手順は、 ADFTutorialResourceGroupという名前のリソース グループを使用することを前提としています。Some of the steps in this tutorial assume that you use the resource group named ADFTutorialResourceGroup. 異なるリソース グループを使用する場合は、このチュートリアルで ADFTutorialResourceGroup の代わりにそのリソース グループを使用する必要があります。If you use a different resource group, you need to use it in place of ADFTutorialResourceGroup in this tutorial.

  3. New-AzDataFactory コマンドレットを実行し、ADFTutorialDataFactoryPSH という名前のデータ ファクトリを作成します。Run the New-AzDataFactory cmdlet to create a data factory named ADFTutorialDataFactoryPSH:

    $df=New-AzDataFactory -ResourceGroupName ADFTutorialResourceGroup -Name ADFTutorialDataFactoryPSH –Location "West US"
    

    この名前は既に取得されている可能性があります。This name may already have been taken. そのため、プレフィックスまたはサフィックスを追加してデータ ファクトリの名前を一意にしたうえで (たとえば、ADFTutorialDataFactoryPSH05152017)、再度コマンドを実行します。Therefore, make the name of the data factory unique by adding a prefix or suffix (for example: ADFTutorialDataFactoryPSH05152017) and run the command again.

以下の点に注意してください。Note the following points:

  • Azure Data Factory の名前はグローバルに一意にする必要があります。The name of the Azure data factory must be globally unique. 次のエラーが表示される場合は、名前を変更します (yournameADFTutorialDataFactoryPSH など)。If you receive the following error, change the name (for example, yournameADFTutorialDataFactoryPSH). このチュートリアルの手順の実行中に、この名前を ADFTutorialFactoryPSH の代わりに使用します。Use this name in place of ADFTutorialFactoryPSH while performing steps in this tutorial. Data Factory アーティファクトについては、Data Factory - 名前付け規則に関するトピックを参照してください。See Data Factory - Naming Rules for Data Factory artifacts.

    Data factory name “ADFTutorialDataFactoryPSH” is not available
    
  • Data Factory インスタンスを作成するには、Azure サブスクリプションの共同作成者または管理者である必要があります。To create Data Factory instances, you must be a contributor or administrator of the Azure subscription.

  • データ ファクトリの名前は今後、DNS 名として登録される可能性があるため、一般ユーザーに表示される場合があります。The name of the data factory may be registered as a DNS name in the future, and hence become publicly visible.

  • 次のエラーが表示される場合があります。"This subscription is not registered to use namespace Microsoft.DataFactory (このサブスクリプションは、名前空間 Microsoft.DataFactory を使用するように登録されていません) "You may receive the following error: "This subscription is not registered to use namespace Microsoft.DataFactory." 次のいずれかを実行し、もう一度発行してみてください。Do one of the following, and try publishing again:

    • Azure PowerShell で次のコマンドを実行して、Data Factory プロバイダーを登録します。In Azure PowerShell, run the following command to register the Data Factory provider:

      Register-AzResourceProvider -ProviderNamespace Microsoft.DataFactory
      

      Data Factory プロバイダーが登録されたことを確認するには、次のコマンドを実行します。Run the following command to confirm that the Data Factory provider is registered:

      Get-AzResourceProvider
      
    • Azure サブスクリプションを使用して、Azure Portal にサインインします。Sign in by using the Azure subscription to the Azure portal. Data Factory のブレードに移動するか、Azure Portal でデータ ファクトリを作成します。Go to a Data Factory blade, or create a data factory in the Azure portal. この操作によって、プロバイダーが自動的に登録されます。This action automatically registers the provider for you.

リンクされたサービスを作成しますCreate linked services

データ ストアおよびコンピューティング サービスをデータ ファクトリにリンクするには、リンクされたサービスをデータ ファクトリに作成します。You create linked services in a data factory to link your data stores and compute services to the data factory. このチュートリアルでは、Azure HDInsight、Azure Data Lake Analytics などのコンピューティング サービスを使用しません。In this tutorial, you don't use any compute service such as Azure HDInsight or Azure Data Lake Analytics. ここでは、Azure Storage (ソース) と Azure SQL Database (ターゲット) の 2 種類のデータ ストアを使用します。You use two data stores of type Azure Storage (source) and Azure SQL Database (destination).

したがって、AzureStorageLinkedService と AzureSqlLinkedService という名前の 2 つのリンクされたサービスを作成します (タイプ: AzureStorage、AzureSqlDatabase)。Therefore, you create two linked services named AzureStorageLinkedService and AzureSqlLinkedService of types: AzureStorage and AzureSqlDatabase.

AzureStorageLinkedService は、Azure ストレージ アカウントをデータ ファクトリにリンクします。The AzureStorageLinkedService links your Azure storage account to the data factory. このストレージ アカウントは、前提条件の一部としてコンテナーを作成し、データをアップロードしたストレージ アカウントです。This storage account is the one in which you created a container and uploaded the data as part of prerequisites.

AzureSqlLinkedService は、Azure SQL データベースをデータ ファクトリにリンクします。AzureSqlLinkedService links your Azure SQL database to the data factory. Blob Storage からコピーされたデータは、このデータベースに格納されます。The data that is copied from the blob storage is stored in this database. 前提条件の一部として、このデータベースに emp テーブルを作成しました。You created the emp table in this database as part of prerequisites.

Azure ストレージ アカウント用にリンクされたサービスを作成するCreate a linked service for an Azure storage account

この手順では、Azure ストレージ アカウントをデータ ファクトリにリンクします。In this step, you link your Azure storage account to your data factory.

  1. 以下の内容を記述した AzureStorageLinkedService.json という名前の JSON ファイルを C:\ADFGetStartedPSH フォルダー内に作成します。(ADFGetStartedPSH フォルダーがない場合は作成します)。Create a JSON file named AzureStorageLinkedService.json in C:\ADFGetStartedPSH folder with the following content: (Create the folder ADFGetStartedPSH if it does not already exist.)

    重要

    ファイルを保存する前に、<accountname> と <accountkey> を Azure ストレージ アカウントの名前とキーに置き換えます。Replace <accountname> and <accountkey> with name and key of your Azure storage account before saving the file.

    {
        "name": "AzureStorageLinkedService",
        "properties": {
            "type": "AzureStorage",
            "typeProperties": {
                "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
            }
        }
     }
    
  2. Azure PowerShellADFGetStartedPSH フォルダーに切り替えます。In Azure PowerShell, switch to the ADFGetStartedPSH folder.

  3. New-AzDataFactoryLinkedService コマンドレットを実行して、リンクされたサービスを作成します。AzureStorageLinkedService を作成します。Run the New-AzDataFactoryLinkedService cmdlet to create the linked service: AzureStorageLinkedService. このコマンドレットと、このチュートリアルで使用する他の Data Factory コマンドレットでは、ResourceGroupName パラメーターと DataFactoryName パラメーターの値を渡す必要があります。This cmdlet, and other Data Factory cmdlets you use in this tutorial requires you to pass values for the ResourceGroupName and DataFactoryName parameters. または、コマンドレットを実行するたびに ResourceGroupName と DataFactoryName を入力することなく、New-AzDataFactory コマンドレットから返された DataFactory オブジェクトを渡すことができます。Alternatively, you can pass the DataFactory object returned by the New-AzDataFactory cmdlet without typing ResourceGroupName and DataFactoryName each time you run a cmdlet.

    New-AzDataFactoryLinkedService $df -File .\AzureStorageLinkedService.json
    

    出力例を次に示します。Here is the sample output:

    LinkedServiceName : AzureStorageLinkedService
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    Properties        : Microsoft.Azure.Management.DataFactories.Models.LinkedServiceProperties
    ProvisioningState : Succeeded
    

    このリンクされたサービスを作成する別の方法として、DataFactory オブジェクトを指定する代わりに、リソース グループ名とデータ ファクトリ名を指定します。Other way of creating this linked service is to specify resource group name and data factory name instead of specifying the DataFactory object.

    New-AzDataFactoryLinkedService -ResourceGroupName ADFTutorialResourceGroup -DataFactoryName <Name of your data factory> -File .\AzureStorageLinkedService.json
    

Azure SQL データベース用にリンクされたサービスを作成するCreate a linked service for an Azure SQL database

この手順では、Azure SQL データベースをデータ ファクトリにリンクします。In this step, you link your Azure SQL database to your data factory.

  1. 以下の内容を記述した AzureSqlLinkedService.json という名前の JSON ファイルを C:\ADFGetStartedPSH フォルダー内に作成します。Create a JSON file named AzureSqlLinkedService.json in C:\ADFGetStartedPSH folder with the following content:

    重要

    <servername>、<databasename>、<username@servername&gt;、&lt;password&gt; を、Azure SQL のサーバー名、データベース名、ユーザー アカウント、パスワードに置き換えます。Replace <servername>, <databasename>, <username@servername&gt;, and <password> with names of your Azure SQL server, database, user account, and password.

    {
        "name": "AzureSqlLinkedService",
        "properties": {
            "type": "AzureSqlDatabase",
            "typeProperties": {
                "connectionString": "Server=tcp:<server>.database.windows.net,1433;Database=<databasename>;User ID=<user>@<server>;Password=<password>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30"
            }
        }
     }
    
  2. 次のコマンドを実行して、リンクされたサービスを作成します。Run the following command to create a linked service:

    New-AzDataFactoryLinkedService $df -File .\AzureSqlLinkedService.json
    

    出力例を次に示します。Here is the sample output:

    LinkedServiceName : AzureSqlLinkedService
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    Properties        : Microsoft.Azure.Management.DataFactories.Models.LinkedServiceProperties
    ProvisioningState : Succeeded
    

    SQL データベース サーバーで [Azure サービスへのアクセスを許可] の設定がオンになっていることを確認します。Confirm that Allow access to Azure services setting is turned on for your SQL database server. この設定を確認してオンにするには、次の手順を実行します。To verify and turn it on, do the following steps:

    1. Azure ポータルLog in to the Azure portal
    2. 左側にある [その他のサービス] をクリックし、 [データベース] カテゴリの [SQL servers](SQL サーバー) をクリックします。Click More services > on the left, and click SQL servers in the DATABASES category.
    3. SQL サーバーの一覧で、目的のサーバーを選択します。Select your server in the list of SQL servers.
    4. SQL サーバーのブレードで、 [ファイアウォール設定の表示] リンクをクリックします。On the SQL server blade, click Show firewall settings link.
    5. [ファイアウォールの設定] ブレードの [Azure サービスへのアクセスを許可する][オン] をクリックします。In the Firewall settings blade, click ON for Allow access to Azure services.
    6. ツール バーの [保存] をクリックします。Click Save on the toolbar.

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

前の手順では、Azure ストレージ アカウントと Azure SQL データベースをデータ ファクトリにリンクするためのリンクされたサービスを作成しました。In the previous step, you created linked services to link your Azure Storage account and Azure SQL database to your data factory. この手順では、InputDataset と OutputDataset という名前の 2 つのデータセットを定義します。これらはそれぞれ、AzureStorageLinkedService と AzureSqlLinkedService が参照するデータ ストアに格納されている入力データと出力データを表します。In this step, you define two datasets named InputDataset and OutputDataset that represent input and output data that is stored in the data stores referred by AzureStorageLinkedService and AzureSqlLinkedService respectively.

Azure Storage のリンクされたサービスは、Data Factory サービスが実行時に Azure ストレージ アカウントへの接続に使用する接続文字列を指定します。The Azure storage linked service specifies the connection string that Data Factory service uses at run time to connect to your Azure storage account. また、入力 BLOB データセット (InputDataset) は、コンテナーと、入力データが含まれているフォルダーを指定します。And, the input blob dataset (InputDataset) specifies the container and the folder that contains the input data.

同様に、Azure SQL Database のリンクされたサービスは、Data Factory サービスが実行時に Azure SQL データベースへの接続に使用する接続文字列を指定します。Similarly, the Azure SQL Database linked service specifies the connection string that Data Factory service uses at run time to connect to your Azure SQL database. 出力 SQL テーブル データセット (OututDataset) は、BLOB ストレージのデータのコピー先となるデータベース内のテーブルを指定します。And, the output SQL table dataset (OututDataset) specifies the table in the database to which the data from the blob storage is copied.

入力データセットの作成Create an input dataset

この手順では、BLOB ファイル (emp.txt) を参照する InputDataset という名前のデータセットを作成します。このファイルは、リンクされたサービス AzureStorageLinkedService が表す Azure Storage 内の BLOB コンテナー (adftutorial) のルート フォルダーにあります。In this step, you create a dataset named InputDataset that points to a blob file (emp.txt) in the root folder of a blob container (adftutorial) in the Azure Storage represented by the AzureStorageLinkedService linked service. fileName の値を指定しなかった場合やこれをスキップした場合、入力フォルダー内のすべての BLOB のデータがターゲットにコピーされます。If you don't specify a value for the fileName (or skip it), data from all blobs in the input folder are copied to the destination. このチュートリアルでは、fileName の値を指定します。In this tutorial, you specify a value for the fileName.

  1. 以下の内容を記述した InputDataset.json という名前の JSON ファイルを C:\ADFGetStartedPSH フォルダー内に作成します。Create a JSON file named InputDataset.json in the C:\ADFGetStartedPSH folder, with the following content:

    {
        "name": "InputDataset",
        "properties": {
            "structure": [
                {
                    "name": "FirstName",
                    "type": "String"
                },
                {
                    "name": "LastName",
                    "type": "String"
                }
            ],
            "type": "AzureBlob",
            "linkedServiceName": "AzureStorageLinkedService",
            "typeProperties": {
                "fileName": "emp.txt",
                "folderPath": "adftutorial/",
                "format": {
                    "type": "TextFormat",
                    "columnDelimiter": ","
                }
            },
            "external": true,
            "availability": {
                "frequency": "Hour",
                "interval": 1
            }
        }
     }
    

    次の表に、このスニペットで使用される JSON プロパティの説明を示します。The following table provides descriptions for the JSON properties used in the snippet:

    プロパティProperty 説明Description
    typetype データは Azure Blob Storage に存在するため、type プロパティを AzureBlob に設定しています。The type property is set to AzureBlob because data resides in an Azure blob storage.
    linkedServiceNamelinkedServiceName 前に作成した AzureStorageLinkedService を参照します。Refers to the AzureStorageLinkedService that you created earlier.
    folderPathfolderPath BLOB コンテナーと、入力 BLOB を格納するフォルダーを指定します。Specifies the blob container and the folder that contains input blobs. このチュートリアルでは、adftutorial は BLOB コンテナーで、フォルダーはルート フォルダーです。In this tutorial, adftutorial is the blob container and folder is the root folder.
    fileNamefileName このプロパティは省略可能です。This property is optional. このプロパティを省略した場合は、folderPath のすべてのファイルが取得されます。If you omit this property, all files from the folderPath are picked. このチュートリアルでは fileName に emp.txt が指定されているため、このファイルのみが処理のために取得されます。In this tutorial, emp.txt is specified for the fileName, so only that file is picked up for processing.
    format -> typeformat -> type 入力ファイルはテキスト形式のため、TextFormat を使用します。The input file is in the text format, so we use TextFormat.
    columnDelimitercolumnDelimiter 入力ファイル内の列はコンマ (,) で区切られています。The columns in the input file are delimited by comma character (,).
    frequency/intervalfrequency/interval frequency を Hour に設定し、interval を 1 に設定しています。つまり、1 時間ごとに入力スライスが取得されます。The frequency is set to Hour and interval is set to 1, which means that the input slices are available hourly. 言い換えると、Data Factory サービスは、指定された BLOB コンテナー (adftutorial) のルート フォルダーにある入力データを 1 時間ごとに検索します。In other words, the Data Factory service looks for input data every hour in the root folder of blob container (adftutorial) you specified. パイプラインの開始時刻の前または終了時刻の後ではなく、開始時刻と終了時刻の間のデータが検索されます。It looks for the data within the pipeline start and end times, not before or after these times.
    externalexternal このパイプラインによってデータが生成されない場合は、このプロパティを true に設定します。This property is set to true if the data is not generated by this pipeline. このチュートリアルの入力データは emp.txt ファイルに存在し、このパイプラインで生成されるわけではないため、このプロパティを true に設定します。The input data in this tutorial is in the emp.txt file, which is not generated by this pipeline, so we set this property to true.

    これらの JSON プロパティの詳細については、Azure BLOB コネクタに関する記事を参照してください。For more information about these JSON properties, see Azure Blob connector article.

  2. 次のコマンドを実行して、Data Factory データセットを作成します。Run the following command to create the Data Factory dataset.

    New-AzDataFactoryDataset $df -File .\InputDataset.json
    

    出力例を次に示します。Here is the sample output:

    DatasetName       : InputDataset
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    Availability      : Microsoft.Azure.Management.DataFactories.Common.Models.Availability
    Location          : Microsoft.Azure.Management.DataFactories.Models.AzureBlobDataset
    Policy            : Microsoft.Azure.Management.DataFactories.Common.Models.Policy
    Structure         : {FirstName, LastName}
    Properties        : Microsoft.Azure.Management.DataFactories.Models.DatasetProperties
    ProvisioningState : Succeeded
    

出力データセットの作成Create an output dataset

手順のこの部分では、 OutputDatasetという名前の出力データセットを作成します。In this part of the step, you create an output dataset named OutputDataset. このデータセットは、 AzureSqlLinkedServiceで表される Azure SQL データベース内の SQL テーブルをポイントします。This dataset points to a SQL table in the Azure SQL database represented by AzureSqlLinkedService.

  1. 以下の内容を記述した OutputDataset.json という名前の JSON ファイルを C:\ADFGetStartedPSH フォルダー内に作成します。Create a JSON file named OutputDataset.json in the C:\ADFGetStartedPSH folder with the following content:

    {
        "name": "OutputDataset",
        "properties": {
            "structure": [
                {
                    "name": "FirstName",
                    "type": "String"
                },
                {
                    "name": "LastName",
                    "type": "String"
                }
            ],
            "type": "AzureSqlTable",
            "linkedServiceName": "AzureSqlLinkedService",
            "typeProperties": {
                "tableName": "emp"
            },
            "availability": {
                "frequency": "Hour",
                "interval": 1
            }
        }
    }
    

    次の表に、このスニペットで使用される JSON プロパティの説明を示します。The following table provides descriptions for the JSON properties used in the snippet:

    プロパティProperty 説明Description
    typetype type プロパティを AzureSqlTable に設定します。これは、データを Azure SQL データベースのテーブルにコピーするためです。The type property is set to AzureSqlTable because data is copied to a table in an Azure SQL database.
    linkedServiceNamelinkedServiceName 前に作成した AzureSqlLinkedService を参照します。Refers to the AzureSqlLinkedService that you created earlier.
    tableNametableName データのコピー先となるテーブルを指定します。Specified the table to which the data is copied.
    frequency/intervalfrequency/interval frequency は Hour、interval は 1 に、それぞれ設定されています。これは、出力スライスがパイプラインの開始時刻から終了時刻までの間 1 時間ごとに生成されることを表します (出力スライスは、開始時刻の前および終了時刻の後には生成されません)。The frequency is set to Hour and interval is 1, which means that the output slices are produced hourly between the pipeline start and end times, not before or after these times.

    データベース内の emp テーブルには、IDFirstNameLastName の 3 つの列があります。There are three columns – ID, FirstName, and LastName – in the emp table in the database. ID は ID 列であるため、ここで指定する必要があるのは FirstNameLastName のみです。ID is an identity column, so you need to specify only FirstName and LastName here.

    これらの JSON プロパティの詳細については、Azure SQL コネクタに関する記事を参照してください。For more information about these JSON properties, see Azure SQL connector article.

  2. 次のコマンドを実行して、データ ファクトリ データセットを作成します。Run the following command to create the data factory dataset.

    New-AzDataFactoryDataset $df -File .\OutputDataset.json
    

    出力例を次に示します。Here is the sample output:

    DatasetName       : OutputDataset
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    Availability      : Microsoft.Azure.Management.DataFactories.Common.Models.Availability
    Location          : Microsoft.Azure.Management.DataFactories.Models.AzureSqlTableDataset
    Policy            :
    Structure         : {FirstName, LastName}
    Properties        : Microsoft.Azure.Management.DataFactories.Models.DatasetProperties
    ProvisioningState : Succeeded
    

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

この手順では、InputDataset を入力、OutputDataset を出力として使用するコピー アクティビティを備えたパイプラインを作成します。In this step, you create a pipeline with a copy activity that uses InputDataset as an input and OutputDataset as an output.

現在、スケジュールは出力データセットによって開始されます。Currently, output dataset is what drives the schedule. このチュートリアルでは、1 時間ごとにスライスを生成するように出力データセットを構成します。In this tutorial, output dataset is configured to produce a slice once an hour. パイプラインの開始時刻と終了時刻の差は 1 日 (24 時間) です。The pipeline has a start time and end time that are one day apart, which is 24 hours. したがって、24 個の出力データセットのスライスがパイプラインによって生成されます。Therefore, 24 slices of output dataset are produced by the pipeline.

  1. 以下の内容を記述した ADFTutorialPipeline.json という名前の JSON ファイルを C:\ADFGetStartedPSH フォルダー内に作成します。Create a JSON file named ADFTutorialPipeline.json in the C:\ADFGetStartedPSH folder, with the following content:

    {
      "name": "ADFTutorialPipeline",
      "properties": {
        "description": "Copy data from a blob to Azure SQL table",
        "activities": [
          {
            "name": "CopyFromBlobToSQL",
            "type": "Copy",
            "inputs": [
              {
                "name": "InputDataset"
              }
            ],
            "outputs": [
              {
                "name": "OutputDataset"
              }
            ],
            "typeProperties": {
              "source": {
                "type": "BlobSource"
              },
              "sink": {
                "type": "SqlSink",
                "writeBatchSize": 10000,
                "writeBatchTimeout": "60:00:00"
              }
            },
            "Policy": {
              "concurrency": 1,
              "executionPriorityOrder": "NewestFirst",
              "retry": 0,
              "timeout": "01:00:00"
            }
          }
        ],
        "start": "2017-05-11T00:00:00Z",
        "end": "2017-05-12T00:00:00Z"
      }
    } 
    

    以下の点に注意してください。Note the following points:

    • activities セクションに、typeCopy に設定されたアクティビティが 1 つだけあります。In the activities section, there is only one activity whose type is set to Copy. コピー アクティビティの詳細については、データ移動アクティビティに関する記事を参照してください。For more information about the copy activity, see data movement activities. Data Factory ソリューションでは、データ変換アクティビティを使用することもできます。In Data Factory solutions, you can also use data transformation activities.

    • アクティビティの入力を InputDataset に設定し、出力を OutputDataset に設定します。Input for the activity is set to InputDataset and output for the activity is set to OutputDataset.

    • typeProperties セクションでは、ソースの種類として BlobSource が指定され、シンクの種類として SqlSink が指定されています。In the typeProperties section, BlobSource is specified as the source type and SqlSink is specified as the sink type. コピー アクティビティでソースおよびシンクとしてサポートされているデータ ストアの完全な一覧については、サポートされるデータ ストアに関するセクションを参照してください。For a complete list of data stores supported by the copy activity as sources and sinks, see supported data stores. サポートされているデータ ストアをソースおよびシンクとして使用する方法については、表内のリンクをクリックしてください。To learn how to use a specific supported data store as a source/sink, click the link in the table.

      start プロパティの値を現在の日付に置き換え、end プロパティの値を翌日の日付に置き換えます。Replace the value of the start property with the current day and end value with the next day. 日付の部分のみを指定し、時刻の部分をスキップすることもできます。You can specify only the date part and skip the time part of the date time. たとえば、"2016-02-03" と "2016-02-03T00:00:00Z" は同じです。For example, "2016-02-03", which is equivalent to "2016-02-03T00:00:00Z"

      start と end の日時は、いずれも ISO 形式である必要があります。Both start and end datetimes must be in ISO format. 例: 2016-10-14T16:32:41Z。For example: 2016-10-14T16:32:41Z. end の時刻は省略可能ですが、このチュートリアルでは使用します。The end time is optional, but we use it in this tutorial.

      end プロパティの値を指定しない場合、"start + 48 時間" として計算されます。If you do not specify value for the end property, it is calculated as "start + 48 hours". パイプラインを無期限に実行する場合は、9999-09-09end プロパティの値として指定します。To run the pipeline indefinitely, specify 9999-09-09 as the value for the end property.

      前の例では、各データ スライスが 1 時間ごとに生成されるため、データ スライスは 24 個になります。In the preceding example, there are 24 data slices as each data slice is produced hourly.

      パイプライン定義内の JSON プロパティの説明については、パイプラインの作成に関する記事を参照してください。For descriptions of JSON properties in a pipeline definition, see create pipelines article. コピー アクティビティ定義内の JSON プロパティの説明については、データ移動アクティビティに関する記事を参照してください。For descriptions of JSON properties in a copy activity definition, see data movement activities. BlobSource でサポートされる JSON プロパティの説明については、Azure BLOB コネクタに関する記事を参照してください。For descriptions of JSON properties supported by BlobSource, see Azure Blob connector article. SqlSink でサポートされる JSON プロパティの説明については、Azure SQL Database コネクタに関する記事を参照してください。For descriptions of JSON properties supported by SqlSink, see Azure SQL Database connector article.

  2. 次のコマンドを実行して、データ ファクトリ テーブルを作成します。Run the following command to create the data factory table.

    New-AzDataFactoryPipeline $df -File .\ADFTutorialPipeline.json
    

    出力例を次に示します。Here is the sample output:

    PipelineName      : ADFTutorialPipeline
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    Properties        : Microsoft.Azure.Management.DataFactories.Models.PipelinePropertie
    ProvisioningState : Succeeded
    

お疲れさまでした。Congratulations! Azure Blob Storage から Azure SQL データベースにデータをコピーするパイプラインを備えた Azure データ ファクトリが正常に作成されました。You have successfully created an Azure data factory with a pipeline to copy data from an Azure blob storage to an Azure SQL database.

パイプラインの監視Monitor the pipeline

この手順では、Azure PowerShell を使用して、Azure データ ファクトリの状況を監視します。In this step, you use Azure PowerShell to monitor what’s going on in an Azure data factory.

  1. <DataFactoryName> をデータ ファクトリの名前で置き換え、Get-AzDataFactory を実行してその出力を $df 変数に割り当てます。Replace <DataFactoryName> with the name of your data factory and run Get-AzDataFactory, and assign the output to a variable $df.

    $df=Get-AzDataFactory -ResourceGroupName ADFTutorialResourceGroup -Name <DataFactoryName>
    

    例:For example:

    $df=Get-AzDataFactory -ResourceGroupName ADFTutorialResourceGroup -Name ADFTutorialDataFactoryPSH0516
    

    次に、$df の内容を表示して次の出力を確認します。Then, run print the contents of $df to see the following output:

    PS C:\ADFGetStartedPSH> $df
    
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    DataFactoryId     : 6f194b34-03b3-49ab-8f03-9f8a7b9d3e30
    ResourceGroupName : ADFTutorialResourceGroup
    Location          : West US
    Tags              : {}
    Properties        : Microsoft.Azure.Management.DataFactories.Models.DataFactoryProperties
    ProvisioningState : Succeeded
    
  2. Get-AzDataFactorySlice を実行し、OutputDataset のすべてのスライスの詳細を表示します。これは、パイプラインの出力データセットです。Run Get-AzDataFactorySlice to get details about all slices of the OutputDataset, which is the output dataset of the pipeline.

    Get-AzDataFactorySlice $df -DatasetName OutputDataset -StartDateTime 2017-05-11T00:00:00Z
    

    この設定は、JSON パイプラインの Start の値と一致します。This setting should match the Start value in the pipeline JSON. 現在の日付の 12 AM から次の日の 12 AM までの 1 時間ごとに 1 つずつ、合計 24 個のスライスが表示されます。You should see 24 slices, one for each hour from 12 AM of the current day to 12 AM of the next day.

    出力の 3 つのサンプルのスライスを次に示します。Here are three sample slices from the output:

    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    DatasetName       : OutputDataset
    Start             : 5/11/2017 11:00:00 PM
    End               : 5/12/2017 12:00:00 AM
    RetryCount        : 0
    State             : Ready
    SubState          :
    LatencyStatus     :
    LongRetryCount    : 0
    
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    DatasetName       : OutputDataset
    Start             : 5/11/2017 9:00:00 PM
    End               : 5/11/2017 10:00:00 PM
    RetryCount        : 0
    State             : InProgress
    SubState          :
    LatencyStatus     :
    LongRetryCount    : 0   
    
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ADFTutorialDataFactoryPSH0516
    DatasetName       : OutputDataset
    Start             : 5/11/2017 8:00:00 PM
    End               : 5/11/2017 9:00:00 PM
    RetryCount        : 0
    State             : Waiting
    SubState          : ConcurrencyLimit
    LatencyStatus     :
    LongRetryCount    : 0
    
  3. Get-AzDataFactoryRun を実行して、特定のスライスに関するアクティビティの実行の詳細を取得します。Run Get-AzDataFactoryRun to get the details of activity runs for a specific slice. 前のコマンドの出力から日付/時刻値をコピーして、StartDateTime パラメーターの値を指定します。Copy the date-time value from the output of the previous command to specify the value for the StartDateTime parameter.

    Get-AzDataFactoryRun $df -DatasetName OutputDataset -StartDateTime "5/11/2017 09:00:00 PM"
    

    出力例を次に示します。Here is the sample output:

    Id                  : c0ddbd75-d0c7-4816-a775-704bbd7c7eab_636301332000000000_636301368000000000_OutputDataset
    ResourceGroupName   : ADFTutorialResourceGroup
    DataFactoryName     : ADFTutorialDataFactoryPSH0516
    DatasetName         : OutputDataset
    ProcessingStartTime : 5/16/2017 8:00:33 PM
    ProcessingEndTime   : 5/16/2017 8:01:36 PM
    PercentComplete     : 100
    DataSliceStart      : 5/11/2017 9:00:00 PM
    DataSliceEnd        : 5/11/2017 10:00:00 PM
    Status              : Succeeded
    Timestamp           : 5/16/2017 8:00:33 PM
    RetryAttempt        : 0
    Properties          : {}
    ErrorMessage        :
    ActivityName        : CopyFromBlobToSQL
    PipelineName        : ADFTutorialPipeline
    Type                : Copy  
    

Data Factory コマンドレットに関する包括的なドキュメントについては、Data Factory コマンドレットのリファレンスを参照してください。For comprehensive documentation on Data Factory cmdlets, see Data Factory Cmdlet Reference.

まとめSummary

このチュートリアルでは、Azure Data Factory を作成し、Azure BLOB から Azure SQL データベースにデータをコピーしました。In this tutorial, you created an Azure data factory to copy data from an Azure blob to an Azure SQL database. また、PowerShell を使用して、データ ファクトリ、リンクされたサービス、データセット、パイプラインを作成しました。You used PowerShell to create the data factory, linked services, datasets, and a pipeline. 以下は、このチュートリアルで実行した手順の概要です。Here are the high-level steps you performed in this tutorial:

  1. Azure データ ファクトリを作成しました。Created an Azure data factory.

  2. 次の リンクされたサービスを作成しました。Created linked services:

    a.a. 入力データを保持する Azure ストレージ アカウントをリンクするための、Azure Storage のリンクされたサービス。An Azure Storage linked service to link your Azure storage account that holds input data.
    b.b. 出力データを保持する Azure SQL データベースをリンクするための、Azure SQL のリンクされたサービス。An Azure SQL linked service to link your SQL database that holds the output data.

  3. パイプラインの入力データと出力データを記述する データセット を作成しました。Created datasets that describe input data and output data for pipelines.

  4. ソースとして BlobSource、シンクとして SqlSink を持つコピー アクティビティがあるパイプラインを作成しました。Created a pipeline with Copy Activity, with BlobSource as the source and SqlSink as the sink.

次の手順Next steps

このチュートリアルでは、Azure Blob Storage をコピー操作のソース データ ストア、Azure SQL データベースをターゲット データ ストアとして使用しました。In this tutorial, you used Azure blob storage as a source data store and an Azure SQL database as a destination data store in a copy operation. 次の表は、コピー アクティビティによってソースおよびターゲットとしてサポートされているデータ ストアの一覧です。The following table provides a list of data stores supported as sources and destinations by the copy activity:

CategoryCategory データ ストアData store ソースとしてサポートSupported as a source シンクとしてサポートSupported as a sink
AzureAzure Azure BLOB StorageAzure Blob storage
  Azure Cosmos DB (SQL API)Azure Cosmos DB (SQL API)
  Azure Data Lake Storage Gen1Azure Data Lake Storage Gen1
  Azure SQL DatabaseAzure SQL Database
  Azure SQL Data WarehouseAzure SQL Data Warehouse
  Azure Search インデックスAzure Search Index
  Azure Table StorageAzure Table storage
データベースDatabases Amazon RedshiftAmazon Redshift
  DB2*DB2*
  MySQL*MySQL*
  Oracle*Oracle*
  PostgreSQL*PostgreSQL*
  SAP Business Warehouse*SAP Business Warehouse*
  SAP HANA*SAP HANA*
  SQL Server*SQL Server*
  Sybase*Sybase*
  Teradata*Teradata*
NoSQLNoSQL Cassandra*Cassandra*
  MongoDB*MongoDB*
ファイルFile Amazon S3Amazon S3
  ファイル システム*File System*
  FTPFTP
  HDFS*HDFS*
  SFTPSFTP
その他Others 汎用 HTTPGeneric HTTP
  汎用 ODataGeneric OData
  汎用 ODBC*Generic ODBC*
  SalesforceSalesforce
  Web テーブル (HTML のテーブル)Web Table (table from HTML)

データ ストアにデータをコピーしたり、データ ストアからデータをコピーしたりする方法を確認するには、表のデータ ストアのリンクをクリックしてください。To learn about how to copy data to/from a data store, click the link for the data store in the table.