데이터 팩터리 작업 및 파이프라인 생성

완료됨

Azure Data Factory 내의 작업은 데이터에 대해 수행되는 작업을 정의하며, 다음과 같은 세 가지 작업 범주가 있습니다.

  • 데이터 이동 활동
  • 데이터 변환 활동
  • 제어 작업

데이터 이동 활동

데이터 이동 작업은 단순히 한 데이터 저장소에서 다른 데이터 저장소로 데이터를 이동합니다. 복사 작업을 사용하여 데이터 이동 작업을 수행하거나 JSON을 사용하여 수행할 수 있습니다. 원본 및 싱크로서 지원되는 광범위한 데이터 저장소가 있습니다. 이 목록은 점점 늘어나고 있으며 여기에서 최신 정보를 찾을 수 있습니다.

데이터 변환 활동

데이터 변환 작업은 매핑 데이터 흐름을 사용하여 Azure Data Factory 제작 도구 내에서 기본적으로 수행할 수 있습니다. 또는 컴퓨팅 리소스를 호출하여 변환을 통해 데이터를 변경 또는 개선하거나 데이터 분석을 수행할 수 있습니다. 여기에는 Azure Databricks, Azure Batch, SQL Database와 Azure Synapse Analytics, Machine Learning Services, Azure Virtual Machine과 HDInsight 같은 컴퓨팅 기술이 포함됩니다. 카탈로그에 저장된 기존의 SSIS(SQL Server Integration Services) 패키지를 사용하여 Azure에서 실행할 수 있습니다.

이 목록은 항상 늘어나고 있으므로 여기에서 최신 정보를 얻을 수 있습니다.

제어 작업

ADF 솔루션을 그래픽으로 제작할 때 디자인 내의 제어 흐름을 사용하여 파이프라인 수준에서 시퀀스, 분기, 매개 변수 정의의 작업 연결 그리고 주문형으로 또는 트리거에서 파이프라인을 호출할 때 인수 전달과 같은 파이프라인 작업을 오케스트레이션할 수 있습니다. 현재의 기능은 다음과 같습니다.

제어 작업 설명
파이프라인 작업 실행 파이프라인 실행 작업을 사용하면 하나의 Data Factory 파이프라인에서 다른 파이프라인을 호출할 수 있습니다.
ForEachActivity ForEach 작업은 파이프라인의 반복 제어 흐름을 정의합니다. 이 작업을 사용하여 컬렉션을 반복하고 루프의 지정된 작업을 실행합니다. 이 작업의 루프 구현은 프로그래밍 언어에서 구조를 반복하는 Foreach와 비슷합니다.
WebActivity 웹 작업은 Data Factory 파이프라인에서 사용자 지정 REST 엔드포인트를 호출하는 데 사용할 수 있습니다. 작업에서 사용하고 액세스하도록 데이터 세트 및 연결된 서비스를 전달할 수 있습니다.
조회 작업 조회 작업을 사용하면 모든 외부 소스에서 레코드/테이블 이름/값을 읽거나 조회할 수 있습니다. 이 출력을 다음 작업에서 추가로 참조할 수 있습니다.
메타데이터 작업 가져오기 GetMetadata 작업을 사용하면 Azure Data Factory에 있는 모든 데이터의 메타데이터를 검색할 수 있습니다.
Until 작업 프로그래밍 언어의 Do-Until 루핑 구조와 유사한 Do-Until 루프를 구현합니다. 작업과 관련된 조건이 참으로 평가될 때까지 일단의 반복 작업을 실행합니다. Data Factory에서 until 작업의 시간 제한 값을 지정할 수 있습니다.
If 조건 작업 If 조건을 사용하여 True 또는 False로 평가되는 조건을 기반으로 분기할 수 있습니다. If 조건 작업은 if 문에서 프로그래밍 언어로 제공하는 것과 동일한 기능을 제공합니다. 조건이 true로 평가되면 작업 집합을 평가하고, 조건이 false로 평가되면 다른 작업 집합을 평가합니다.
Wait 작업 파이프라인에서 대기 작업을 사용하는 경우 파이프라인은 후속 작업을 계속 실행하기 전에 지정된 기간 동안 대기합니다.

여기에서 최신 정보를 얻을 수 있습니다.

작업 및 파이프라인

작업 정의

JSON 표기법을 사용할 때 작업 섹션에는 하나 이상의 작업이 정의되어 있을 수 있습니다. 작업에는 실행 및 제어 작업의 두 가지 주요 유형이 있습니다. 실행(컴퓨팅이라고도 함) 작업에는 데이터 이동 및 데이터 변환 작업이 포함됩니다. 각 작업에 다음과 같은 최상위 수준 구조가 있습니다.

