チュートリアル:Hadoop クラスターを使用してデータを変換する初めてのパイプラインを作成するTutorial: Build your first pipeline to transform data using Hadoop cluster

注意

この記事は、Data Factory のバージョン 1 に適用されます。This article applies to version 1 of Data Factory. 現在のバージョンの Data Factory サービスを使用している場合は、Azure Data Factory を使用してデータ ファクトリを作成する方法のクイック スタートに関するページを参照してください。If you are using the current version of the Data Factory service, see Quickstart: Create a data factory using Azure Data Factory.

このチュートリアルでは、データ パイプラインを備えた最初の Azure Data Factory を作成します。In this tutorial, you build your first Azure data factory with a data pipeline. パイプラインによって、Azure HDInsight (Hadoop) クラスターで Hive スクリプトを実行して出力データを生成することで、入力データを変換します。The pipeline transforms input data by running Hive script on an Azure HDInsight (Hadoop) cluster to produce output data.

この記事では、チュートリアルの概要と前提条件について説明します。This article provides overview and prerequisites for the tutorial. 前提条件を満たせたら、Visual Studio、PowerShell、Resource Manager テンプレート、REST API のいずれかのツールまたは SDK を使用してチュートリアルを実行できます。After you complete the prerequisites, you can do the tutorial using one of the following tools/SDKs: Visual Studio, PowerShell, Resource Manager template, REST API. この記事の最初にあるドロップダウン リストのオプションの 1 つ、または最後にあるリンクの 1 つを選択してチュートリアルを実行します。Select one of the options in the drop-down list at the beginning (or) links at the end of this article to do the tutorial using one of these options.

チュートリアルの概要Tutorial overview

このチュートリアルでは、以下の手順を実行します。In this tutorial, you perform the following steps:

  1. Data Factoryを作成します。Create a data factory. データ ファクトリには、データを移動および変換するデータ パイプラインを 1 つ以上含めることができます。A data factory can contain one or more data pipelines that move and transform data.

    このチュートリアルでは、データ ファクトリ内にパイプラインを 1 つ作成します。In this tutorial, you create one pipeline in the data factory.

  2. パイプラインを作成する。Create a pipeline. パイプラインには、1 つまたは複数のアクティビティを含めることができます (例: コピー アクティビティ、HDInsight Hive アクティビティ)。A pipeline can have one or more activities (Examples: Copy Activity, HDInsight Hive Activity). このサンプルでは、HDInsight Hadoop クラスターで Hive スクリプトを実行する HDInsight Hive アクティビティを使用します。This sample uses the HDInsight Hive activity that runs a Hive script on a HDInsight Hadoop cluster. このスクリプトでは、まず Azure BLOB ストレージに格納されている生の Web ログ データを参照するテーブルを作成し、その後、年月別に生データを分割します。The script first creates a table that references the raw web log data stored in Azure blob storage and then partitions the raw data by year and month.

    このチュートリアルでは、パイプラインで Hive アクティビティを使用して、Azure HDInsight Hadoop クラスターで Hive クエリを実行することでデータを変換します。In this tutorial, the pipeline uses the Hive Activity to transform data by running a Hive query on an Azure HDInsight Hadoop cluster.

  3. リンクされたサービスを作成します。Create linked services. データ ストアまたはコンピューティング サービスをデータ ファクトリにリンクする、リンクされたサービスを作成します。You create a linked service to link a data store or a compute service to the data factory. Azure Storage などのデータ ストアには、パイプラインのアクティビティの入力データや出力データが保持されます。A data store such as Azure Storage holds input/output data of activities in the pipeline. HDInsight Hadoop クラスターなどのコンピューティング サービスがデータを処理または変換します。A compute service such as HDInsight Hadoop cluster processes/transforms data.

    このチュートリアルでは、2 つのリンクされたサービスを作成します (Azure StorageAzure HDInsight)。In this tutorial, you create two linked services: Azure Storage and Azure HDInsight. Azure Storage のリンクされたサービスでは、入出力データを保持する Azure ストレージ アカウントをデータ ファクトリにリンクします。The Azure Storage linked service links an Azure Storage Account that holds the input/output data to the data factory. Azure HDInsight のリンクされたサービスでは、データの変換に使用する Azure HDInsight クラスターをデータ ファクトリにリンクします。Azure HDInsight linked service links an Azure HDInsight cluster that is used to transform data to the data factory.

  4. 入力 データセットと出力データセットを作成する。Create input and output datasets. 入力データセットはパイプラインのアクティビティの入力を表し、出力データセットはアクティビティの出力を表します。An input dataset represents the input for an activity in the pipeline and an output dataset represents the output for the activity.

    このチュートリアルでは、入力データセットと出力データセットで Azure Blob Storage の入力データと出力データの場所を指定します。In this tutorial, the input and output datasets specify locations of input and output data in the Azure Blob Storage. Azure Storage のリンクされたサービスで、どの Azure ストレージ アカウントを使用するかを指定します。The Azure Storage linked service specifies what Azure Storage Account is used. 入力データセットで、入力ファイルを配置する場所を指定し、出力データセットで、出力ファイルを配置する場所を指定します。An input dataset specifies where the input files are located and an output dataset specifies where the output files are placed.

