チュートリアル:Azure Resource Manager テンプレートを使用して、データをコピーする Data Factory パイプラインを作成するTutorial: Use Azure Resource Manager template to create a Data Factory pipeline to copy data

注意

この記事は、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.

このチュートリアルでは、Azure Resource Manager テンプレートを使用して Azure データ ファクトリを作成する方法を説明します。This tutorial shows you how to use an Azure Resource Manager template to create an Azure data factory. このチュートリアルのデータ パイプラインでは、ソース データ ストアからターゲット データ ストアにデータをコピーします。The data pipeline in this tutorial copies data from a source data store to a destination data store. 入力データを変換して出力データを生成するのではありません。It does not transform input data to produce output data. 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.

このチュートリアルでは、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.

注意

このチュートリアルのデータ パイプラインでは、ソース データ ストアからターゲット データ ストアにデータをコピーします。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.

このチュートリアルの内容In this tutorial

このチュートリアルでは、次の Data Factory エンティティを含むデータ ファクトリを作成します。In this tutorial, you create a data factory with the following Data Factory entities:

エンティティEntity 説明Description
Azure Storage のリンクされたサービスAzure Storage linked service Azure Storage アカウントをデータ ファクトリにリンクします。Links your Azure Storage account to the data factory. このチュートリアルのコピー アクティビティでは、Azure Storage がソース データ ストアであり、Azure SQL データベースがシンク データ ストアです。Azure Storage is the source data store and Azure SQL database is the sink data store for the copy activity in the tutorial. コピー アクティビティの入力データを格納するストレージ アカウントを指定します。It specifies the storage account that contains the input data for the copy activity.
Azure SQL Database のリンクされたサービスAzure SQL Database linked service Azure SQL データベースをデータ ファクトリにリンクします。Links your Azure SQL database to the data factory. コピー アクティビティの出力データを保持する Azure SQL データベースを指定します。It specifies the Azure SQL database that holds the output data for the copy activity.
Azure BLOB の入力データセットAzure Blob input dataset Azure Storage のリンクされたサービスを参照します。Refers to the Azure Storage linked service. リンクされたサービスは、Azure Storage アカウントを参照します。Azure BLOB データセットは、入力データを保持するストレージ内のコンテナー、フォルダー、ファイルの名前を指定します。The linked service refers to an Azure Storage account and the Azure Blob dataset specifies the container, folder, and file name in the storage that holds the input data.
Azure SQL の出力データセットAzure SQL output dataset Azure SQL のリンクされたサービスを参照します。Refers to the Azure SQL linked service. Azure SQL のリンクされたサービスは、Azure SQL サーバーを参照します。Azure SQL データセットは、出力データを保持するテーブルの名前を指定します。The Azure SQL linked service refers to an Azure SQL server and the Azure SQL dataset specifies the name of the table that holds the output data.
データ パイプラインData pipeline パイプラインには、Azure BLOB データセットを入力として取得し、Azure SQL データセットを出力として取得する Copy 型のアクティビティが 1 つ含まれます。The pipeline has one activity of type Copy that takes the Azure blob dataset as an input and the Azure SQL dataset as an output. コピー アクティビティでは、Azure BLOB から Azure SQL データベースのテーブルにデータをコピーします。The copy activity copies data from an Azure blob to a table in the Azure SQL database.

データ ファクトリは、1 つまたは複数のパイプラインを持つことができます。A data factory can have one or more pipelines. パイプラインには、1 つまたは複数のアクティビティを含めることができます。A pipeline can have one or more activities in it. アクティビティには、データ移動アクティビティデータ変換アクティビティの 2 種類があります。There are two types of activities: data movement activities and data transformation activities. このチュートリアルでは、アクティビティ (コピー アクティビティ) を 1 つ含むパイプラインを作成します。In this tutorial, you create a pipeline with one activity (copy activity).

Azure BLOB から Azure SQL Database へのコピー

