다음을 통해 공유


Azure Data Factory 또는 Azure Synapse Analytics에서 메타데이터 가져오기 작업

적용 대상: Azure Data Factory Azure Synapse Analytics

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

메타데이터 가져오기 작업을 사용하여 Azure Data Factory 또는 Synapse 파이프라인에서 데이터의 메타데이터를 검색할 수 있습니다. 조건식에서 메타데이터 가져오기 작업의 출력을 사용하여 유효성 검사를 수행하거나 후속 작업에서 메타데이터를 사용할 수 있습니다.

UI를 사용하여 메타데이터 가져오기 작업 만들기

파이프라인에서 메타데이터 가져오기 작업을 사용하려면 다음 단계를 완료합니다.

  1. 파이프라인 작업 창에서 Get Metadata를 검색하고 Fail 작업을 파이프라인 캔버스로 끌어옵니다.

  2. 아직 선택하지 않은 경우 캔버스에서 새 메타데이터 가져오기 작업 및 해당 설정 탭을 선택하여 세부 정보를 편집합니다.

  3. 데이터 세트를 선택하거나 새로 만들기 단추를 사용하여 새 데이터 세트를 만듭니다. 그런 다음, 필터 옵션을 지정하고 데이터 세트에 사용 가능한 메타데이터의 열을 추가할 수 있습니다.

    메타데이터 작업 가져오기에 대한 UI를 보여 줍니다.

  4. 이 예제에서의 Switch 작업과 같이 작업의 출력을 다른 작업에 대한 입력으로 사용합니다. 다른 작업에서 동적 콘텐츠가 지원되는 모든 곳에서 메타데이터 작업의 출력을 참조할 수 있습니다.

    메타데이터 가져오기 작업의 출력을 처리하기 위해 Switch 작업이 추가된 파이프라인을 보여 줍니다.

  5. 동적 콘텐츠 편집기에서 메타데이터 가져오기 작업 출력을 선택하여 다른 작업에서 참조합니다.

    메타데이터 가져오기 작업의 출력을 동적 콘텐츠로 사용하여 동적 콘텐츠 편집기를 보여 줍니다.

지원되는 기능

메타데이터 가져오기 작업은 데이터 세트를 입력으로 사용하여 메타데이터 정보를 출력으로 반환합니다. 현재 다음 커넥터와 해당 검색 가능한 메타데이터가 지원됩니다. 반환되는 메타데이터의 최대 크기는 4MB입니다.

지원되는 커넥터

File Storage

커넥터/메타데이터 itemName
(파일/폴더)
itemType
(파일/폴더)
size
(파일)
created
(파일/폴더)
lastModified1
(파일/폴더)
childItems
(폴더)
contentMD5
(파일)
structure2
(파일)
columnCount2
(파일)
exists3
(파일/폴더)
Amazon S3 x/x x
Amazon S3 호환 스토리지 x/x x
Google Cloud Storage x/x x
Oracle Cloud Storage x/x x
Azure Blob Storage x/x
Azure Data Lake Storage Gen1 x/x x
Azure Data Lake Storage Gen2 x/x
Azure 파일 x
Microsoft Fabric Lakehouse x/x
파일 시스템 x
SFTP x/x x
FTP x/x x/x x

1 메타데이터 lastModified:

  • Amazon S3, Amazon S3 Compatible Storage, Google Cloud Storage 및 Oracle Cloud Storage의 경우 lastModified는 버킷과 키에 적용되지만 가상 폴더에는 적용되지 않고 exists는 버킷과 키에 적용되지만 접두사 또는 가상 폴더에는 적용되지 않습니다.
  • Azure Blob Storage의 경우 lastModified는 컨테이너와 Blob에 적용되지만 가상 폴더에는 적용되지 않습니다.

2 이진 파일, JSON 또는 XML 파일에서 메타데이터를 가져올 때 메타데이터 structurecolumnCount는 지원되지 않습니다.

3 메타데이터 exists: Amazon S3, Amazon S3 Compatible Storage, Google Cloud Storage 및 Oracle Cloud Storage의 경우 exists가 버킷과 키에 적용되지만 접두사 또는 가상 폴더에는 적용되지 않습니다.

다음을 참고하십시오.

  • 폴더에 대해 메타데이터 가져오기 작업을 사용하는 경우 지정된 폴더에 대한 LIST/EXECUTE 권한이 있는지 확인합니다.

  • 폴더/파일에 대한 와일드카드 필터는 메타데이터 가져오기 작업에 지원되지 않습니다.

  • 커넥터에 설정된 modifiedDatetimeStartmodifiedDatetimeEnd 필터:

    • 이러한 두 속성은 폴더에서 메타데이터를 가져올 때 자식 항목을 필터링하는 데 사용됩니다. 파일에서 메타데이터를 가져올 때는 적용되지 않습니다.
    • 이러한 필터를 사용하면 출력의 childItems에는 지정된 범위 내에서 수정된 파일만 포함되고 폴더는 포함되지 않습니다.
    • 이러한 필터를 적용하기 위해 GetMetadata 작업은 지정된 폴더의 모든 파일을 열거하고 수정된 시간을 확인합니다. 예상되는 정규화된 파일 수가 적더라도 많은 수의 파일이 있는 폴더를 가리키지 마세요.

관계형 데이터베이스

커넥터/메타데이터 structure columnCount
Amazon RDS for SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL Server

메타데이터 옵션

메타데이터 가져오기 작업 필드 목록에서 다음 메타데이터 형식을 지정하여 해당 정보를 검색할 수 있습니다.

