Azure Data Factory の概要Introduction to Azure Data Factory

注意

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

Azure Data Factory とは何ですか。What is Azure Data Factory?

ビッグ データの世界では、既存のデータがビジネスにどのように活用されるのでしょうか。In the world of big data, how is existing data leveraged in business? オンプレミスのデータ ソースや他の各種データ ソースから取得した参照データを使用して、クラウドで生成されたデータを補強することはできるのでしょうか。Is it possible to enrich data that's generated in the cloud by using reference data from on-premises data sources or other disparate data sources?

たとえば、あるゲーム会社は、クラウド内のゲームによって生成されるログを収集するとします。For example, a gaming company collects logs that are produced by games in the cloud. これらのログを分析して顧客の好みや内訳、利用行動などについての洞察を得たいと考えているとしましょう。It wants to analyze these logs to gain insights into customer preferences, demographics, usage behavior, and so on. また同社は、アップセルやクロス セルの商機の見極め、魅力的な新機能の開発、ビジネスの成長の後押し、カスタマー エクスペリエンスの向上にも興味があります。The company also wants to identify up-sell and cross-sell opportunities, develop compelling new features to drive business growth, and provide a better experience to customers.

これらのログを分析するには、顧客情報やゲーム情報、マーケティング キャンペーン情報など、オンプレミスのデータ ストアにある参照データを使用する必要があります。To analyze these logs, the company needs to use the reference data such as customer information, game information, and marketing campaign information that is in an on-premises data store. クラウドのデータ ストアにあるログ データに加え、オンプレミスのデータ ストアにある参照データを取り込まなければなりません。Therefore, the company wants to ingest log data from the cloud data store and reference data from the on-premises data store.

次に、クラウドの Hadoop (Azure HDInsight) を使用してそのデータを処理します。Next they want to process the data by using Hadoop in the cloud (Azure HDInsight). その結果得られたデータをクラウドのデータ ウェアハウス (Azure SQL Data Warehouse など) またはオンプレミスのデータ ストア (SQL Server など) に公開します。They want to publish the result data into a cloud data warehouse such as Azure SQL Data Warehouse or an on-premises data store such as SQL Server. この会社は、このワークフローを週 1 回実行したいと考えています。The company wants this workflow to run once a week.

そこで、オンプレミスとクラウド両方のデータ ストアからデータを取り込むことが可能なワークフローを作成できるプラットフォームが必要になります。The company needs a platform where they can create a workflow that can ingest data from both on-premises and cloud data stores. また、既存のコンピューティング サービス (Hadoop など) を使用してデータを変換または処理したうえで、その結果を BI アプリケーションで利用できるようオンプレミスまたはクラウドのデータ ストアに公開できるようにする必要もあります。The company also needs to be able to transform or process data by using existing compute services such as Hadoop, and publish the results to an on-premises or cloud data store for BI applications to consume.

Data Factory の概要

Azure Data Factory は、このようなシナリオに対応するプラットフォームです。Azure Data Factory is the platform for these kinds of scenarios. "そのクラウドベースのデータ統合サービスを通じて、データの移動と変換を調整および自動化するデータ主導型のワークフローをクラウドに作成することができます"。It is a cloud-based data integration service that allows you to create data-driven workflows in the cloud that orchestrate and automate data movement and data transformation. Azure Data Factory を使用すると、次のタスクを実行できます。Using Azure Data Factory, you can do the following tasks:

  • 各種のデータ ストアからデータを取り込むことができるデータ主導型のワークフロー (パイプライン) を作成し、スケジューリングする。Create and schedule data-driven workflows (called pipelines) that can ingest data from disparate data stores.

  • そのデータを Azure HDInsight Hadoop、Spark、Azure Data Lake Analytics、Azure Machine Learning などのコンピューティング サービスを使って処理または変換する。Process or transform the data by using compute services such as Azure HDInsight Hadoop, Spark, Azure Data Lake Analytics, and Azure Machine Learning.

  • ビジネス インテリジェンス (BI) アプリケーションから利用できるよう、Azure SQL Data Warehouse などのデータ ストアに出力データを公開する。Publish output data to data stores such as Azure SQL Data Warehouse for business intelligence (BI) applications to consume.

