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

ビッグ データの世界では、未整理の生データは、多くの場合、リレーショナル、非リレーショナル、その他のストレージ システム内に格納されます。In the world of big data, raw, unorganized data is often stored in relational, non-relational, and other storage systems. ただし、生データ自体には、アナリストや、データ サイエンティスト、管理職意思決定者に有用な分析を提供するのに必要となる正しいコンテキストや意味はありません。However, on its own, raw data doesn't have the proper context or meaning to provide meaningful insights to analysts, data scientists, or business decision makers.

ビッグ データに必要なのは、データ制御と運用化の処理によって、膨大な量の生データを実用的なビジネス分析へと転換できるサービスです。Big data requires service that can orchestrate and operationalize processes to refine these enormous stores of raw data into actionable business insights. Azure Data Factory は、ETL (抽出 - 変換 - 読み込み)、ELT (抽出 - 読み込み - 変換)、データ統合という複雑なハイブリッド プロジェクト用に構築された、管理クラウド サービスです。Azure Data Factory is a managed cloud service that's built for these complex hybrid extract-transform-load (ETL), extract-load-transform (ELT), and data integration projects.

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

これらのログを分析するには、顧客情報やゲーム情報、マーケティング キャンペーン情報など、オンプレミスのデータ ストアにある参照データを使用する必要があります。To analyze these logs, the company needs to use reference data such as customer information, game information, and marketing campaign information that is in an on-premises data store. この会社は、オンプレミスのデータ ストアにあるこれらのデータを、クラウドのデータ ストアにある追加のログ データと統合して活用しようと考えています。The company wants to utilize this data from the on-premises data store, combining it with additional log data that it has in a cloud data store.

状況を正確に把握するために、クラウドの Spark クラスターを使用して統合したデータを処理し (Azure HDInsight)、変換したデータを Azure SQL Data Warehouse などのクラウドのデータ ウェアハウスに公開して、これらのデータに基づくレポートを簡単に作成できるようにすることを希望しています。To extract insights, it hopes to process the joined data by using a Spark cluster in the cloud (Azure HDInsight), and publish the transformed data into a cloud data warehouse such as Azure SQL Data Warehouse to easily build a report on top of it. このワークフローを自動化し、日単位のスケジュールに従って監視、管理することが目標となります。They want to automate this workflow, and monitor and manage it on a daily schedule. それを実行するタイミングは、BLOB ストア コンテナーにファイルが到着したときとします。They also want to execute it when files land in a blob store container.

Azure Data Factory は、このようなデータ シナリオを解決するプラットフォームです。Azure Data Factory is the platform that solves such data scenarios. クラウドベースの ETL およびデータ統合サービスを通じて、データの移動と変換を大規模に制御するデータ ドリブンのワークフローを作成できますIt is the cloud-based ETL and data integration service that allows you to create data-driven workflows for orchestrating data movement and transforming data at scale. Azure Data Factory を使えば、各種のデータ ストアからデータを取り込むことができるデータ主導型のワークフロー (パイプライン) を作成し、スケジューリングできます。Using Azure Data Factory, you can create and schedule data-driven workflows (called pipelines) that can ingest data from disparate data stores. コンピューティング サービス (Azure HDInsight Hadoop、Azure Databricks、Azure SQL Database など) やデータ フローを使用してデータを変換する複雑な ETL プロセスを視覚的に作成できます。You can build complex ETL processes that transform data visually with data flows or by using compute services such as Azure HDInsight Hadoop, Azure Databricks, and Azure SQL Database.

さらに、ビジネス インテリジェンス (BI) アプリケーションから利用できるよう、Azure SQL Data Warehouse などのデータ ストアに、変換済みのデータを公開することもできます。Additionally, you can publish your transformed data to data stores such as Azure SQL Data Warehouse for business intelligence (BI) applications to consume. Azure Data Factory を使うと、最終的に、生データを意味のあるデータ ストアとデータ レイクに整理し、より的確な意思決定に活用できます。Ultimately, through Azure Data Factory, raw data can be organized into meaningful data stores and data lakes for better business decisions.

Data Factory の最上位ビュー

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

Data Factory には、包括的なエンド ツー エンドのプラットフォームをデータ エンジニアに提供する、相互接続された一連のシステムが含まれています。Data Factory contains a series of interconnected systems that provide a complete end-to-end platform for data engineers.

接続と収集Connect and collect

企業は、さまざまな種類のデータをさまざまなソースで管理しています。ソースには、オンプレミスのソースやクラウド内のソース、構造化されたもの、構造化されていないもの、半構造化されたものなどがあり、そのデータの受信間隔も速度もまちまちです。Enterprises have data of various types that are located in disparate sources on-premises, in the cloud, structured, unstructured, and semi-structured, all arriving at different intervals and speeds.

