コピー アクティビティを使用したデータの移動Move data by using Copy Activity

注意

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

概要Overview

Azure Data Factory では、コピー アクティビティを使用して、オンプレミスとクラウド データ ストア間でデータをコピーできます。In Azure Data Factory, you can use Copy Activity to copy data between on-premises and cloud data stores. コピーされたデータをさらに変換して分析することができます。After the data is copied, it can be further transformed and analyzed. また、コピー アクティビティを使用して、変換や分析の結果を発行し、ビジネス インテリジェンス (BI) やアプリケーションで使用することもできます。You can also use Copy Activity to publish transformation and analysis results for business intelligence (BI) and application consumption.

コピー アクティビティの役割

コピー アクティビティは、安全性、信頼性、拡張性に優れた グローバルに利用可能なサービスによって動作します。Copy Activity is powered by a secure, reliable, scalable, and globally available service. この記事では、Data Factory でのコピー アクティビティによるデータの移動について詳しく説明します。This article provides details on data movement in Data Factory and Copy Activity.

まず、2 つのクラウド データ ストアの間、およびオンプレミスのデータ ストアとクラウド データ ストアの間でデータの移行がどのように行われるかについて説明します。First, let's see how data migration occurs between two cloud data stores, and between an on-premises data store and a cloud data store.

注意

アクティビティ全般については、 パイプラインとアクティビティの概要に関するページをご覧ください。To learn about activities in general, see Understanding pipelines and activities.

2 つのクラウド データ ストア間でのデータのコピーCopy data between two cloud data stores

ソース データ ストアとシンク データ ストアの両方がクラウドにある場合、コピー アクティビティは、次の段階を経てデータをソースからシンクにコピーします。When both source and sink data stores are in the cloud, Copy Activity goes through the following stages to copy data from the source to the sink. コピー アクティビティを実行するサービスが行う処理を次に示します。The service that powers Copy Activity:

  1. ソース データ ストアからデータを読み取る。Reads data from the source data store.
  2. シリアル化/逆シリアル化、圧縮/圧縮解除、列マッピング、型変換を実行する。Performs serialization/deserialization, compression/decompression, column mapping, and type conversion. この操作は、入力データセット、出力データセット、およびコピー アクティビティの構成に基づいて実行されます。It does these operations based on the configurations of the input dataset, output dataset, and Copy Activity.
  3. コピー先データ ストアにデータを書き込む。Writes data to the destination data store.

このサービスでは、データ移動の実行に適したリージョンが自動的に選択されます。The service automatically chooses the optimal region to perform the data movement. 選択されるのは、通常、シンク データ ストアに最も近いリージョンです。This region is usually the one closest to the sink data store.

クラウド間のコピー

オンプレミス データ ストアとクラウド データ ストア間でのデータのコピーCopy data between an on-premises data store and a cloud data store

オンプレミス データ ストアと、クラウド データ ストアの間でデータを安全に移動するには、Data Management Gateway を、オンプレミスのコンピューターにインストールする必要があります。To securely move data between an on-premises data store and a cloud data store, install Data Management Gateway on your on-premises machine. Data Management Gateway は、ハイブリッド データの移動と処理を可能にするエージェントです。Data Management Gateway is an agent that enables hybrid data movement and processing. この Data Management Gateway は、データ ストア自体と同じコンピューター、またはデータ ストアにアクセスできる別のコンピューターにインストールできます。You can install it on the same machine as the data store itself, or on a separate machine that has access to the data store.

このシナリオでは、Data Management Gateway によって、シリアル化/逆シリアル化、圧縮/圧縮解除、列マッピング、型変換が実行されます。In this scenario, Data Management Gateway performs the serialization/deserialization, compression/decompression, column mapping, and type conversion. データは Azure Data Factory サービスを経由せず、Data does not flow through the Azure Data Factory service. Data Management Gateway によって、直接目的のストアに書き込まれます。Instead, Data Management Gateway directly writes the data to the destination store.

オンプレミスとクラウドの間のコピー

概要とチュートリアルについては、 オンプレミスのデータ ストアとクラウド データ ストアの間でのデータ移動 に関する記事をご覧ください。See Move data between on-premises and cloud data stores for an introduction and walkthrough. このエージェントの詳細については、「 Data Management Gateway 」をご覧ください。See Data Management Gateway for detailed information about this agent.