{
    "name": "Execution Activity Name",
    "description": "description",
    "type": "<ActivityType>",
    "typeProperties":
    {
    },
    "linkedServiceName": "MyLinkedService",
    "policy":
    {
    },
    "dependsOn":
    {
    }
}

다음 표에서는 위의 JSON에서 속성을 설명합니다.

속성 설명 필수
name 활동의 이름입니다.
description 작업의 용도를 설명하는 텍스트입니다.
type 작업의 유형을 정의합니다.
linkedServiceName 작업에서 사용하는 연결된 서비스의 이름입니다. HDInsight, Machine Learning 일괄 처리 채점 작업, 저장 프로시저 작업의 경우 ‘예’입니다.
typeProperties typeProperties 섹션의 속성은 각 작업 유형에 따라 달라집니다. No
policy 작업의 런타임 동작에 영향을 주는 정책입니다. 이 속성은 시간 제한 및 다시 시도 동작을 포함합니다. No
dependsOn 이 속성을 사용하여 작업 종속성 및 이후 작업이 이전 작업에 따라 달라지는 방법을 정의합니다. No

제어 작업 정의

Data Factory의 제어 작업은 다음과 같이 JSON 형식으로 정의됩니다.

{
    "name": "Control Activity Name",
    "description": "description",
    "type": "<ActivityType>",
    "typeProperties":
    {
    },
    "dependsOn":
    {
    }
}

다음 표에서는 위의 JSON에서 속성을 설명합니다.

속성 설명 필수
name 활동의 이름입니다.
description 작업의 용도를 설명하는 텍스트입니다.
type 작업의 유형을 정의합니다.
typeProperties typeProperties 섹션의 속성은 각 작업 유형에 따라 달라집니다. No
dependsOn 이 속성을 사용하여 작업 종속성 및 이후 작업이 이전 작업에 따라 달라지는 방법을 정의합니다. No

파이프라인 정의

파이프라인은 다음과 같은 방식에 따라 JSON 형식으로 정의됩니다.

{
    "name": "PipelineName",
    "properties":
    {
        "description": "pipeline description",
        "activities":
        [
        ],
        "parameters": {
         }
    }
}

다음 표에서는 위의 JSON에서 속성을 설명합니다.

속성 설명 필수
name 파이프라인의 이름입니다.
description 파이프라인이 무엇에 사용되는지 설명하는 텍스트입니다. No
작업 활동 섹션에는 내부에서 정의된 하나 이상의 활동이 있을 수 있습니다.
매개 변수 매개 변수 섹션은 파이프라인 내에 정의된 매개 변수 한 개 이상을 포함할 수 있으므로 파이프라인을 유연하게 다시 사용할 수 있습니다.

예제

다음 JSON은 “MyFirstPipeline”이라는 파이프라인을 정의합니다. 이 파이프라인은 “AzureBlobInput”이라는 입력 및 “AzureBlobOutput”이라는 출력과 함께 “StorageLinkedService”라는 연결된 서비스에 저장되는 스크립트 이름 “partitionweblogs.hql”에서 쿼리를 호출하는 HDInsightHive의 한 가지 작업 유형을 포함합니다. “HDInsightOnDemandLinkedService”라는 연결된 서비스에 정의된 컴퓨팅 리소스에 대해 실행됩니다.

파이프라인은 매월 실행되도록 예약되며, 3번 실행을 시도하면 실패합니다.

{
    "name": "MyFirstPipeline",
    "properties": {
        "description": "My first Azure Data Factory pipeline",
        "activities": [
            {
                "type": "HDInsightHive",
                "typeProperties": {
                    "scriptPath": "adfgetstarted/script/partitionweblogs.hql",
                    "scriptLinkedService": "StorageLinkedService",
                    "defines": {
                        "inputtable": "wasb://adfgetstarted@ctostorageaccount.blob.core.windows.net/inputdata",
                        "partitionedtable": "wasb://adfgetstarted@ctostorageaccount.blob.core.windows.net/partitioneddata"
                    }
                },
                "inputs": [
                    {
                        "name": "AzureBlobInput"
                    }
                ],
                "outputs": [
                    {
                        "name": "AzureBlobOutput"
                    }
                ],
                "policy": {
                    "concurrency": 1,
                    "retry": 3
                },
                "scheduler": {
                    "frequency": "Month",
                    "interval": 1
              },
                "name": "RunSampleHiveActivity",
                "linkedServiceName": "HDInsightOnDemandLinkedService"
            }
        ],
        "start": "2017-04-01T00:00:00Z",
        "end": "2017-04-02T00:00:00Z",
        "isPaused": false,
        "hubName": "ctogetstarteddf_hub",
        "pipelineMode": "Scheduled"
    }
}