Dataplex 메타데이터

이 가이드에서는 Dataplex 메타데이터와 Dataplex API를 사용하여 이를 관리하는 방법을 설명합니다.

개요

Dataplex는 다음을 스캔합니다.

  • 테이블 항목으로 테이블 메타데이터를 추출하기 위한 데이터 레이크 내의 구조화된 데이터 애셋 및 반구조화된 데이터 애셋
  • 파일 세트 메타데이터를 파일 세트 항목으로 추출하기 위한 이미지 및 텍스트와 같은 비정형 데이터

Dataplex Metadata API를 사용하여 다음 중 하나를 수행할 수 있습니다.

  • 테이블 및 파일 세트 항목 메타데이터 보기, 수정, 삭제
  • 자체 테이블 또는 파일 세트 항목 메타데이터 만들기

또한 다음 중 하나를 통해 Dataplex 메타데이터를 분석할 수 있습니다.

  • 검색 및 태그 지정을 위한 Data Catalog
  • 테이블 메타데이터 쿼리 및 분석 처리를 위한 Dataproc Metastore 및 BigQuery

Dataplex API

이 섹션에서는 Dataplex API와 주요 리소스를 요약합니다.

컨트롤 플레인 API

Dataplex 컨트롤 플레인 API를 사용하면 레이크, 영역, 애셋 리소스를 만들고 관리할 수 있습니다.

  • 레이크: 조직 내 프로젝트 간 스토리지 리소스를 관리할 수 있는 Dataplex 서비스 인스턴스입니다.

  • 영역: 레이크 내의 애셋을 논리적으로 그룹화한 것입니다. 레이크 내의 여러 영역을 사용하여 준비, 워크로드 또는 조직 구조를 기반으로 데이터를 구성합니다.

  • 애셋: 레이크 내의 영역에 연결된 Cloud Storage 버킷 또는 BigQuery 데이터 세트에 저장된 데이터가 있는 스토리지 리소스입니다.

Metadata API

Dataplex Metadata API를 사용하여 테이블 및 파일 세트 항목 및 파티션 내에서 메타데이터를 만들고 관리합니다. Dataplex는 레이크에 있거나 사용자가 제공한 데이터 애셋을 스캔하여 항목 및 파티션을 만듭니다. 항목 및 파티션은 관련 애셋 및 물리적 스토리지 위치에 대한 참조를 유지합니다.

주요 개념

테이블 항목:

잘 정의된 스키마가 포함된 정형 데이터의 메타데이터. 테이블 항목은 항목 ID와 데이터 위치에 따라 고유하게 식별됩니다. BigQuery 및 Dataproc Metastore에서 테이블 항목 메타데이터를 쿼리할 수 있습니다.

  • Cloud Storage 객체: Cloud Storage API를 통해 액세스하는 Cloud Storage 객체의 메타데이터입니다.
  • BigQuery 테이블: BigQuery API를 통해 액세스하는 BigQuery 테이블의 메타데이터입니다.
파일 세트 항목:

일반적으로 스키마가 없는 구조화되지 않은 데이터에 대한 메타데이터입니다. 파일 세트는 항목 ID와 데이터 위치로 고유하게 식별됩니다. 각 파일 세트에는 데이터 형식이 있습니다.

파티션:

키-값 쌍 세트와 데이터 위치로 식별되는 테이블 또는 파일 세트 항목 내의 데이터 하위 집합에 대한 메타데이터입니다.

API 사용해 보기

Dataplex lakes.zones.entitieslakes.zones.partitions API 참조 문서 페이지를 사용하여 각 API와 연결된 매개변수 및 필드를 확인합니다. 각 API 메서드의 참고 문서가 함께 있는 API 사용해 보기 패널을 사용하여 다양한 매개변수 및 필드를 통해 API 요청을 수행하세요. 사용자 인증 정보를 생성할 필요 없이 요청을 생성, 확인, 제출한 후 서비스에서 반환된 응답을 볼 수 있습니다.

다음 섹션에서는 Dataplex Metadata API를 이해하고 사용하는 데 도움이 되는 정보를 제공합니다.

항목

항목 나열

서비스에서 반환하는 항목 목록을 제한하려면 필터 쿼리 매개변수를 list entities 요청 URL에 추가합니다.

항목 가져오기

기본적으로 Get Entity 응답에는 기본 항목 메타데이터가 포함됩니다. 추가 스키마 메타데이터를 검색하려면 요청 URL에 쿼리 매개변수를 추가합니다.

호환성 세부정보: Dataplex 메타데이터는 메타데이터 API에 중앙 집중식으로 등록되지만 BigQuery 및 Apache Hive Metastore와 호환되는 항목 테이블 메타데이터만 BigQuery 및 Dataproc Metastore에 게시됩니다. Get Entity API는 CompatibilityStatus 메시지를 반환합니다. 이 메시지는 테이블 메타데이터 BigQuery 및 Hive Metastore와 호환되는지 여부와 호환되지 않는 경우 그 이유를 나타냅니다.

항목 업데이트