Data Management Gateway を使用すると、Azure IaaS 仮想マシン (VM) でホストされている、サポートされるデータ ストア間でデータを移動することもできます。You can also move data from/to supported data stores that are hosted on Azure IaaS virtual machines (VMs) by using Data Management Gateway. この場合、Data Management Gateway は、データ ストア自体と同じ VM、またはデータ ストアにアクセスできる別の VM にインストールできます。In this case, you can install Data Management Gateway on the same VM as the data store itself, or on a separate VM that has access to the data store.

サポートされるデータ ストアと形式Supported data stores and formats

Data Factory のコピー アクティビティは、ソース データ ストアからシンク データ ストアにデータをコピーします。Copy Activity in Data Factory copies data from a source data store to a sink data store. Data Factory は次のデータ ストアをサポートしています。Data Factory supports the following data stores. また、任意のソースのデータを任意のシンクに書き込むことができます。Data from any source can be written to any sink. データ ストアをクリックすると、そのストアとの間でデータをコピーする方法がわかります。Click a data store to learn how to copy data to and from that store.

注意

コピー アクティビティでサポートされていないデータ ストアとの間でデータを移動する必要がある場合は、データのコピーと移動に独自のロジックを使用した、Data Factory の カスタム アクティビティ を使用します。If you need to move data to/from a data store that Copy Activity doesn't support, use a custom activity in Data Factory with your own logic for copying/moving data. カスタム アクティビティの作成と使用の詳細については、「 Azure Data Factory パイプラインでカスタム アクティビティを使用する」をご覧ください。For details on creating and using a custom activity, see Use custom activities in an Azure Data Factory pipeline.

カテゴリCategory データ ストア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 Synapse AnalyticsAzure Synapse Analytics
  Azure Cognitive Search インデックスAzure Cognitive 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
OthersOthers 汎用 HTTPGeneric HTTP
  汎用 ODataGeneric OData
  汎用 ODBC*Generic ODBC*
  SalesforceSalesforce
  Web テーブル (HTML のテーブル)Web Table (table from HTML)

注意

* が付いたデータ ストアは、オンプレミスと Azure IaaS のどちらでもサポートされます。ただし、オンプレミス/Azure IaaS のコンピューターに Data Management Gateway をインストールする必要があります。Data stores with * can be on-premises or on Azure IaaS, and require you to install Data Management Gateway on an on-premises/Azure IaaS machine.

サポートされるファイル形式Supported file formats

コピー アクティビティを使用して、2 つのファイル ベースのデータ ストア間でファイルをそのままコピーすることができ、入力および出力の両方のデータセット定義の format セクションをスキップすることもできます。You can use Copy Activity to copy files as-is between two file-based data stores, you can skip the format section in both the input and output dataset definitions. これにより、シリアル化/逆シリアル化を実行することなく、データが効率的にコピーされます。The data is copied efficiently without any serialization/deserialization.

また、コピー アクティビティでは、指定された形式 (テキスト、JSON、Avro、ORC、Parquet) でのファイルの読み取りと書き込み、および圧縮コーデック GZip、Deflate、BZip2、および ZipDeflate がサポートされています。Copy Activity also reads from and writes to files in specified formats: Text, JSON, Avro, ORC, and Parquet, and compression codec GZip, Deflate, BZip2, and ZipDeflate are supported. 詳細については、「サポートされているファイル形式と圧縮形式」を参照してください。See Supported file and compression formats with details.

たとえば、次のようなコピー アクティビティを実行できます。For example, you can do the following copy activities:

  • SQL Server データベースでデータをコピーし、Azure Data Lake Store に ORC 形式で書き込む。Copy data in a SQL Server database and write to Azure Data Lake Store in ORC format.
  • オンプレミスのファイル システムからテキスト (CSV) 形式でファイルをコピーし、Azure BLOB に Avro 形式で書き込む。Copy files in text (CSV) format from on-premises File System and write to Azure Blob in Avro format.
  • オンプレミスのファイルシステムから zip ファイルをコピーし、圧縮を解除したうえで Azure Data Lake Store 書き込む。Copy zipped files from on-premises File System and decompress then land to Azure Data Lake Store.
  • Azure BLOB から GZip 圧縮テキスト (CSV) 形式でデータをコピーし、Azure SQL Database に書き込む。Copy data in GZip compressed text (CSV) format from Azure Blob and write to Azure SQL Database.