情報生成システム構築の最初のステップは、サービスとしてのソフトウェア (SaaS) サービス、データベース、ファイル共有、FTP Web サービスなど、必要なすべてのデータ ソースと処理の機能に接続することです。The first step in building an information production system is to connect to all the required sources of data and processing, such as software-as-a-service (SaaS) services, databases, file shares, and FTP web services. その後、必要に応じて後続の処理機能にデータを移動するステップへと続きます。The next step is to 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's expensive and hard to integrate and maintain such systems. そのうえ、エンタープライズ クラスの監視やアラートが欠け、フル マネージドのサービスが提供できるような制御機能を用意できないことも少なくありません。In addition, they often lack the enterprise-grade monitoring, alerting, and the 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 Storage でデータを収集し、後で Azure Data Lake Analytics コンピューティング サービスを使用してデータを変換することができます。For example, you can collect data in Azure Data Lake Storage and transform the data later by using an Azure Data Lake Analytics compute service. または、Azure Blob Storage でデータを収集し、後で Azure HDInsight Hadoop クラスターを使用してデータを変換することもできます。You can also collect data in Azure Blob storage and transform it later by using an Azure HDInsight Hadoop cluster.

変換と強化Transform and enrich

クラウド上の一元的なデータ ストアにデータが集まったら、ADF マッピング データ フローを使用して、その収集されたデータを処理または変換します。After data is present in a centralized data store in the cloud, process or transform the collected data by using ADF mapping data flows. データ エンジニアは、Spark クラスターや Spark プログラミングの知識がなくても、データ フローを使用して、Spark 上で実行されるデータ変換グラフを作成、維持することができます。Data flows enable data engineers to build and maintain data transformation graphs that execute on Spark without needing to understand Spark clusters or Spark programming.

変換を手動でコーディングしたい場合でも、ADF は、HDInsight Hadoop、Spark、Data Lake Analytics、Machine Learning などのコンピューティング サービス上で目的の変換を実行するための外部アクティビティをサポートしています。If you prefer to code transformations by hand, ADF supports external activities for executing your transformations on compute services such as HDInsight Hadoop, Spark, Data Lake Analytics, and Machine Learning.

CI/CD と公開CI/CD and publish

Data Factory では、Azure DevOps と GitHub を使用したデータ パイプラインの CI/CD が完全にサポートされています。Data Factory offers full support for CI/CD of your data pipelines using Azure DevOps and GitHub. ETL プロセスの開発とデリバリを段階的に進めたうえで、完成した製品を公開することが可能です。This allows you to incrementally develop and deliver your ETL processes before publishing the finished product. 生データが変換されてビジネスに即応して利用できる形態になったら、このデータを、ビジネス ユーザーがビジネス インテリジェンス ツールから参照できる Azure Data Warehouse、Azure SQL Database、Azure CosmosDB、またはその他の分析エンジンに読み込みます。After the raw data has been refined into a business-ready consumable form, load the data into Azure Data Warehouse, Azure SQL Database, Azure CosmosDB, or whichever analytics engine your business users can point to from their business intelligence tools.

監視Monitor

データ統合パイプラインを正常に構築してデプロイし、変換したデータからビジネス価値を生み出せるようになったなら、スケジュール化したアクティビティとパイプラインを監視して、成功率と失敗率を確認することができます。After you have successfully built and deployed your data integration pipeline, providing business value from refined data, monitor the scheduled activities and pipelines for success and failure rates. Azure Data Factory には、Azure Monitor、API、PowerShell、Azure Monitor ログ、Azure portal の正常性パネルを利用してパイプラインを監視する、ビルトイン サポートが用意されています。Azure Data Factory has built-in support for pipeline monitoring via Azure Monitor, API, PowerShell, Azure Monitor logs, and health panels on the Azure portal.

トップレベルの概念Top-level concepts

1 つの Azure サブスクリプションで 1 つ以上の Azure Data Factory インスタンス (データ ファクトリ) を利用できます。An Azure subscription might 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 might have one or more pipelines. パイプラインは、1 つの作業単位を実行するための複数のアクティビティから成る論理的なグループです。A pipeline is a logical grouping of activities that performs a unit of work. パイプライン内のアクティビティがまとまって 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 managing each one individually. パイプライン内のアクティビティは、連鎖して順次処理することも、独立して並行処理することもできます。The activities in a pipeline can be chained together to operate sequentially, or they can operate independently in parallel.

データ フローのマッピングMapping data flows

あらゆるサイズのデータの変換に使用できるデータ変換ロジックのグラフを作成して管理します。Create and manage graphs of data transformation logic that you can use to transform any-sized data. 再利用可能なデータ変換ルーチンのライブラリを構築し、それらのプロセスを ADF パイプラインからスケールアウト方式で実行することができます。You can build-up a reusable library of data transformation routines and execute those processes in a scaled-out manner from your ADF pipelines. Data Factory は、必要なときにスピンアップおよびスピンダウンする Spark クラスターでロジックを実行します。Data Factory will execute your logic on a Spark cluster that spins-up and spins-down when you need it. クラスターを自分で維持、管理する必要はありません。You won't ever have to manage or maintain clusters.