次のセクションでは、このチュートリアルを速やかに実行し、テンプレートをテストできるように、Data Factory エンティティを定義するための完全な Resource Manager テンプレートを提供します。The following section provides the complete Resource Manager template for defining Data Factory entities so that you can quickly run through the tutorial and test the template. 各 Data Factory エンティティを定義する方法については、「テンプレートの Data Factory エンティティ」をご覧ください。To understand how each Data Factory entity is defined, see Data Factory entities in the template section.

Data Factory JSON テンプレートData Factory JSON template

データ ファクトリを定義するための大まかな Resource Manager テンプレートは次のとおりです。The top-level Resource Manager template for defining a data factory is:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": { ...
    },
    "variables": { ...
    },
    "resources": [
        {
            "name": "[parameters('dataFactoryName')]",
            "apiVersion": "[variables('apiVersion')]",
            "type": "Microsoft.DataFactory/datafactories",
            "location": "westus",
            "resources": [
                { ... },
                { ... },
                { ... },
                { ... }
            ]
        }
    ]
}

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

{
    "contentVersion": "1.0.0.0",
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "parameters": {
      "storageAccountName": { "type": "string", "metadata": { "description": "Name of the Azure storage account that contains the data to be copied." } },
      "storageAccountKey": { "type": "securestring", "metadata": { "description": "Key for the Azure storage account." } },
      "sourceBlobContainer": { "type": "string", "metadata": { "description": "Name of the blob container in the Azure Storage account." } },
      "sourceBlobName": { "type": "string", "metadata": { "description": "Name of the blob in the container that has the data to be copied to Azure SQL Database table" } },
      "sqlServerName": { "type": "string", "metadata": { "description": "Name of the Azure SQL Server that will hold the output/copied data." } },
      "databaseName": { "type": "string", "metadata": { "description": "Name of the Azure SQL Database in the Azure SQL server." } },
      "sqlServerUserName": { "type": "string", "metadata": { "description": "Name of the user that has access to the Azure SQL server." } },
      "sqlServerPassword": { "type": "securestring", "metadata": { "description": "Password for the user." } },
      "targetSQLTable": { "type": "string", "metadata": { "description": "Table in the Azure SQL Database that will hold the copied data." } 
      } 
    },
    "variables": {
      "dataFactoryName": "[concat('AzureBlobToAzureSQLDatabaseDF', uniqueString(resourceGroup().id))]",
      "azureSqlLinkedServiceName": "AzureSqlLinkedService",
      "azureStorageLinkedServiceName": "AzureStorageLinkedService",
      "blobInputDatasetName": "BlobInputDataset",
      "sqlOutputDatasetName": "SQLOutputDataset",
      "pipelineName": "Blob2SQLPipeline"
    },
    "resources": [
      {
        "name": "[variables('dataFactoryName')]",
        "apiVersion": "2015-10-01",
        "type": "Microsoft.DataFactory/datafactories",
        "location": "West US",
        "resources": [
          {
            "type": "linkedservices",
            "name": "[variables('azureStorageLinkedServiceName')]",
            "dependsOn": [
              "[variables('dataFactoryName')]"
            ],
            "apiVersion": "2015-10-01",
            "properties": {
              "type": "AzureStorage",
              "description": "Azure Storage linked service",
              "typeProperties": {
                "connectionString": "[concat('DefaultEndpointsProtocol=https;AccountName=',parameters('storageAccountName'),';AccountKey=',parameters('storageAccountKey'))]"
              }
            }
          },
          {
            "type": "linkedservices",
            "name": "[variables('azureSqlLinkedServiceName')]",
            "dependsOn": [
              "[variables('dataFactoryName')]"
            ],
            "apiVersion": "2015-10-01",
            "properties": {
              "type": "AzureSqlDatabase",
              "description": "Azure SQL linked service",
              "typeProperties": {
                "connectionString": "[concat('Server=tcp:',parameters('sqlServerName'),'.database.windows.net,1433;Database=', parameters('databaseName'), ';User ID=',parameters('sqlServerUserName'),';Password=',parameters('sqlServerPassword'),';Trusted_Connection=False;Encrypt=True;Connection Timeout=30')]"
              }
            }
          },
          {
            "type": "datasets",
            "name": "[variables('blobInputDatasetName')]",
            "dependsOn": [
              "[variables('dataFactoryName')]",
              "[variables('azureStorageLinkedServiceName')]"
            ],
            "apiVersion": "2015-10-01",
            "properties": {
              "type": "AzureBlob",
              "linkedServiceName": "[variables('azureStorageLinkedServiceName')]",
              "structure": [
                {
                  "name": "Column0",
                  "type": "String"
                },
                {
                  "name": "Column1",
                  "type": "String"
                }
              ],
              "typeProperties": {
                "folderPath": "[concat(parameters('sourceBlobContainer'), '/')]",
                "fileName": "[parameters('sourceBlobName')]",
                "format": {
                  "type": "TextFormat",
                  "columnDelimiter": ","
                }
              },
              "availability": {
                "frequency": "Hour",
                "interval": 1
              },
              "external": true
            }
          },
          {
            "type": "datasets",
            "name": "[variables('sqlOutputDatasetName')]",
            "dependsOn": [
              "[variables('dataFactoryName')]",
              "[variables('azureSqlLinkedServiceName')]"
            ],
            "apiVersion": "2015-10-01",
            "properties": {
              "type": "AzureSqlTable",
              "linkedServiceName": "[variables('azureSqlLinkedServiceName')]",
              "structure": [
                {
                  "name": "FirstName",
                  "type": "String"
                },
                {
                  "name": "LastName",
                  "type": "String"
                }
              ],
              "typeProperties": {
                "tableName": "[parameters('targetSQLTable')]"
              },
              "availability": {
                "frequency": "Hour",
                "interval": 1
              }
            }
          },
          {
            "type": "datapipelines",
            "name": "[variables('pipelineName')]",
            "dependsOn": [
              "[variables('dataFactoryName')]",
              "[variables('azureStorageLinkedServiceName')]",
              "[variables('azureSqlLinkedServiceName')]",
              "[variables('blobInputDatasetName')]",
              "[variables('sqlOutputDatasetName')]"
            ],
            "apiVersion": "2015-10-01",
            "properties": {
              "activities": [
                {
                  "name": "CopyFromAzureBlobToAzureSQL",
                  "description": "Copy data frm Azure blob to Azure SQL",
                  "type": "Copy",
                  "inputs": [
                    {
                      "name": "[variables('blobInputDatasetName')]"
                    }
                  ],
                  "outputs": [
                    {
                      "name": "[variables('sqlOutputDatasetName')]"
                    }
                  ],
                  "typeProperties": {
                    "source": {
                      "type": "BlobSource"
                    },
                    "sink": {
                      "type": "SqlSink",
                      "sqlWriterCleanupScript": "$$Text.Format('DELETE FROM {0}', 'emp')"
                    },
                    "translator": {
                      "type": "TabularTranslator",
                      "columnMappings": "Column0:FirstName,Column1:LastName"
                    }
                  },
                  "Policy": {
                    "concurrency": 1,
                    "executionPriorityOrder": "NewestFirst",
                    "retry": 3,
                    "timeout": "01:00:00"
                  }
                }
              ],
              "start": "2017-05-11T00:00:00Z",
              "end": "2017-05-12T00:00:00Z"
            }
          }
        ]
      }
    ]
  }