従来の ETL (Extract-Transform-Load) プラットフォームというよりも、むしろ EL (Extract-Load) と TL (Transform-Load) とを組み合わせたプラットフォームであるといえます。It's more of an Extract-and-Load (EL) and Transform-and-Load (TL) platform rather than a traditional Extract-Transform-and-Load (ETL) platform. 変換では、派生列の追加、行数のカウント、データの並べ替えなどではなく、コンピューティング サービスを使用してデータを処理します。The transformations process data by using compute services rather than by adding derived columns, counting the number of rows, sorting data, and so on.

現在、Azure Data Factory のワークフローで使用したり生成したりするデータは "タイム スライス データ" (時間単位、日単位、週単位など) です。Currently, in Azure Data Factory, the data that workflows consume and produce is time-sliced data (hourly, daily, weekly, and so on). たとえば、パイプラインで 1 日 1 回、入力データを読み取り、データを処理して、出力データを生成するとします。For example, a pipeline might read input data, process data, and produce output data once a day. ワークフローを 1 回だけ実行することもできます。You can also run a workflow just one time.

それはどのように機能しますか?How does it work?

通常、Azure Data Factory のパイプライン (データ 主導型のワークフロー) では次の 3 つのステップが実行されます。The pipelines (data-driven workflows) in Azure Data Factory typically perform the following three steps:

Azure Data Factory の 3 つのステージ

接続と収集Connect and collect

企業が所有するデータは多種多様で、ソースもさまざまです。Enterprises have data of various types that are located in disparate sources. 情報生成システム構築の最初のステップは、必要なすべてのデータ ソースと処理の機能に接続することです。The first step in building an information production system is to connect to all the required sources of data and processing. これらのソースには、SaaS サービス、ファイル共有、FTP、Web サービスが含まれます。These sources include SaaS services, file shares, FTP, and web services. その後、必要に応じて後続の処理機能にデータを移動します。Then move the data as-needed to a centralized location for subsequent processing.

Data Factory を使用していない企業では、カスタムのデータ移動コンポーネントを構築するか、これらのデータ ソースと処理を統合するカスタム サービスを作成しなければなりません。Without Data Factory, enterprises must build custom data movement components or write custom services to integrate these data sources and processing. このようなシステムの統合と保守は高コストで、容易ではありません。It is expensive and hard to integrate and maintain such systems. また、このようなシステムでは、エンタープライズ クラスの監視やアラートが欠け、フル マネージドのサービスが提供できるような制御機能を用意できないことも少なくありません。These systems also often lack the enterprise grade monitoring, alerting, and controls that a fully managed service can offer.

Data Factory を使用すれば、データ パイプラインのコピー アクティビティで、オンプレミスとクラウドの両方のソース データ ストアからクラウド内の一元化されたデータ ストアにデータを移動し、詳しく分析することができます。With Data Factory, you can use the Copy Activity in a data pipeline to move data from both on-premises and cloud source data stores to a centralization data store in the cloud for further analysis.

たとえば、Azure Data Lake Store でデータを収集し、後で Azure Data Lake Analytics コンピューティング サービスを使用してデータを変換することができます。For example, you can collect data in Azure Data Lake Store and transform the data later by using an Azure Data Lake Analytics compute service. または、Azure Blob Storage でデータを収集し、後で Azure HDInsight Hadoop クラスターを使用してデータを変換できます。Or, collect data in Azure blob storage and transform it later by using an Azure HDInsight Hadoop cluster.

変換と強化Transform and enrich

クラウド上の一元的なデータ ストアにデータが集まったら、HDInsight Hadoop、Spark、Data Lake Analytics、Machine Learning などのコンピューティング サービスを使って、そのデータを処理または転送します。After data is present in a centralized data store in the cloud, process or transfer it by using compute services such as HDInsight Hadoop, Spark, Data Lake Analytics, or Machine Learning. 保守しやすい管理されたスケジュールで確実に変換データを生成し、信頼性の高いデータを運用環境に提供する必要があります。You want to reliably produce transformed data on a maintainable and controlled schedule to feed production environments with trusted data.

発行Publish