アクティビティActivity

アクティビティは、パイプライン内の処理ステップを表します。Activities represent a processing step in a pipeline. たとえば、コピー アクティビティを使用して、データ ストア間でデータをコピーできます。For example, you might use a copy activity to copy data from one data store to another data store. 同様に、Azure HDInsight クラスターに対して Hive クエリを実行する Hive アクティビティを使用して、データを変換または分析できます。Similarly, you might use a Hive activity, which runs a Hive query on an Azure HDInsight cluster, to transform or analyze your data. Data Factory では、データ移動アクティビティ、データ変換アクティビティ、制御アクティビティの 3 種類のアクティビティがサポートされています。Data Factory supports three types of activities: data movement activities, data transformation activities, and control activities.

データセットDatasets

データセットは、データ ストア内のデータ構造を表しています。アクティビティ内でデータを入力または出力として使用したい場合は、そのデータをポイントまたは参照するだけで済みます。Datasets represent data structures within the data stores, which simply point to or reference the data you want to use in your activities as inputs or outputs.

リンクされたサービス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 to connect to the Azure Storage account. また、データを格納する BLOB コンテナーやフォルダーは、Azure BLOB データセットで指定します。Additionally, an Azure blob dataset specifies the blob container and the folder that contains the data.

Data Factory ではリンクされたサービスは 2 つの目的に使用されます。Linked services are used for two purposes 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. サポートされるデータ ストアの一覧については、「コピー アクティビティ」を参照してください。For a list of supported data stores, see the copy activity article.

  • アクティビティの実行をホストできる コンピューティング リソース を表すため。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. 変換アクティビティとサポートされているコンピューティング環境の一覧については、「データの変換」を参照してください。For a list of transformation activities and supported compute environments, see the transform data article.

トリガーTriggers

トリガーは、パイプラインの実行をいつ開始する必要があるかを決定する処理単位を表します。Triggers represent the unit of processing that determines when a pipeline execution needs to be kicked off. さまざまな種類のイベントに合わせて、さまざまな種類のトリガーがあります。There are different types of triggers for different types of events.

パイプライン実行Pipeline runs

パイプライン実行は、パイプラインを実行するインスタンスです。A pipeline run is an instance of the pipeline execution. パイプライン実行は、通常、パイプラインで定義されたパラメーターに引数を渡してインスタンス化されます。Pipeline runs are typically instantiated by passing the arguments to the parameters that are defined in pipelines. 引数は、手動で渡すか、トリガー定義内で渡すことができます。The arguments can be passed manually or within the trigger definition.

parametersParameters

パラメーターは、読み取り専用の構成のキーと値のペアです。Parameters are key-value pairs of read-only configuration.  パラメーターはパイプラインで定義されます。  Parameters are defined in the pipeline. 定義済みパラメーターの引数は、実行時に、トリガーが作成した実行コンテキストか、手動で実行されるパイプラインから渡されます。The arguments for the defined parameters are passed during execution from the run context that was created by a trigger or a pipeline that was executed manually. パイプライン内のアクティビティは、パラメーターの値を使用します。Activities within the pipeline consume the parameter values.

データセットとは、厳密に型指定されたパラメーターと、再利用または参照可能なエンティティのことです。A dataset is a strongly typed parameter and a reusable/referenceable entity. アクティビティは、データセットを参照でき、データセットの定義で定義されたプロパティを使用できます。An activity can reference datasets and can consume the properties that are defined in the dataset definition.

リンクされたサービスも厳密に型指定されたパラメーターであり、これにはデータ ストアかコンピューティング環境への接続情報が入ります。A linked service is also a strongly typed parameter that contains the connection information to either a data store or a compute environment. これは再利用可能または参照可能なエンティティでもあります。It is also a reusable/referenceable entity.

制御フローControl flow

制御フローは、パイプライン アクティビティのオーケストレーションです。これには、シーケンスに従うアクティビティの連鎖、分岐、パイプライン レベルでのパラメーターの定義、オンデマンドかトリガーからパイプラインが呼び出される際の引数の受け渡しが含まれます。Control flow is an orchestration of pipeline activities that includes chaining activities in a sequence, branching, defining parameters at the pipeline level, and passing arguments while invoking the pipeline on-demand or from a trigger. さらに、カスタム状態の受け渡しや、ループ コンテナー、つまり For-each 反復子も含まれます。It also includes custom-state passing and looping containers, that is, For-each iterators.

変数Variables

変数は、パイプライン内で一時的な値を格納するときに使用できるほか、パラメーターと組み合わせて、パイプラインやデータ フローなどのアクティビティ間で値を受け渡しする際にも使用できます。Variables can be used inside of pipelines to store temporary values and can also be used in conjunction with parameters to enable passing values between pipelines, data flows, and other activities.

次の手順Next steps

次のステップとして重要なドキュメントを次に示します。ぜひご覧ください。Here are important next step documents to explore: