Azure Data Factory 및 Azure Synapse Analytics의 데이터 세트

적용 대상: Azure Data Factory Azure Synapse Analytics

기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아봅니다!

이 문서에서는 데이터 세트의 정의, 데이터 세트를 JSON 형식으로 정의하는 방법, Azure Data Factory 및 Synapse 파이프라인에서 데이터 세트를 사용하는 방법을 설명합니다.

Data Factory를 처음 사용하는 경우 개요는 Azure Data Factory 소개를 참조하세요. Azure Synapse에 대한 자세한 내용은 Azure Synapse란?을 참조하세요.

개요

Azure Data Factory 또는 Synapse 작업 영역에는 하나 이상의 파이프라인이 있을 수 있습니다. 파이프라인은 함께 하나의 작업을 수행하는 활동의 논리적 그룹화입니다. 파이프라인의 작업은 데이터에 대해 수행할 동작을 정의합니다. 이제 데이터 세트는 입력 및 출력으로 활동에서 사용하려는 데이터를 단순히 가리키거나 참조하는 데이터의 명명된 뷰입니다. 데이터 세트는 테이블, 파일, 폴더, 문서를 비롯한 다양한 데이터 저장소 내의 데이터를 식별합니다. 예를 들어, Azure Blob 데이터 세트는 작업이 데이터를 읽어야 하는 원본 Blob Storage의 Blob 컨테이너와 폴더를 지정합니다.

데이터 세트를 만들기 전에 연결된 서비스를 만들어 데이터 저장소를 서비스에 연결해야 합니다. 연결된 서비스는 이 서비스에서 외부 리소스에 연결하는 데 필요한 연결 정보를 정의하는 연결 문자열과 같습니다. 데이터 세트는 연결된 데이터 저장소 내의 데이터 구조를 나타내고, 연결된 서비스는 데이터 원본에 연결을 정의한다고 생각하시면 됩니다. 예를 들어 Azure Storage 연결된 서비스는 스토리지 계정을 연결합니다. Azure Blob 데이터 세트는 Blob 컨테이너 및 처리할 입력 Blob이 포함된 Azure Storage 계정 내의 폴더를 나타냅니다.

샘플 시나리오는 다음과 같습니다. 데이터베이스를 Blob 스토리지에서 SQL 데이터베이스로 복사하려면 두 개의 연결된 서비스, 즉 Azure Blob Storage 및 Azure SQL Database를 만듭니다. 그런 다음, 두 개의 데이터 세트, 즉 구분된 텍스트 데이터 세트(Azure Blob Storage 연결된 서비스를 나타냄, 텍스트 파일을 원본으로 사용하는 경우) 및 Azure SQL 테이블 데이터 세트(Azure SQL Database 연결된 서비스를 나타냄)를 만듭니다. Azure Blob Storage 및 Azure SQL Database 연결된 서비스에는 서비스가 런타임에 Azure Storage 및 Azure SQL Database 각각에 연결하는 데 사용하는 연결 문자열이 포함되어 있습니다. 구분된 텍스트 데이터 세트는 형식 관련 설정과 함께 Blob Storage의 입력 Blob을 포함하는 Blob 컨테이너 및 Blob 폴더를 지정합니다. Azure SQL Table 데이터 세트는 데이터를 복사할 Azure SQL Database의 SQL 테이블을 지정합니다.

다음 다이어그램에서는 파이프라인, 활동, 데이터 세트 및 연결된 서비스 간의 관계를 보여 줍니다.

Relationship between pipeline, activity, dataset, linked services

UI를 사용하여 데이터 세트 만들기

Azure Data Factory Studio를 사용하여 데이터 세트를 만들려면 작성 탭(연필 아이콘이 있음)을 선택한 다음, 더하기 기호 아이콘을 선택하여 데이터 세트를 선택합니다.

Shows the Author tab of the Azure Data Factory Studio with the new dataset button selected.

기존 또는 새 연결된 서비스를 설정하도록 Azure Data Factory에서 제공되는 커넥터를 선택할 수 있는 새 데이터 세트 창이 표시됩니다.

Shows the new dataset window where you can choose the type of linked service to any of the supported data factory connectors.

다음으로, 데이터 세트 형식을 선택하라는 메시지가 표시됩니다.

Shows the dataset format window allowing you to choose a format for the new dataset.

마지막으로, 데이터 세트에 대해 선택한 유형의 기존 연결된 서비스를 선택하거나 아직 정의되지 않은 경우 새 서비스를 만들 수 있습니다.

Shows the set properties window where you can choose an existing dataset of the type selected previously, or create a new one.

데이터 세트를 만든 후 Azure Data Factory의 모든 파이프라인 내에서 사용할 수 있습니다.

데이터 세트 JSON

데이터 세트는 다음과 같이 JSON 형식으로 정의됩니다.

{
    "name": "<name of dataset>",
    "properties": {
        "type": "<type of dataset: DelimitedText, AzureSqlTable etc...>",
        "linkedServiceName": {
                "referenceName": "<name of linked service>",
                "type": "LinkedServiceReference",
        },
        "schema":[

        ],
        "typeProperties": {
            "<type specific property>": "<value>",
            "<type specific property 2>": "<value 2>",
        }
    }
}

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

속성 설명 필수
name 데이터 세트의 이름입니다. 명명 규칙을 참조하세요.
type 데이터 세트의 형식입니다. Data Factory에서 지원하는 형식(예: DelimitedText, AzureSqlTable) 중 하나를 지정합니다.

자세한 내용은 데이터 세트 형식을 참조하세요.
schema(스키마) 데이터 세트의 스키마로, 실제 데이터 형식과 모양을 나타냅니다. 아니요
typeProperties 형식 속성은 형식마다 다릅니다. 지원되는 형식 및 해당 속성에 대한 자세한 내용은 데이터 세트 형식을 참조하세요.

데이터 세트의 스키마를 가져오는 경우 스키마 가져오기 단추를 선택하고 소스 또는 로컬 파일에서 가져오기를 선택합니다. 대부분의 경우 소스에서 직접 스키마를 가져옵니다. 그러나 로컬 스키마 파일(Parquet 파일 또는 헤더가 포함된 CSV)이 이미 있는 경우에는 해당 파일의 스키마를 기반으로 서비스를 지정할 수 있습니다.

복사 작업에서 데이터 세트는 소스 및 싱크에 사용됩니다. 데이터 세트에 정의된 스키마는 참조로 선택 가능합니다. 원본과 싱크 간에 열/필드 매핑을 적용하려면 스키마 및 형식 매핑을 참조하세요.

데이터 흐름에서 데이터 세트는 소스 및 싱크 변환에 사용됩니다. 데이터 세트는 기본 데이터 스키마를 정의합니다. 데이터에 스키마가 없는 경우 소스 및 싱크에 대해 스키마 드리프트를 사용할 수 있습니다. 데이터 세트의 메타데이터가 소스 변환에서 소스 ‘프로젝션’으로 나타납니다. 소스 변환의 프로젝션은 정의된 이름 및 형식을 사용하여 데이터 흐름 데이터를 나타냅니다.

데이터 세트 형식

서비스는 사용하는 데이터 저장소에 따라 다양한 형식의 데이터 세트를 지원합니다. 지원되는 데이터 저장소 목록은 커넥터 개요 문서에서 찾을 수 있습니다. 데이터 저장소를 선택하여 해당 데이터 저장소에 대해 연결된 서비스와 데이터 세트를 만드는 방법을 알아봅니다.

예를 들어, 구분된 텍스트 데이터 세트의 경우 데이터 세트 형식은 다음 JSON 샘플과 같이 DelimitedText로 설정됩니다.

{
    "name": "DelimitedTextInput",
    "properties": {
        "linkedServiceName": {
            "referenceName": "AzureBlobStorage",
            "type": "LinkedServiceReference"
        },
        "annotations": [],
        "type": "DelimitedText",
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "fileName": "input.log",
                "folderPath": "inputdata",
                "container": "adfgetstarted"
            },
            "columnDelimiter": ",",
            "escapeChar": "\\",
            "quoteChar": "\""
        },
        "schema": []
    }
}

데이터 세트 생성

.NET API, PowerShell, REST API, Azure Resource Manager 템플릿 및 Azure Portal 등의 도구 또는 SDK 중 하나를 사용하여 데이터 세트를 만들 수 있습니다.

현재 버전 및 버전 1 데이터 세트

Data Factory 현재 버전(및 Azure Synapse)의 데이터 세트와 레거시 Data Factory 버전 1의 데이터 세트 간에는 다음과 같은 몇 가지 차이점이 있습니다.

  • 외부 속성은 현재 버전에서 지원되지 않습니다. 트리거로 대체됩니다.
  • 정책 및 가용성 속성은 현재 버전에서 지원되지 않습니다. 파이프라인에 대한 시작 시간은 트리거에 따라 달라집니다.
  • 범위가 지정된 데이터 세트(파이프라인에서 정의된 데이터 세트)는 현재 버전에서 지원되지 않습니다.

다음 도구 또는 SDK 중 하나를 사용하여 파이프라인 및 데이터 세트를 만들기 위한 단계별 지침은 다음 자습서를 참조하세요.