変換したデータをクラウドから SQL Server などのオンプレミス ソースに送信します。Deliver transformed data from the cloud to on-premises sources such as SQL Server. または、BI や分析ツールなどのアプリケーションで利用できるよう、それをクラウド ストレージ ソース内に保持することもできます。Alternatively, keep it in your cloud storage sources for consumption by BI and analytics tools and other applications.

主なコンポーネントKey components

1 つの Azure サブスクリプションで 1 つ以上の Azure Data Factory インスタンス (データ ファクトリ) を利用できます。An Azure subscription can have one or more Azure Data Factory instances (or data factories). Azure Data Factory は、4 つの主要コンポーネントで構成されています。Azure Data Factory is composed of four key components. これらのコンポーネントの連携によって実現するプラットフォームを基盤として、データ移動とデータ変換のステップを含んだデータ主導型のワークフローを作成することができます。These components work together to provide the platform on which you can compose data-driven workflows with steps to move and transform data.

パイプラインPipeline

データ ファクトリは、1 つまたは複数のパイプラインを持つことができます。A data factory can have one or more pipelines. パイプラインは、アクティビティをグループ化したものです。A pipeline is a group of activities. パイプライン内のアクティビティがまとまって 1 つのタスクを実行します。Together, the activities in a pipeline perform a task.

たとえば、パイプラインに Azure BLOB からデータを取り込むアクティビティのグループを含め、HDInsight クラスターで Hive クエリを実行してデータをパーティション分割することができます。For example, a pipeline can contain a group of activities that ingests data from an Azure blob, and then runs a Hive query on an HDInsight cluster to partition the data. パイプラインのメリットは、アクティビティを個別にではなく、セットとして管理できることです。The benefit of this is that the pipeline allows you to manage the activities as a set instead of each one individually. たとえば、個々のアクティビティをスケジュールする代わりに、パイプラインをデプロイしてスケジュールすることができます。For example, you can deploy and schedule the pipeline, instead of scheduling independent activities.

アクティビティActivity

パイプラインには、1 つまたは複数のアクティビティを含めることができます。A pipeline can have one or more activities. アクティビティは、データに対して実行するアクションを定義します。Activities define the actions to perform on your data. たとえば、コピー アクティビティを使用して、データ ストア間でデータをコピーできます。For example, you can use a copy activity to copy data from one data store to another data store. 同様に、Hive アクティビティを使用できます。Similarly, you can use a Hive activity. Hive アクティビティは、Azure HDInsight クラスターに対して Hive クエリを実行して、データを変換または分析します。A Hive activity runs a Hive query on an Azure HDInsight cluster to transform or analyze your data. Data Factory では、データ移動アクティビティとデータ変換アクティビティの 2 種類のアクティビティがサポートされています。Data Factory supports two types of activities: data movement activities and data transformation activities.

データ移動アクティビティData movement activities

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

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)

詳細については、「コピー アクティビティを使用したデータの移動」を参照してください。For more information, see Move data by using Copy Activity.

データ変換アクティビティData transformation activities

Azure Data Factory は、次の変換アクティビティをサポートしています。これらのアクティビティは、個別または他のアクティビティと連結した状態でパイプラインに追加できます。Azure Data Factory supports the following transformation activities that can be added to pipelines either individually or chained with another activity.

データ変換アクティビティData transformation activity Compute 環境Compute environment
HiveHive HDInsight [Hadoop]HDInsight [Hadoop]
PigPig HDInsight [Hadoop]HDInsight [Hadoop]
MapReduceMapReduce HDInsight [Hadoop]HDInsight [Hadoop]
Hadoop ストリーミングHadoop Streaming HDInsight [Hadoop]HDInsight [Hadoop]
SparkSpark HDInsight [Hadoop]HDInsight [Hadoop]
Machine Learning アクティビティ:バッチ実行とリソースの更新Machine Learning activities: Batch Execution and Update Resource Azure VMAzure VM
ストアド プロシージャStored Procedure Azure SQL、Azure SQL Data Warehouse、または SQL ServerAzure SQL, Azure SQL Data Warehouse, or SQL Server
Data Lake Analytics U-SQLData Lake Analytics U-SQL Azure Data Lake AnalyticsAzure Data Lake Analytics
DotNetDotNet HDInsight [Hadoop] または Azure BatchHDInsight [Hadoop] or Azure Batch