Parameters JSONParameters JSON

Azure Resource Manager テンプレートのパラメーターを含む ADFCopyTutorialARM-Parameters.json という名前の JSON ファイルを作成します。Create a JSON file named ADFCopyTutorialARM-Parameters.json that contains parameters for the Azure Resource Manager template.

重要

storageAccountName パラメーターと storageAccountKey パラメーターに、Azure Storage アカウントの名前とキーを指定します。Specify name and key of your Azure Storage account for storageAccountName and storageAccountKey parameters.

sqlServerName、databaseName、sqlServerUserName、sqlServerPassword の各パラメーターに、Azure SQL サーバー、データベース、ユーザー、パスワードを指定します。Specify Azure SQL server, database, user, and password for sqlServerName, databaseName, sqlServerUserName, and sqlServerPassword parameters.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": { 
        "storageAccountName": { "value": "<Name of the Azure storage account>"    },
        "storageAccountKey": {
            "value": "<Key for the Azure storage account>"
        },
        "sourceBlobContainer": { "value": "adftutorial" },
        "sourceBlobName": { "value": "emp.txt" },
        "sqlServerName": { "value": "<Name of the Azure SQL server>" },
        "databaseName": { "value": "<Name of the Azure SQL database>" },
        "sqlServerUserName": { "value": "<Name of the user who has access to the Azure SQL database>" },
        "sqlServerPassword": { "value": "<password for the user>" },
        "targetSQLTable": { "value": "emp" }
    }
}