Azure Data Factory の詳細については、Azure Data Factory の概要に関する記事をご覧ください。See Introduction to Azure Data Factory article for a detailed overview of Azure Data Factory.

次に示すのは、このチュートリアルで構築するサンプル データ ファクトリの ダイアグラム ビュー です。Here is the diagram view of the sample data factory you build in this tutorial. MyFirstPipeline には Hive 型の 1 つのアクティビティがあり、AzureBlobInput データセットを入力として使用し、AzureBlobOutput データセットを出力として生成します。MyFirstPipeline has one activity of type Hive that consumes AzureBlobInput dataset as an input and produces AzureBlobOutput dataset as an output.

Diagram view in Data Factory tutorial

このチュートリアルでは、adfgetstarted Azure BLOB コンテナーの inputdata フォルダーに、input.log という名前のファイルが 1 つ含まれています。In this tutorial, inputdata folder of the adfgetstarted Azure blob container contains one file named input.log. このログ ファイルには、2016 年の 1 月、2 月、および 3 月の 3 か月間のエントリが含まれています。This log file has entries from three months: January, February, and March of 2016. 入力ファイル内の各月のサンプル行を次に示します。Here are the sample rows for each month in the input file.

2016-01-01,02:01:09,SAMPLEWEBSITE,GET,/blogposts/mvc4/step2.png,X-ARR-LOG-ID=2ec4b8ad-3cf0-4442-93ab-837317ece6a1,80,-,1.54.23.196,Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/31.0.1650.63+Safari/537.36,-,http://weblogs.asp.net/sample/archive/2007/12/09/asp-net-mvc-framework-part-4-handling-form-edit-and-post-scenarios.aspx,\N,200,0,0,53175,871 
2016-02-01,02:01:10,SAMPLEWEBSITE,GET,/blogposts/mvc4/step7.png,X-ARR-LOG-ID=d7472a26-431a-4a4d-99eb-c7b4fda2cf4c,80,-,1.54.23.196,Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/31.0.1650.63+Safari/537.36,-,http://weblogs.asp.net/sample/archive/2007/12/09/asp-net-mvc-framework-part-4-handling-form-edit-and-post-scenarios.aspx,\N,200,0,0,30184,871
2016-03-01,02:01:10,SAMPLEWEBSITE,GET,/blogposts/mvc4/step7.png,X-ARR-LOG-ID=d7472a26-431a-4a4d-99eb-c7b4fda2cf4c,80,-,1.54.23.196,Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/31.0.1650.63+Safari/537.36,-,http://weblogs.asp.net/sample/archive/2007/12/09/asp-net-mvc-framework-part-4-handling-form-edit-and-post-scenarios.aspx,\N,200,0,0,30184,871

HDInsight Hive アクティビティを含むパイプラインによってファイルが処理されると、アクティビティによって HDInsight クラスターで Hive スクリプトが実行され、入力データが年月別に分割されます。When the file is processed by the pipeline with HDInsight Hive Activity, the activity runs a Hive script on the HDInsight cluster that partitions input data by year and month. このスクリプトでは、各月のエントリが含まれているファイルを格納した 3 つの出力フォルダーが作成されます。The script creates three output folders that contain a file with entries from each month.

adfgetstarted/partitioneddata/year=2016/month=1/000000_0
adfgetstarted/partitioneddata/year=2016/month=2/000000_0
adfgetstarted/partitioneddata/year=2016/month=3/000000_0