注意

MapReduce アクティビティを使用して、HDInsight Spark クラスターで Spark プログラムを実行することができます。You can use MapReduce activity to run Spark programs on your HDInsight Spark cluster. 詳細については、 Data Factory からの Spark プログラムの呼び出し に関するページを参照してください。See Invoke Spark programs from Azure Data Factory for details. カスタム アクティビティを作成して、R がインストールされている HDInsight クラスターで R スクリプトを実行することができます。You can create a custom activity to run R scripts on your HDInsight cluster with R installed. Azure Data Factory を使用した R スクリプトの実行に関するトピックを参照してください。See Run R Script using Azure Data Factory.

詳細については、「コピー アクティビティを使用したデータの移動」を参照してください。For more information, see Move data by using Copy Activity.

カスタム .NET アクティビティCustom .NET activities

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

データセットDatasets

アクティビティは、入力として 0 個以上のデータセットを受け取り、出力として 1 つまたは複数のデータセットを生成します。An activity takes zero or more datasets as inputs and one or more datasets as outputs. データセットは、データ ストア内のデータ構造を表します。Datasets represent data structures within the data stores. これらの構造は、アクティビティ (入力や出力など) で使用するデータをポイントまたは参照します。These structures point to or reference the data you want to use in your activities (such as inputs or outputs).

たとえば、Azure BLOB データセットは、パイプラインによるデータの読み取り先として、Azure BLOB Storage 内の BLOB コンテナーと BLOB フォルダーを指定します。For example, an Azure blob dataset specifies the blob container and folder in the Azure blob storage from which the pipeline should read the data. または、アクティビティの出力データの書き込み先となるテーブルを Azure SQL テーブル データセットで指定します。Or an Azure SQL table dataset specifies the table to which the output data is written by the activity.

リンクされたサービスLinked services

リンクされたサービスは、接続文字列によく似ており、Data Factory が外部リソースに接続するために必要な接続情報を定義します。Linked services are much like connection strings, which define the connection information that's needed for Data Factory to connect to external resources. リンクされたサービスはデータ ソースへの接続を定義するもので、データセットはデータの構造を表すもの、と捉えることができます。Think of it this way: a linked service defines the connection to the data source and a dataset represents the structure of the data.

たとえば、Azure Storage アカウントに接続するための接続文字列は、Azure Storage のリンクされたサービスで指定します。For example, an Azure Storage-linked service specifies a connection string with which to connect to the Azure Storage account. データを格納する BLOB コンテナーやフォルダーは、Azure BLOB データセットで指定します。An Azure blob dataset specifies the blob container and the folder that contains the data.

Data Factory ではリンクされたサービスは 2 つの理由で使用されます。Linked services are used for two reasons in Data Factory:

  • オンプレミスの SQL Server データベース、Oracle データベース、ファイル共有、Azure Blob Storage アカウント、その他の "データ ストア" を表すため。To represent a data store that includes, but isn't limited to, an on-premises SQL Server database, Oracle database, file share, or Azure blob storage account. サポートされているデータ ストアの一覧については、 データ移動アクティビティ に関する記事をご覧ください。See the Data movement activities section for a list of supported data stores.

  • アクティビティの実行をホストできる コンピューティング リソース を表すため。To represent a compute resource that can host the execution of an activity. たとえば、HDInsightHive アクティビティは HDInsight Hadoop クラスターで実行されます。For example, the HDInsightHive activity runs on an HDInsight Hadoop cluster. サポートされているコンピューティング環境の一覧については、「データ変換アクティビティ」セクションを参照してください。See the Data transformation activities section for a list of supported compute environments.

Data Factory エンティティ間の関係Relationship between Data Factory entities

図:クラウド データ統合サービスである Data Factory - 主要な概念

サポートされているリージョンSupported regions

現時点では、データ ファクトリは、米国西部、米国東部、北ヨーロッパ リージョンで作成できます。Currently, you can create data factories in the West US, East US, and North Europe regions. ただし、データ ファクトリは、他の Azure リージョン内のデータ ストアやコンピューティング サービスにアクセスし、データ ストア間でデータを移動したり、コンピューティング サービスを使用してデータを処理したりできます。However, a data factory can access data stores and compute services in other Azure regions to move data between data stores or process data by using compute services.