重要

開発環境、テスト環境、運用環境用にそれぞれ別の parameter JSON ファイルを作成して、同じ Data Factory JSON テンプレートで使用できます。You may have separate parameter JSON files for development, testing, and production environments that you can use with the same Data Factory JSON template. PowerShell スクリプトを使用して、これらの環境への Data Factory エンティティのデプロイを自動化できます。By using a Power Shell script, you can automate deploying Data Factory entities in these environments.

データ ファクトリの作成Create data factory

  1. Azure PowerShell を起動し、次のコマンドを実行します。Start Azure PowerShell and run the following command:

    • 次のコマンドを実行して、Azure ポータルへのサインインに使用するユーザー名とパスワードを入力します。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.
    Get-AzSubscription -SubscriptionName <SUBSCRIPTION NAME> | Set-AzContext
    
  2. 次のコマンドを実行し、手順 1. で作成した Resource Manager テンプレートを使用して Data Factory エンティティをデプロイします。Run the following command to deploy Data Factory entities using the Resource Manager template you created in Step 1.

    New-AzResourceGroupDeployment -Name MyARMDeployment -ResourceGroupName ADFTutorialResourceGroup -TemplateFile C:\ADFGetStarted\ADFCopyTutorialARM.json -TemplateParameterFile C:\ADFGetStarted\ADFCopyTutorialARM-Parameters.json
    

パイプラインを監視するMonitor pipeline

  1. Azure アカウントを使用して Azure Portal にログインします。Log in to the Azure portal using your Azure account.

  2. 左側のメニューの [データ ファクトリ] をクリックするか、 [すべてのサービス] をクリックし、 [インテリジェンス + 分析] カテゴリの [データ ファクトリ] をクリックします。Click Data factories on the left menu (or) click All services and click Data factories under INTELLIGENCE + ANALYTICS category.

    [データ ファクトリ] メニュー

  3. [データ ファクトリ] ページで、使用するデータ ファクトリ (AzureBlobToAzureSQLDatabaseDF) を検索して見つけます。In the Data factories page, search for and find your data factory (AzureBlobToAzureSQLDatabaseDF).

    データ ファクトリの検索

  4. 使用する Azure Data Factory をクリックします。Click your Azure data factory. データ ファクトリのホーム ページが表示されます。You see the home page for the data factory.

    データ ファクトリのホーム ページ

  5. データセットとパイプラインの監視に関するセクションの手順に従って、このチュートリアルで作成したパイプラインとデータセットを監視します。Follow instructions from Monitor datasets and pipeline to monitor the pipeline and datasets you have created in this tutorial. 現時点では、Visual Studio は Data Factory パイプラインの監視をサポートしていません。Currently, Visual Studio does not support monitoring Data Factory pipelines.

  6. スライスが準備完了状態になったら、Azure SQL データベースの emp テーブルにデータがコピーされていることを確認します。When a slice is in the Ready state, verify that the data is copied to the emp table in the Azure SQL database.

