コピー アクティビティを使用したデータの移動

概要

Azure Data Factory では、コピー アクティビティを使用して、オンプレミスとクラウド データ ストア間でデータをコピーできます。 コピーされたデータをさらに変換して分析することができます。 また、コピー アクティビティを使用して、変換や分析の結果を発行し、ビジネス インテリジェンス (BI) やアプリケーションで使用することもできます。

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

コピー アクティビティは、安全性、信頼性、拡張性に優れた グローバルに利用可能なサービスによって動作します。 この記事では、Data Factory でのコピー アクティビティによるデータの移動について詳しく説明します。

まず、2 つのクラウド データ ストアの間、およびオンプレミスのデータ ストアとクラウド データ ストアの間でデータの移行がどのように行われるかについて説明します。

注意

アクティビティ全般については、 パイプラインとアクティビティの概要に関するページをご覧ください。

2 つのクラウド データ ストア間でのデータのコピー

ソース データ ストアとシンク データ ストアの両方がクラウドにある場合、コピー アクティビティは、次の段階を経てデータをソースからシンクにコピーします。 コピー アクティビティを実行するサービスが行う処理を次に示します。

  1. ソース データ ストアからデータを読み取る。
  2. シリアル化/逆シリアル化、圧縮/圧縮解除、列マッピング、型変換を実行する。 この操作は、入力データセット、出力データセット、およびコピー アクティビティの構成に基づいて実行されます。
  3. コピー先データ ストアにデータを書き込む。

このサービスでは、データ移動の実行に適したリージョンが自動的に選択されます。 選択されるのは、通常、シンク データ ストアに最も近いリージョンです。

クラウド間のコピー

オンプレミス データ ストアとクラウド データ ストア間でのデータのコピー

オンプレミス データ ストアと、クラウド データ ストアの間でデータを安全に移動するには、Data Management Gateway を、オンプレミスのコンピューターにインストールする必要があります。 Data Management Gateway は、ハイブリッド データの移動と処理を可能にするエージェントです。 この Data Management Gateway は、データ ストア自体と同じコンピューター、またはデータ ストアにアクセスできる別のコンピューターにインストールできます。

このシナリオでは、Data Management Gateway によって、シリアル化/逆シリアル化、圧縮/圧縮解除、列マッピング、型変換が実行されます。 データは Azure Data Factory サービスを経由せず、 Data Management Gateway によって、直接目的のストアに書き込まれます。

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

概要とチュートリアルについては、 オンプレミスのデータ ストアとクラウド データ ストアの間でのデータ移動 に関する記事をご覧ください。 このエージェントの詳細については、「 Data Management Gateway 」をご覧ください。

Data Management Gateway を使用すると、Azure IaaS 仮想マシン (VM) でホストされている、サポートされるデータ ストア間でデータを移動することもできます。 この場合、Data Management Gateway は、データ ストア自体と同じ VM、またはデータ ストアにアクセスできる別の VM にインストールできます。

サポートされるデータ ストアと形式

Data Factory のコピー アクティビティは、ソース データ ストアからシンク データ ストアにデータをコピーします。 Data Factory は次のデータ ストアをサポートしています。 また、任意のソースのデータを任意のシンクに書き込むことができます。 データ ストアをクリックすると、そのストアとの間でデータをコピーする方法がわかります。

注意

コピー アクティビティでサポートされていないデータ ストアとの間でデータを移動する必要がある場合は、データのコピーと移動に独自のロジックを使用した、Data Factory の カスタム アクティビティ を使用します。 カスタム アクティビティの作成と使用の詳細については、「 Azure Data Factory パイプラインでカスタム アクティビティを使用する」をご覧ください。

カテゴリ データ ストア ソースとしてサポート シンクとしてサポート
Azure Azure BLOB Storage
  Azure Cosmos DB (DocumentDB API)
  Azure Data Lake Store
  Azure SQL Database
  Azure SQL Data Warehouse
  Azure Search インデックス
  Azure Table Storage
データベース Amazon Redshift
  DB2*
  MySQL*
  Oracle*
  PostgreSQL*
  SAP Business Warehouse*
  SAP HANA*
  SQL Server*
  Sybase*
  Teradata*