사용자 또는 Dataplex가 항목 메타데이터를 관리할지 여부를 포함하여 항목 메타데이터를 수정하려면 이 API를 사용합니다.

  • 이 API는 모든 변경 가능한 항목 필드를 완전히 바꿉니다. 다음 항목 필드는 변경할 수 없으며 업데이트 요청에서 지정하면 무시됩니다.
  • 값이 변경되지 않는 경우에도 모든 스키마 필드를 포함하여 모든 변경 가능한 항목 필드의 값을 지정합니다.
  • etag 필드를 제공합니다. 먼저 응답에서 항목의 etag를 반환하는 entities.get 요청을 제출하여 etag를 가져올 수 있습니다.
  • 스키마 필드 업데이트: Dataplex에서 검색된 테이블 스키마를 업데이트하여 정확성을 향상시킬 수 있습니다.
    • 스키마가 파일 세트인 경우 모든 스키마 필드를 비워 둡니다.
    • 반복 필드를 정의하려면 모드REPEATED로 설정합니다. 구조체 필드를 정의하려면 유형RECORD로 설정합니다.
    • 스키마의 userManaged 필드를 설정하여 사용자 또는 Dataplex가 테이블 메타데이터를 관리할지 여부를 지정할 수 있습니다. 기본 설정은 Dataplex 관리입니다. userManaged가 true로 설정되면 EntityViewSCHEMA 또는 FULL로 설정된 경우 이 설정은 entities.get 요청에서 반환되는 정보에 포함됩니다.
  • 파티션 필드 업데이트:
    • Hive가 아닌 스타일의 파티션을 나눈 데이터의 경우 Dataplex 검색에서 파티션 키를 자동으로 생성합니다. 예를 들어 데이터 경로 gs://root/2020/12/31의 경우 파티션 키 p0, p1, p2가 생성됩니다. 쿼리를 보다 직관적으로 만들기 위해 p0, p1, p2를 각각 year, month, day로 업데이트할 수 있습니다.
    • 파티션 스타일을 HIVE 스타일로 업데이트하면 파티션 필드를 변경할 수 없습니다.
  • 다른 메타데이터 필드 업데이트: 자동 생성된 mimeType ,CompressionFormat ,CsvOptions, JsonOptions 필드를 업데이트하여 Dataplex 검색을 지원할 수 있습니다. Dataplex 검색은 다음 실행 시 새 값을 사용합니다.

항목 만들기

entities.create API를 사용하여 테이블 또는 파일 세트 메타데이터 항목을 만듭니다. 필수 및 관련 선택 필드를 채우거나 Dataplex 검색 서비스가 선택적 필드를 채우도록 합니다.

항목 삭제

  • etag 필드를 제공합니다. 먼저 응답에서 항목의 etag를 반환하는 entities.get 요청을 제출하여 etag를 가져올 수 있습니다.

원시 영역에 있는 테이블 또는 파일 세트의 기본 데이터가 삭제되면 다음 검색 스캔 시 테이블 또는 파일 세트 메타데이터가 자동으로 삭제됩니다. 선별된 영역에 있는 테이블의 기본 데이터가 삭제되면 테이블 메타데이터는 그에 따라 삭제되지 않으며 대신 누락된 데이터 작업이 보고됩니다. 이 문제를 해결하려면 메타데이터 API를 통해 테이블 메타데이터 항목을 명시적으로 삭제합니다.

파티션

파티션 나열

서비스에서 반환하는 파티션 목록을 제한하려면 필터 쿼리 매개변수를 list partitions 요청 URL에 추가합니다.

예:

  • ?filter="Country=US AND State=CA AND City=Sunnyvale"
  • ?filter="year < 2000 AND month > 12 AND Date > 10"

파티션 가져오기

파티션을 가져오려면 partitions/value1/value2/…./value10으로 읽도록 형식이 지정된 URL 끝에 파티션 키 값을 추가하여 요청 URL을 완성해야 합니다.

예를 들어 파티션에 {Country=US, State=CA, City=Sunnyvale} 값이 있으면 get 요청 URL이 /partitions/US/CA/Sunnyvale로 끝나야 합니다.

중요: 추가된 URL 값은 이중 인코딩되어야 합니다. 예를 들어 url_encode(url_encode(value))는 요청 URL이 /partitions/US%253ACA/CA%2523Sunnyvale로 끝나도록 'US:CA/CA#Sunnyvale'을 인코딩하는 데 사용할 수 있습니다. 응답의 이름 필드는 인코딩된 형식을 유지합니다.

파티션 만들기

데이터 소스에 대해 맞춤설정된 파티션을 만들려면 partitions.create API를 사용합니다. Cloud Storage 경로로 필수 위치 필드를 지정합니다.

파티션 삭제

partitions/value1/value2/…./value10으로 읽도록 형식이 지정된 요청 URL 끝에 파티션 키 값을 추가하여 요청 URL을 완성합니다.

예를 들어 파티션에 {Country=US, State=CA, City=Sunnyvale} 값이 있으면 요청 URL은 /partitions/US/CA/Sunnyvale로 끝나야 합니다.

중요: 추가된 URL 값은 RFC-1034를 준수해야 하며 US:/CA#/SunnyvaleUS%3A/CA%3A/Sunnyvale과 같이 이중 인코딩되어야 합니다.

다음 단계