Azure Portal のブレードを使用して、このチュートリアルで作成したパイプラインとデータセットを監視する方法の詳細については、データセットとパイプラインの監視に関するページを参照してください。For more information on how to use Azure portal blades to monitor pipeline and datasets you have created in this tutorial, see Monitor datasets and pipeline .

監視と管理アプリケーションを使用してデータ パイプラインを監視する方法については、監視アプリを使用した Azure Data Factory パイプラインの監視と管理に関するページを参照してください。For more information on how to use the Monitor & Manage application to monitor your data pipelines, see Monitor and manage Azure Data Factory pipelines using Monitoring App.

テンプレートの Data Factory エンティティData Factory entities in the template

データ ファクトリの定義Define data factory

次のサンプルに示されているように、Resource Manager テンプレートにデータ ファクトリを定義します。You define a data factory in the Resource Manager template as shown in the following sample:

"resources": [
{
    "name": "[variables('dataFactoryName')]",
    "apiVersion": "2015-10-01",
    "type": "Microsoft.DataFactory/datafactories",
    "location": "West US"
}

dataFactoryName は次のように定義されています。The dataFactoryName is defined as:

"dataFactoryName": "[concat('AzureBlobToAzureSQLDatabaseDF', uniqueString(resourceGroup().id))]"

これは、リソース グループ ID に基づく一意の文字列です。It is a unique string based on the resource group ID.

Data Factory エンティティの定義Defining Data Factory entities

JSON テンプレートには、次の Data Factory エンティティが定義されています。The following Data Factory entities are defined in the JSON template:

  1. Azure Storage のリンクされたサービスAzure Storage linked service
  2. Azure SQL のリンクされたサービスAzure SQL linked service
  3. Azure BLOB データセットAzure blob dataset
  4. Azure SQL データセットAzure SQL dataset
  5. コピー アクティビティを含むデータ パイプラインData pipeline with a copy activity

Azure Storage のリンクされたサービスAzure Storage linked service

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. このセクションで、Azure Storage アカウントの名前とキーを指定します。You specify the name and key of your Azure storage account in this section. Azure Storage のリンクされたサービスの定義に使用する JSON プロパティの詳細については、「Azure Storage のリンクされたサービス」をご覧ください。See Azure Storage linked service for details about JSON properties used to define an Azure Storage linked service.

{
    "type": "linkedservices",
    "name": "[variables('azureStorageLinkedServiceName')]",
    "dependsOn": [
        "[variables('dataFactoryName')]"
    ],
    "apiVersion": "2015-10-01",
    "properties": {
        "type": "AzureStorage",
        "description": "Azure Storage linked service",
        "typeProperties": {
            "connectionString": "[concat('DefaultEndpointsProtocol=https;AccountName=',parameters('storageAccountName'),';AccountKey=',parameters('storageAccountKey'))]"
        }
    }
}

connectionString では、storageAccountName パラメーターと storageAccountKey パラメーターを使用しています。The connectionString uses the storageAccountName and storageAccountKey parameters. これらのパラメーターの値は、構成ファイルを使用して渡されます。The values for these parameters passed by using a configuration file. この定義では、テンプレートで定義された azureStorageLinkedService、dataFactoryName の各変数も使用しています。The definition also uses variables: azureStorageLinkedService and dataFactoryName defined in the template.

Azure SQL Database のリンクされたサービスAzure SQL Database linked service

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 SQL サーバー名、データベース名、ユーザー名、ユーザー パスワードを指定します。You specify the Azure SQL server name, database name, user name, and user password in this section. Azure SQL のリンクされたサービスの定義に使用する JSON プロパティの詳細については、Azure SQL のリンクされたサービスに関するセクションをご覧ください。See Azure SQL linked service for details about JSON properties used to define an Azure SQL linked service.

{
    "type": "linkedservices",
    "name": "[variables('azureSqlLinkedServiceName')]",
    "dependsOn": [
      "[variables('dataFactoryName')]"
    ],
    "apiVersion": "2015-10-01",
    "properties": {
          "type": "AzureSqlDatabase",
          "description": "Azure SQL linked service",
          "typeProperties": {
            "connectionString": "[concat('Server=tcp:',parameters('sqlServerName'),'.database.windows.net,1433;Database=', parameters('databaseName'), ';User ID=',parameters('sqlServerUserName'),';Password=',parameters('sqlServerPassword'),';Trusted_Connection=False;Encrypt=True;Connection Timeout=30')]"
          }
    }
}

connectionString では、sqlServerName、databaseName、sqlServerUserName、sqlServerPassword の各パラメーターを使用しています。これらのパラメーターの値は、構成ファイルを使用して渡されます。The connectionString uses sqlServerName, databaseName, sqlServerUserName, and sqlServerPassword parameters whose values are passed by using a configuration file. この定義では、テンプレートの azureSqlLinkedServiceName、dataFactoryName の各変数も使用しています。The definition also uses the following variables from the template: azureSqlLinkedServiceName, dataFactoryName.

Azure BLOB データセットAzure blob dataset

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. Azure BLOB データセット定義では、入力データが格納される BLOB コンテナー、フォルダー、ファイルの名前を指定します。In Azure blob dataset definition, you specify names of blob container, folder, and file that contains the input data. Azure BLOB データセットの定義に使用する JSON プロパティの詳細については、Azure BLOB データセットのプロパティに関するセクションをご覧ください。See Azure Blob dataset properties for details about JSON properties used to define an Azure Blob dataset.

{
    "type": "datasets",
    "name": "[variables('blobInputDatasetName')]",
    "dependsOn": [
      "[variables('dataFactoryName')]",
      "[variables('azureStorageLinkedServiceName')]"
    ],
    "apiVersion": "2015-10-01",
    "properties": {
        "type": "AzureBlob",
          "linkedServiceName": "[variables('azureStorageLinkedServiceName')]",
        "structure": [
        {
              "name": "Column0",
              "type": "String"
        },
        {
              "name": "Column1",
              "type": "String"
        }
          ],
          "typeProperties": {
            "folderPath": "[concat(parameters('sourceBlobContainer'), '/')]",
            "fileName": "[parameters('sourceBlobName')]",
            "format": {
                  "type": "TextFormat",
                  "columnDelimiter": ","
            }
          },
          "availability": {
            "frequency": "Hour",
            "interval": 1
          },
          "external": true
    }
}

Azure SQL データセットAzure SQL dataset

Azure Blob Storage からコピーしたデータを保持する、Azure SQL データベースのテーブルの名前を指定します。You specify the name of the table in the Azure SQL database that holds the copied data from the Azure Blob storage. Azure SQL データセットの定義に使用する JSON プロパティの詳細については、Azure SQL データセットのプロパティに関するセクションをご覧ください。See Azure SQL dataset properties for details about JSON properties used to define an Azure SQL dataset.

{
    "type": "datasets",
    "name": "[variables('sqlOutputDatasetName')]",
    "dependsOn": [
        "[variables('dataFactoryName')]",
          "[variables('azureSqlLinkedServiceName')]"
    ],
    "apiVersion": "2015-10-01",
    "properties": {
          "type": "AzureSqlTable",
          "linkedServiceName": "[variables('azureSqlLinkedServiceName')]",
          "structure": [
        {
              "name": "FirstName",
              "type": "String"
        },
        {
              "name": "LastName",
              "type": "String"
        }
          ],
          "typeProperties": {
            "tableName": "[parameters('targetSQLTable')]"
          },
          "availability": {
            "frequency": "Hour",
            "interval": 1
          }
    }
}

データ パイプラインData pipeline

Azure BLOB データセットから Azure SQL データセットにデータをコピーするパイプラインを定義します。You define a pipeline that copies data from the Azure blob dataset to the Azure SQL dataset. この例のパイプラインの定義に使用されている JSON 要素については、「パイプライン JSON」をご覧ください。See Pipeline JSON for descriptions of JSON elements used to define a pipeline in this example.

{
    "type": "datapipelines",
    "name": "[variables('pipelineName')]",
    "dependsOn": [
        "[variables('dataFactoryName')]",
          "[variables('azureStorageLinkedServiceName')]",
          "[variables('azureSqlLinkedServiceName')]",
          "[variables('blobInputDatasetName')]",
          "[variables('sqlOutputDatasetName')]"
    ],
    "apiVersion": "2015-10-01",
    "properties": {
          "activities": [
        {
              "name": "CopyFromAzureBlobToAzureSQL",
              "description": "Copy data frm Azure blob to Azure SQL",
              "type": "Copy",
              "inputs": [
            {
                  "name": "[variables('blobInputDatasetName')]"
            }
              ],
              "outputs": [
            {
                  "name": "[variables('sqlOutputDatasetName')]"
            }
              ],
              "typeProperties": {
                "source": {
                      "type": "BlobSource"
                },
                "sink": {
                      "type": "SqlSink",
                      "sqlWriterCleanupScript": "$$Text.Format('DELETE FROM {0}', 'emp')"
                },
                "translator": {
                      "type": "TabularTranslator",
                      "columnMappings": "Column0:FirstName,Column1:LastName"
                }
              },
              "Policy": {
                "concurrency": 1,
                "executionPriorityOrder": "NewestFirst",
                "retry": 3,
                "timeout": "01:00:00"
              }
        }
          ],
          "start": "2017-05-11T00:00:00Z",
          "end": "2017-05-12T00:00:00Z"
    }
}

テンプレートの再利用Reuse the template

このチュートリアルでは、Data Factory エンティティを定義するためのテンプレートと、パラメーターの値を渡すためのテンプレートを作成しました。In the tutorial, you created a template for defining Data Factory entities and a template for passing values for parameters. パイプラインでは、パラメーターで指定された Azure Storage アカウントから Azure SQL データベースにデータをコピーします。The pipeline copies data from an Azure Storage account to an Azure SQL database specified via parameters. 同じテンプレートを使用して、Data Factory エンティティをさまざまな環境にデプロイするには、環境ごとにパラメーター ファイルを作成し、その環境にデプロイするときに使用します。To use the same template to deploy Data Factory entities to different environments, you create a parameter file for each environment and use it when deploying to that environment.

例:Example:

New-AzResourceGroupDeployment -Name MyARMDeployment -ResourceGroupName ADFTutorialResourceGroup -TemplateFile ADFCopyTutorialARM.json -TemplateParameterFile ADFCopyTutorialARM-Parameters-Dev.json
New-AzResourceGroupDeployment -Name MyARMDeployment -ResourceGroupName ADFTutorialResourceGroup -TemplateFile ADFCopyTutorialARM.json -TemplateParameterFile ADFCopyTutorialARM-Parameters-Test.json
New-AzResourceGroupDeployment -Name MyARMDeployment -ResourceGroupName ADFTutorialResourceGroup -TemplateFile ADFCopyTutorialARM.json -TemplateParameterFile ADFCopyTutorialARM-Parameters-Production.json

最初のコマンドでは開発環境用、2 番目のコマンドではテスト環境用、3 番目のコマンドでは運用環境用のパラメーター ファイルをそれぞれ使用していることに注意してください。Notice that the first command uses parameter file for the development environment, second one for the test environment, and the third one for the production environment.

テンプレートを再利用して、繰り返されるタスクを実行することもできます。You can also reuse the template to perform repeated tasks. たとえば、1 つ以上のパイプラインを持つ多数のデータ ファクトリを作成する必要があるとします。各データ ファクトリは同じロジックを実装しますが、それぞれ異なる Storage アカウントと SQL Database アカウントを使用します。For example, you need to create many data factories with one or more pipelines that implement the same logic but each data factory uses different Storage and SQL Database accounts. このシナリオでは、1 つの環境 (開発、テスト、または運用) で同じテンプレートと異なるパラメーター ファイルを使用してデータ ファクトリを作成します。In this scenario, you use the same template in the same environment (dev, test, or production) with different parameter files to create data factories.

次の手順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.