자습서: 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, 리소스 관리자 템플릿 REST API 중 하나를 사용 하 여 자습서를 수행할 수 있습니다.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. 이러한 옵션 중 하나를 사용하여 자습서를 수행하려면 이 문서의 시작에 있는 드롭다운 목록이나 끝에 있는 링크에서 옵션 중 하나를 선택합니다.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. 데이터 팩터리 를 만듭니다.Create a data factory. 데이터 팩터리는 데이터를 이동 및 변환하는 하나 이상의 데이터 파이프라인을 포함할 수 있습니다.A data factory can contain one or more data pipelines that move and transform data.

    이 자습서에서는 데이터 팩터리에 하나의 파이프라인을 만듭니다.In this tutorial, you create one pipeline in the data factory.

  2. 파이프라인 을 만듭니다.Create a pipeline. 파이프라인에는 하나 이상의 활동(예: 복사 활동, 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 Storage에 저장된 원시 웹 로그 데이터를 참조하는 테이블을 만든 다음 원시 데이터를 연도별 및 월별로 분할합니다.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.

    이 자습서에서 파이프라인은 Azure HDInsight Hadoop 클러스터에서 Hive 쿼리를 실행하여 데이터를 변환하기 위해 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 cluster 클러스터와 같은 컴퓨팅 서비스는 데이터를 처리/변환합니다.A compute service such as HDInsight Hadoop cluster processes/transforms data.

    이 자습서에는 두 가지 연결된 서비스 Azure StorageAzure HDInsight 를 만듭니다.In this tutorial, you create two linked services: Azure Storage and Azure HDInsight. Azure Storage 연결된 서비스는 데이터 팩터리에 대한 입력/출력 데이터를 보유하는 Azure Storage 계정을 연결합니다.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 Storage 계정이 사용되는지를 지정합니다.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 에는 입력으로 AzureBlobInput 데이터 세트를 사용하고 AzureBlobOutput 데이터 세트를 출력으로 생성하는 Hive 형식의 한 가지 작업을 포함합니다.MyFirstPipeline has one activity of type Hive that consumes AzureBlobInput dataset as an input and produces AzureBlobOutput dataset as an output.

데이터 팩터리 자습서에서 다이어그램 보기

이 자습서에서 adfgetstarted Azure blob 컨테이너의 inputdata 폴더에는 input.log라는 하나의 파일이 들어 있습니다.In this tutorial, inputdata folder of the adfgetstarted Azure blob container contains one file named input.log. 이 로그 파일은 2016년 1월, 2월 및 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. 스크립트는 각 월의 항목을 가진 파일을 포함하는 세 개의 출력 폴더를 만듭니다.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)은 월=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 폴더의 파일에 기록되고 세 번째 줄은 월=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 스토리지 – 이 자습서에서는 데이터 저장을 위해 Azure Storage 계정을 사용합니다.Azure Storage – You use an Azure storage account for storing the data in this tutorial. Azure Storage 계정이 없는 경우 스토리지 계정 만들기 문서를 참조하세요.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. 스토리지 계정 액세스 키를 검색하는 방법에 대한 자세한 내용은 스토리지 계정 액세스 키 관리를 참조하세요.For information about how to retrieve the storage account access keys, see Manage storage account 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. adfgetstarted 컨테이너의 script 폴더에 partitionweblogs.hql 파일을 업로드합니다.Upload partitionweblogs.hql file to the script folder in the adfgetstarted container. Microsoft Azure Storage Explorer와 같은 도구를 사용합니다.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.

한 활동의 출력 데이터 세트를 다른 활동의 입력 데이터 세트로 설정하여 두 활동을 연결하면 해당 활동을 차례로 실행할 수 있습니다.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. 자세한 정보는 데이터 팩터리의 예약 및 실행을 참조하세요.See Scheduling and execution in Data Factory for detailed information.