グローバルに使用できるデータの移動Globally available data movement

Azure Data Factory は、米国西部、米国東部、北ヨーロッパ リージョンでのみ使用できます。Azure Data Factory is available only in the West US, East US, and North Europe regions. ただし、コピー アクティビティを実行するサービスは、以下のリージョンと場所でグローバルに使用できます。However, the service that powers Copy Activity is available globally in the following regions and geographies. グローバルに使用できるトポロジでは効率的なデータ移動が保証されます。このデータ移動では、通常、リージョンをまたがるホップが回避されます。The globally available topology ensures efficient data movement that usually avoids cross-region hops. 特定のリージョンにおける Data Factory とデータ移動の提供状況については、リージョン別のサービスに関するページをご覧ください。See Services by region for availability of Data Factory and Data Movement in a region.

クラウド データ ストア間でのデータのコピーCopy data between cloud data stores

ソース データとシンク データが両方ともクラウドにある場合、Data Factory は同じ地域内で対象シンクに最も近いリージョンにあるサービスのデプロイメントを使用して、データを移動します。When both source and sink data stores are in the cloud, Data Factory uses a service deployment in the region that is closest to the sink in the same geography to move the data. リージョンのマッピングについては、以下の表をご覧ください。Refer to the following table for mapping:

コピー先データ ストアの地理的な場所Geography of the destination data stores コピー先データ ストアのリージョンRegion of the destination data store データ移動に使用するリージョンRegion used for data movement
United StatesUnited States 米国東部East US 米国東部East US
  米国東部 2East US 2 米国東部 2East US 2
  米国中部Central US 米国中部Central US
  米国中北部North Central US 米国中北部North Central US
  米国中南部South Central US 米国中南部South Central US
  米国中西部West Central US 米国中西部West Central US
  米国西部West US 米国西部West US
  米国西部 2West US 2 米国西部 2West US 2
CanadaCanada カナダ東部Canada East カナダ中部Canada Central
  カナダ中部Canada Central カナダ中部Canada Central
ブラジルBrazil ブラジル南部Brazil South ブラジル南部Brazil South
ヨーロッパEurope 北ヨーロッパNorth Europe 北ヨーロッパNorth Europe
  西ヨーロッパWest Europe 西ヨーロッパWest Europe
イギリスUnited Kingdom 英国西部UK West 英国南部UK South
  英国南部UK South 英国南部UK South
アジア太平洋Asia Pacific 東南アジアSoutheast Asia 東南アジアSoutheast Asia
  東アジアEast Asia 東南アジアSoutheast Asia
オーストラリアAustralia オーストラリア東部Australia East オーストラリア東部Australia East
  オーストラリア南東部Australia Southeast オーストラリア南東部Australia Southeast
インドIndia インド中部Central India インド中部Central India
  インド西部West India インド中部Central India
  インド南部South India インド中部Central India
日本Japan 東日本Japan East 東日本Japan East
  西日本Japan West 東日本Japan East
韓国Korea 韓国中部Korea Central 韓国中部Korea Central
  韓国南部Korea South 韓国中部Korea Central

また、コピー アクティビティ typePropertiesexecutionLocation プロパティを使用して、コピーで使用する Data Factory サービスのリージョンを明示的に指定することもできます。Alternatively, you can explicitly indicate the region of Data Factory service to be used to perform the copy by specifying executionLocation property under Copy Activity typeProperties. 上記の「データ移動に使用するリージョン」列には、このプロパティでサポートされる値が示されています。Supported values for this property are listed in above Region used for data movement column. コピー中のデータは、ネットワーク経由でこのリージョンを通過します。Note your data goes through that region over the wire during copy. たとえば、韓国の Azure Store 間でコピーするには、日本リージョン経由でルーティングされるように "executionLocation": "Japan East" を指定します (JSON のサンプルを参照してください)。For example, to copy between Azure stores in Korea, you can specify "executionLocation": "Japan East" to route through Japan region (see sample JSON as reference).

注意