메타데이터 유형 설명
itemName 파일 또는 폴더의 이름입니다.
itemType 파일 또는 폴더의 형식입니다. 반환된 값은 File 또는 Folder입니다.
size 파일 크기(바이트)입니다. 파일에만 적용됩니다.
created 파일 또는 폴더를 만든 날짜/시간입니다.
lastModified 파일 또는 폴더를 마지막으로 수정한 날짜/시간입니다.
childItems 지정된 폴더의 하위 폴더 및 파일 목록입니다. 폴더에만 적용됩니다. 반환된 값은 각 자식 항목의 이름과 유형 목록입니다.
contentMD5 파일의 MD5입니다. 파일에만 적용됩니다.
structure 파일 또는 관계형 데이터베이스 테이블의 데이터 구조입니다. 반환 값은 열 이름과 열 형식의 목록입니다.
columnCount 파일 또는 관계형 테이블의 열 수입니다.
파일, 폴더 또는 테이블이 있는지 여부입니다. 메타데이터 가져오기 필드 목록에 exists가 지정되면 파일, 폴더 또는 테이블이 존재하지 않아도 작업이 실패하지 않습니다. 대신 exists: false가 출력에 반환됩니다.

파일, 폴더 또는 테이블이 있는지 유효성을 검증하려면 메타데이터 가져오기 작업 필드 목록에 exists를 지정합니다. 그런 다음 작업 출력에서 exists: true/false 결과를 확인할 수 있습니다. exists가 필드 목록에 지정되지 않은 경우 개체를 찾을 수 없으면 메타데이터 가져오기 작업이 실패합니다.

참고 항목

파일 저장소에서 메타데이터를 가져오고 modifiedDatetimeStart 또는 modifiedDatetimeEnd를 구성하면 출력의 childItems에는 지정된 범위 내에서 마지막으로 수정된 시간이 있는 지정된 경로의 파일만 포함됩니다. 하위 폴더의 항목은 포함되지 않습니다.

참고 항목

구분된 텍스트 및 Excel 형식 데이터 세트에 대한 실제 데이터 구조를 제공하는 구조 필드 목록의 경우 이러한 데이터 원본에 대해서만 지원되는 First Row as Header 속성을 사용하도록 설정해야 합니다.

구문

메타데이터 가져오기 작업

{
    "name":"MyActivity",
    "type":"GetMetadata",
    "dependsOn":[

    ],
    "policy":{
        "timeout":"7.00:00:00",
        "retry":0,
        "retryIntervalInSeconds":30,
        "secureOutput":false,
        "secureInput":false
    },
    "userProperties":[

    ],
    "typeProperties":{
        "dataset":{
            "referenceName":"MyDataset",
            "type":"DatasetReference"
        },
        "fieldList":[
            "size",
            "lastModified",
            "structure"
        ],
        "storeSettings":{
            "type":"AzureBlobStorageReadSettings"
        },
        "formatSettings":{
            "type":"JsonReadSettings"
        }
    }
}

데이터 세트

{
    "name":"MyDataset",
    "properties":{
        "linkedServiceName":{
            "referenceName":"AzureStorageLinkedService",
            "type":"LinkedServiceReference"
        },
        "annotations":[

        ],
        "type":"Json",
        "typeProperties":{
            "location":{
                "type":"AzureBlobStorageLocation",
                "fileName":"file.json",
                "folderPath":"folder",
                "container":"container"
            }
        }
    }
}

형식 속성

현재, 메타데이터 가져오기 작업은 다음과 같은 유형의 메타데이터 정보를 반환할 수 있습니다.

속성 설명 필수
fieldList 필요한 메타데이터 정보의 유형입니다. 지원되는 메타데이터에 대한 자세한 내용은 이 문서의 메타데이터 옵션 섹션을 참조하세요.
데이터 세트 GetMetadata 작업 시 메타데이터를 검색할 참조 데이터 세트입니다. 지원되는 커넥터에 대한 정보는 기능 섹션을 참조하세요. 데이터 세트 구문 세부 정보는 특정 커넥터 항목을 참조하세요.
formatSettings 형식 유형 데이터 세트를 사용할 때 적용합니다. 아니요
storeSettings 형식 유형 데이터 세트를 사용할 때 적용합니다. 아니요

샘플 출력

메타데이터 가져오기 결과가 작업 출력에 표시됩니다. 다음은 광범위한 메타데이터 옵션을 보여 주는 두 가지 샘플입니다. 후속 작업에서 결과를 사용하려면 @{activity('MyGetMetadataActivity').output.itemName} 패턴을 사용합니다.

파일의 메타데이터 가져오기

{
  "exists": true,
  "itemName": "test.csv",
  "itemType": "File",
  "size": 104857600,
  "lastModified": "2017-02-23T06:17:09Z",
  "created": "2017-02-23T06:17:09Z",
  "contentMD5": "cMauY+Kz5zDm3eWa9VpoyQ==",
  "structure": [
    {
        "name": "id",
        "type": "Int64"
    },
    {
        "name": "name",
        "type": "String"
    }
  ],
  "columnCount": 2
}

폴더의 메타데이터 가져오기

{
  "exists": true,
  "itemName": "testFolder",
  "itemType": "Folder",
  "lastModified": "2017-02-23T06:17:09Z",
  "created": "2017-02-23T06:17:09Z",
  "childItems": [
    {
      "name": "test.avro",
      "type": "File"
    },
    {
      "name": "folder hello",
      "type": "Folder"
    }
  ]
}

지원되는 다른 제어 흐름 작업에 대해 알아봅니다.