上記のサンプル行の最初の行 (2016-01-01) は、month=1 フォルダーの 000000_0 ファイルに書き込まれます。From the sample lines shown above, the first one (with 2016-01-01) is written to the 000000_0 file in the month=1 folder. 同様に、2 行目は month=2 フォルダーのファイルに書き込まれ、3 行目は month=3 フォルダーのファイルに書き込まれます。Similarly, the second one is written to the file in the month=2 folder and the third one is written to the file in the month=3 folder.

前提条件Prerequisites

このチュートリアルを開始する前に、以下の前提条件を満たしている必要があります。Before you begin this tutorial, you must have the following prerequisites:

  1. Azure サブスクリプション - Azure サブスクリプションがない場合は、無料試用版アカウントを数分で作成することができます。Azure subscription - If you don't have an Azure subscription, you can create a free trial account in just a couple of minutes. 無料試用版アカウントの取得方法については、「 無料試用版 」を参照してください。See the Free Trial article on how you can obtain a free trial account.
  2. Azure Storage – このチュートリアルのデータは、Azure ストレージ アカウントを使用して格納します。Azure Storage – You use an Azure storage account for storing the data in this tutorial. Azure ストレージ アカウントがない場合は、「 ストレージ アカウントの作成 」を参照してください。If you don't have an Azure storage account, see the Create a storage account article. ストレージ アカウントを作成したら、アカウント名アクセス キーをメモしておきます。After you have created the storage account, note down the account name and access key. ストレージ アクセス キーの表示、コピーおよび再生成」を参照してください。See View, copy and regenerate storage access keys.
  3. https://adftutorialfiles.blob.core.windows.net/hivetutorial/partitionweblogs.hql にある Hive クエリ ファイル (HQL) をダウンロードして確認します。Download and review the Hive query file (HQL) located at: https://adftutorialfiles.blob.core.windows.net/hivetutorial/partitionweblogs.hql. このクエリが、入力データを変換して出力データを生成します。This query transforms input data to produce output data.
  4. https://adftutorialfiles.blob.core.windows.net/hivetutorial/input.log にあるサンプルの入力ファイル (input.log) をダウンロードして確認します。Download and review the sample input file (input.log) located at: https://adftutorialfiles.blob.core.windows.net/hivetutorial/input.log
  5. Azure Blob Storage に adfgetstarted という名前の BLOB コンテナーを作成します。Create a blob container named adfgetstarted in your Azure Blob Storage.
  6. partitionweblogs.hql ファイルを adfgetstarted コンテナーの script フォルダーにアップロードします。Upload partitionweblogs.hql file to the script folder in the adfgetstarted container. Microsoft Azure ストレージ エクスプローラーなどのツールを使用します。Use tools such as Microsoft Azure Storage Explorer.
  7. adfgetstarted コンテナーの inputdata フォルダーに input.log ファイルをアップロードします。Upload input.log file to the inputdata folder in the adfgetstarted container.

前提条件を満たせたら、チュートリアルを実行するための次のいずれかのツールまたは SDK を選択します。After you complete the prerequisites, select one of the following tools/SDKs to do the tutorial:

Visual Studio では、GUI を使用してデータ ファクトリを構築します。Visual Studio provides a GUI way of building your data factories. 一方、PowerShell、Resource Manager テンプレート、および REST API のオプションでは、スクリプトやプログラミングを使用してデータ ファクトリを構築します。Whereas, PowerShell, Resource Manager Template, and REST API options provides scripting/programming way of building your data factories.

注意

このチュートリアルのデータ パイプラインでは、入力データを変換して出力データを生成します。The data pipeline in this tutorial transforms input data to produce output data. データをソース データ ストアからターゲット データ ストアにコピーするのではありません。It does not copy data from a source data store to a destination data store. Azure Data Factory を使用してデータをコピーする方法のチュートリアルについては、Blob Storage から SQL Database にデータをコピーする方法のチュートリアルを参照してください。For a tutorial on how to copy data using Azure Data Factory, see Tutorial: Copy data from Blob Storage to SQL Database.

2 つのアクティビティを連鎖させる (アクティビティを連続的に実行する) には、一方のアクティビティの出力データセットを、もう一方のアクティビティの入力データセットとして指定します。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. 詳細については、Data Factory でのスケジュールと実行に関するページを参照してください。See Scheduling and execution in Data Factory for detailed information.