NoSQL Cassandra*
  MongoDB*
ファイル Amazon S3
  ファイル システム*
  FTP
  HDFS*
  SFTP
その他 汎用 HTTP
  汎用 OData
  汎用 ODBC*
  Salesforce
  Web テーブル (HTML のテーブル)
  GE Historian*
注意
  • が付いたデータ ストアは、オンプレミスと Azure IaaS のどちらでもサポートされます。ただし、オンプレミス/Azure IaaS のコンピューターに Data Management Gateway をインストールする必要があります。

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

コピー アクティビティを使用して、2 つのファイル ベースのデータ ストア間でファイルをそのままコピーすることができ、入力および出力の両方のデータセット定義の format セクションをスキップすることもできます。 これにより、シリアル化/逆シリアル化を実行することなく、データが効率的にコピーされます。

また、コピー アクティビティは、指定された形式 (テキスト、JSON、Avro、ORC、Parquet) でファイルの読み取りと書き込みを行い、圧縮コーデック GZip、Deflate、BZip2、および ZipDeflate がサポートされています。 詳細については、「サポートされているファイル形式と圧縮形式」を参照してください。

たとえば、次のようなコピー アクティビティを実行できます。

  • オンプレミスの SQL Server のデータをコピーし、Azure Data Lake Store に ORC 形式で書き込む。
  • オンプレミスのファイル システムからテキスト (CSV) 形式でファイルをコピーし、Azure BLOB に Avro 形式で書き込む。
  • オンプレミスのファイルシステムから zip ファイルをコピーし、圧縮を解除したうえで Azure Data Lake Store 書き込む。
  • Azure BLOB から GZip 圧縮テキスト (CSV) 形式でデータをコピーし、Azure SQL Database に書き込む。

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

Azure Data Factory は、米国西部、米国東部、北ヨーロッパ リージョンでのみ使用できます。 ただし、コピー アクティビティを実行するサービスは、以下のリージョンと場所でグローバルに使用できます。 グローバルに使用できるトポロジでは効率的なデータ移動が保証されます。このデータ移動では、通常、リージョンをまたがるホップが回避されます。 特定のリージョンにおける Data Factory とデータ移動の提供状況については、リージョン別のサービスに関するページをご覧ください。

クラウド データ ストア間でのデータのコピー

ソース データとシンク データが両方ともクラウドにある場合、Data Factory は同じ地域内で対象シンクに最も近いリージョンにあるサービスのデプロイメントを使用して、データを移動します。 リージョンのマッピングについては、以下の表をご覧ください。

コピー先データ ストアの地理的な場所 コピー先データ ストアのリージョン データ移動に使用するリージョン
米国 米国東部 米国東部
  米国東部 2 米国東部 2
  米国中央部 米国中央部
  米国中北部 米国中北部
  米国中南部 米国中南部
  米国中西部 米国中西部
  米国西部 米国西部
  米国西部 2 米国西部
カナダ カナダ東部 カナダ中部
  カナダ中部 カナダ中部
ブラジル ブラジル南部 ブラジル南部
ヨーロッパ 北ヨーロッパ 北ヨーロッパ
  西ヨーロッパ 西ヨーロッパ
英国 英国西部 英国南部
  英国南部 英国南部
アジア太平洋 東南アジア 東南アジア
  東アジア 東南アジア
オーストラリア オーストラリア東部 オーストラリア東部
  オーストラリア南東部 オーストラリア南東部
日本 東日本 東日本
  西日本 東日本
インド インド中部 インド中部
  インド西部 インド中部
  インド南部 インド中部

また、コピー アクティビティ typePropertiesexecutionLocation プロパティを使用して、コピーで使用する Data Factory サービスのリージョンを明示的に指定することもできます。 上記の「データ移動に使用するリージョン」列には、このプロパティでサポートされる値が示されています。 コピー中のデータは、ネットワーク経由でこのリージョンを通過します。 たとえば、韓国の Azure Store 間でコピーするには、日本リージョン経由でルーティングされるように "executionLocation": "Japan East" を指定します (JSON のサンプルを参照してください)。