Azure Data Factory 自体は、データを保存しません。Azure Data Factory itself does not store any data. これを使用すると、データ主導型のワークフローを作成し、サポートされているデータ ストア間でのデータ移動を調整できます。It lets you create data-driven workflows to orchestrate the movement of data between supported data stores. さらに、他のリージョンまたはオンプレミスの環境にあるコンピューティング サービスを使用してデータを処理することもできます。It also lets you process data by using compute services in other regions or in an on-premises environment. また、プログラムと UI の両方のメカニズムを使用して、ワークフローを監視および管理することもできます。It also allows you to monitor and manage workflows by using both programmatic and UI mechanisms.

Data Factory は、米国西部、米国東部、北ヨーロッパ リージョンでのみ使用できます。Data Factory is available in only West US, East US, and North Europe regions. ただし、Data Factory 内でデータ移動を実行するサービスは、いくつかのリージョンでグローバルに利用できます。However, the service that powers the data movement in Data Factory is available globally in several regions. データ ストアがファイアウォールの内側にある場合は、オンプレミスの環境にインストールされているデータ管理ゲートウェイがデータを移動します。If a data store is behind a firewall, then a Data Management Gateway that's installed in your on-premises environment moves the data instead.

たとえば、Azure HDInsight クラスターや Azure Machine Learning などのコンピューティング環境が西ヨーロッパ リージョンにあると想定します。For an example, let's assume that your compute environments such as Azure HDInsight cluster and Azure Machine Learning are located in the West Europe region. Azure Data Factory インスタンスは、北ヨーロッパに作成して使用できます。You can create and use an Azure Data Factory instance in North Europe. その後、それを使用すると、西ヨーロッパのコンピューティング環境でジョブをスケジュールできます。Then you can use it to schedule jobs on your compute environments in West Europe. Data Factory がコンピューティング環境でジョブをトリガーするまでに数ミリ秒かかりますが、コンピューティング環境でのジョブの実行時間は変わりません。It takes a few milliseconds for Data Factory to trigger the job on your compute environment, but the time for running the job on your computing environment does not change.

パイプライン作成の概要Get started with creating a pipeline

Azure Data Factory には、次のいずれかのツールまたは API でデータ パイプラインを作成できます。You can use one of these tools or APIs to create data pipelines in Azure Data Factory:

  • Visual StudioVisual Studio
  • PowerShellPowerShell
  • .NET API.NET API
  • REST APIREST API
  • Azure Resource Manager テンプレートAzure Resource Manager template

データ パイプラインでデータ ファクトリを構築する方法については、以下のチュートリアルで紹介されている具体的な手順に従ってください。To learn how to build data factories with data pipelines, follow the step-by-step instructions in the following tutorials:

チュートリアルTutorial 説明Description
2 つのクラウド データ ストア間でのデータの移動Move data between two cloud data stores Blob Storage から SQL データベースにデータを移動するパイプラインを備えたデータ ファクトリを作成します。Create a data factory with a pipeline that moves data from blob storage to a SQL database.
Hadoop クラスターを使用したデータの変換Transform data by using Hadoop cluster Azure HDInsight (Hadoop) クラスターで Hive スクリプトを実行してデータを処理するデータ パイプラインを備えた最初の Azure データ ファクトリを構築します。Build your first Azure data factory with a data pipeline that processes data by running a Hive script on an Azure HDInsight (Hadoop) cluster.
データ管理ゲートウェイを使用したオンプレミス データ ストアとクラウド データ ストア間でのデータの移動Move data between an on-premises data store and a cloud data store by using Data Management Gateway オンプレミスの SQL Server データベースから Azure BLOB にデータを移動するパイプラインを備えたデータ ファクトリを構築します。Build a data factory with a pipeline that moves data from an on-premises SQL Server database to an Azure blob. チュートリアルの一環として、ご使用のコンピューターに Data Management Gateway をインストールして構成します。As part of the walkthrough, you install and configure the Data Management Gateway on your machine.