コピー先データ ストアのリージョンが前のリストにない場合、または検出できない場合は、executionLocation が指定されていないと、既定では代わりのリージョンには移動せず、コピー アクティビティは失敗します。If the region of the destination data store is not in preceding list or undetectable, by default Copy Activity fails instead of going through an alternative region, unless executionLocation is specified. 今後さらに多くのリージョンがサポートされる予定です。The supported region list will be expanded over time.

オンプレミス データ ストアとクラウド データ ストア間でのデータのコピーCopy data between an on-premises data store and a cloud data store

データがオンプレミス (または Azure 仮想マシン/IaaS) のストアとクラウド ストアの間でコピーされる場合は、 Data Management Gateway が、オンプレミスのコンピューターまたは仮想マシンでデータ移動を実行します。When data is being copied between on-premises (or Azure virtual machines/IaaS) and cloud stores, Data Management Gateway performs data movement on an on-premises machine or virtual machine. データは、 ステージング コピー 機能を使用しない限り、クラウド上のサービスを経由しません。The data does not flow through the service in the cloud, unless you use the staged copy capability. この場合、データはシンク データ ストアに書き込まれる前に、ステージング Azure BLOB ストレージを経由します。In this case, data flows through the staging Azure Blob storage before it is written into the sink data store.

コピー アクティビティのあるパイプラインの作成Create a pipeline with Copy Activity

コピー アクティビティのあるパイプラインを作成する方法はいくつかあります。You can create a pipeline with Copy Activity in a couple of ways:

コピー ウィザードを使用By using the Copy Wizard

Data Factory コピー ウィザードは、コピー アクティビティのあるパイプラインを作成するのに役立ちます。The Data Factory Copy Wizard helps you to create a pipeline with Copy Activity. このパイプラインを使用すると、リンクされたサービス、データセット、およびパイプラインの " JSON 定義を作成しなくても "、サポートされているソースからデータをコピーできます。This pipeline allows you to copy data from supported sources to destinations without writing JSON definitions for linked services, datasets, and pipelines. このウィザードの詳細については、「 Data Factory コピー ウィザード 」をご覧ください。See Data Factory Copy Wizard for details about the wizard.

JSON スクリプトを使用By using JSON scripts

Visual Studio または Azure PowerShell で Data Factory エディターを使用すると、パイプラインの JSON 定義を作成できます (コピー アクティビティを使用)。You can use Data Factory Editor in Visual Studio, or Azure PowerShell to create a JSON definition for a pipeline (by using Copy Activity). その後、その定義をデプロイして、Data Factory にパイプラインを作成することができます。Then, you can deploy it to create the pipeline in Data Factory. チュートリアル:Azure Data Factory パイプラインでコピー アクティビティを使用する方法をご覧ください。See Tutorial: Use Copy Activity in an Azure Data Factory pipeline for a tutorial with step-by-step instructions.

JSON プロパティ (名前、説明、入力テーブル、出力テーブル、ポリシーなど) は、あらゆる種類のアクティビティで使用できます。JSON properties (such as name, description, input and output tables, and policies) are available for all types of activities. アクティビティの typeProperties セクションで使用できるプロパティは、各アクティビティの種類によって異なります。Properties that are available in the typeProperties section of the activity vary with each activity type.

コピー アクティビティの場合、 typeProperties セクションはソースとシンクの種類によって異なります。For Copy Activity, the typeProperties section varies depending on the types of sources and sinks. そのデータ ストアについて、コピー アクティビティでサポートされている type プロパティについては、 サポートされているソースとシンク に関するセクションでソース/シンクをクリックしてください。Click a source/sink in the Supported sources and sinks section to learn about type properties that Copy Activity supports for that data store.

JSON 定義のサンプルを次に示します。Here's a sample JSON definition:

{
  "name": "ADFTutorialPipeline",
  "properties": {
    "description": "Copy data from Azure blob to Azure SQL table",
    "activities": [
      {
        "name": "CopyFromBlobToSQL",
        "type": "Copy",
        "inputs": [
          {
            "name": "InputBlobTable"
          }
        ],
        "outputs": [
          {
            "name": "OutputSQLTable"
          }
        ],
        "typeProperties": {
          "source": {
            "type": "BlobSource"
          },
          "sink": {
            "type": "SqlSink"
          },
          "executionLocation": "Japan East"          
        },
        "Policy": {
          "concurrency": 1,
          "executionPriorityOrder": "NewestFirst",
          "retry": 0,
          "timeout": "01:00:00"
        }
      }
    ],
    "start": "2016-07-12T00:00:00Z",
    "end": "2016-07-13T00:00:00Z"
  }
}