注意

コピー先データ ストアのリージョンが前のリストにない場合、または検出できない場合は、executionLocation が指定されていないと、既定では代わりのリージョンには移動せず、コピー アクティビティは失敗します。 今後さらに多くのリージョンがサポートされる予定です。

オンプレミス データ ストアとクラウド データ ストア間でのデータのコピー

データがオンプレミス (または Azure 仮想マシン/IaaS) のストアとクラウド ストアの間でコピーされる場合は、 Data Management Gateway が、オンプレミスのコンピューターまたは仮想マシンでデータ移動を実行します。 データは、 ステージング コピー 機能を使用しない限り、クラウド上のサービスを経由しません。 この場合、データはシンク データ ストアに書き込まれる前に、ステージング Azure BLOB ストレージを経由します。

コピー アクティビティのあるパイプラインの作成

コピー アクティビティのあるパイプラインを作成する方法はいくつかあります。

コピー ウィザードを使用

Data Factory コピー ウィザードは、コピー アクティビティのあるパイプラインを作成するのに役立ちます。 このパイプラインを使用すると、リンクされたサービス、データセット、およびパイプラインの " JSON 定義を作成しなくても "、サポートされているソースからデータをコピーできます。 このウィザードの詳細については、「 Data Factory コピー ウィザード 」をご覧ください。

JSON スクリプトを使用

Azure ポータル、Visual Studio、または Azure PowerShell で Data Factory エディターを使用すると、パイプラインの JSON 定義を作成できます (コピー アクティビティを使用)。 その後、その定義をデプロイして、Data Factory にパイプラインを作成することができます。 詳しい手順については、 Azure Data Factory パイプラインでコピー アクティビティを使用する方法 に関するチュートリアルをご覧ください。

JSON プロパティ (名前、説明、入力テーブル、出力テーブル、ポリシーなど) は、あらゆる種類のアクティビティで使用できます。 アクティビティの typeProperties セクションで使用できるプロパティは、各アクティビティの種類によって異なります。

コピー アクティビティの場合、 typeProperties セクションはソースとシンクの種類によって異なります。 そのデータ ストアについて、コピー アクティビティでサポートされている type プロパティについては、 サポートされているソースとシンク に関するセクションでソース/シンクをクリックしてください。

JSON 定義のサンプルを次に示します。

{
  "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 に設定すると、日単位で実行されます)。 コピー アクティビティでは、入力データセット (ソース) から出力データセット (シンク) にデータがコピーされます。

コピー アクティビティには複数の入力データセットを指定できます。 この複数の入力データセットを使用して、アクティビティが実行される前に依存関係が検証されます。 ただし、コピーされるのは、最初のデータセットのデータだけです。 詳細については、「 スケジュールと実行」を参照してください。

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

Azure Data Factory でのデータ移動 (コピー アクティビティ) のパフォーマンスに影響する主な要因については、「 コピー アクティビティのパフォーマンスとチューニングに関するガイド」をご覧ください。 このガイドでは、内部テスト実行時の実際のパフォーマンスを一覧表示すると共に、コピー アクティビティのパフォーマンスを最適化するさまざまな方法についても説明します。

スケジュール設定と順次コピー

Data Factory でのスケジュール設定と実行のしくみに関する詳細については、 スケジュール設定と実行のしくみ に関するページをご覧ください。 複数のコピー操作を、順番にまたは順序を指定して 1 つずつ実行できます。 順次コピーに関するセクションを参照してください。

型の変換

データ ストアが異なると、ネイティブな型システムも異なります。 コピー アクティビティは次の 2 段階のアプローチで型を source から sink に自動的に変換します。

  1. ネイティブの source 型から .NET 型に変換する。
  2. .NET 型からネイティブの sink 型に変換する。

データ ストアのネイティブ型システムから .NET 型へのマッピングは、該当するデータ ストアの記事を参照してください (サポートされるデータ ストアの表に示されているリンクをクリックしてください)。 このマッピングを使用して、テーブル作成時に適切な型を決定でき、コピー アクティビティによって適切な変換が実行されます。

次のステップ