出力データセットで定義されているスケジュールに従って、アクティビティが実行されるタイミングが決まります (たとえば、frequency を day、interval を 1 に設定すると、日単位で実行されます)。The schedule that is defined in the output dataset determines when the activity runs (for example: daily, frequency as day, and interval as 1). コピー アクティビティでは、入力データセット (ソース) から出力データセット (シンク) にデータがコピーされます。The activity copies data from an input dataset (source) to an output dataset (sink).

コピー アクティビティには複数の入力データセットを指定できます。You can specify more than one input dataset to Copy Activity. この複数の入力データセットを使用して、アクティビティが実行される前に依存関係が検証されます。They are used to verify the dependencies before the activity is run. ただし、コピーされるのは、最初のデータセットのデータだけです。However, only the data from the first dataset is copied to the destination dataset. 詳細については、「 スケジュールと実行」を参照してください。For more information, see Scheduling and execution.

パフォーマンスとチューニングPerformance and tuning

Azure Data Factory でのデータ移動 (コピー アクティビティ) のパフォーマンスに影響する主な要因については、「 コピー アクティビティのパフォーマンスとチューニングに関するガイド」をご覧ください。See the Copy Activity performance and tuning guide, which describes key factors that affect the performance of data movement (Copy Activity) in Azure Data Factory. このガイドでは、内部テスト実行時の実際のパフォーマンスを一覧表示すると共に、コピー アクティビティのパフォーマンスを最適化するさまざまな方法についても説明します。It also lists the observed performance during internal testing and discusses various ways to optimize the performance of Copy Activity.

フォールト トレランスFault tolerance

既定では、ソースとシンク間に互換性のないデータが検出されると、コピー アクティビティ時にデータのコピーが停止され、エラーが返されます。ただし、互換性のない行はスキップしてログに記録し、互換性のあるデータのみがコピーされコピーが成功するよう、明示的に構成することができます。By default, copy activity will stop copying data and return failure when encounter incompatible data between source and sink; while you can explicitly configure to skip and log the incompatible rows and only copy those compatible data to make the copy succeeded. 詳細については、「Copy Activity fault tolerance」 (コピー アクティビティのフォールト トレランス) を参照してください。See the Copy Activity fault tolerance on more details.

セキュリティに関する考慮事項Security considerations

Azure Data Factory のデータ移動サービスがデータを保護するために使用するセキュリティ インフラストラクチャについて説明する「セキュリティに関する考慮事項」を参照してください。See the Security considerations, which describes security infrastructure that data movement services in Azure Data Factory use to secure your data.

スケジュール設定と順次コピーScheduling and sequential copy

Data Factory でのスケジュール設定と実行のしくみに関する詳細については、 スケジュール設定と実行のしくみ に関するページをご覧ください。See Scheduling and execution for detailed information about how scheduling and execution works in Data Factory. 複数のコピー操作を、順番にまたは順序を指定して 1 つずつ実行できます。It is possible to run multiple copy operations one after another in a sequential/ordered manner. 順次コピーに関するセクションを参照してください。See the Copy sequentially section.

型の変換Type conversions

データ ストアが異なると、ネイティブな型システムも異なります。Different data stores have different native type systems. コピー アクティビティは次の 2 段階のアプローチで型を source から sink に自動的に変換します。Copy Activity performs automatic type conversions from source types to sink types with the following two-step approach:

  1. ネイティブの source 型から .NET 型に変換する。Convert from native source types to a .NET type.
  2. .NET 型からネイティブの sink 型に変換する。Convert from a .NET type to a native sink type.

データ ストアのネイティブ型システムから .NET 型へのマッピングは、該当するデータ ストアの記事を参照してくださいThe mapping from a native type system to a .NET type for a data store is in the respective data store article. (サポートされるデータ ストアの表に示されているリンクをクリックしてください)。(Click the specific link in the Supported data stores table). このマッピングを使用して、テーブル作成時に適切な型を決定でき、コピー アクティビティによって適切な変換が実行されます。You can use these mappings to determine appropriate types while creating your tables, so that Copy Activity performs the right conversions.

次のステップNext steps