이 가이드에서는 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.entities 및 lakes.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와 호환되는지 여부와 호환되지 않는 경우 그 이유를 나타냅니다.
항목 업데이트
이 API를 사용하여 개발자 또는 Dataplex에서 항목 메타데이터를 관리할지 여부를 비롯한 항목 메타데이터를 수정합니다.
- 이 API는 모든 변경 가능한 항목 필드를 완전히 대체합니다. 다음 항목 필드는 변경 불가능하며 업데이트 요청에 지정하면 무시됩니다.
- 값이 변경되지 않더라도 모든 스키마 필드를 비롯한 모든 변경 가능한 항목 필드의 값을 지정합니다.
- etag 필드를 제공합니다. 먼저 응답에서 항목의
etag
를 반환하는 entities.get 요청을 제출하여 etag를 가져올 수 있습니다. - 스키마 필드 업데이트: Dataplex에서 검색된 테이블 스키마를 업데이트하여 정확성을 향상시킬 수 있습니다.
- 스키마가 파일 세트인 경우 모든 스키마 필드를 비워 둡니다.
- 반복 필드를 정의하려면 모드를
REPEATED
로 설정합니다. 구조체 필드를 정의하려면 유형을RECORD
로 설정합니다. - 스키마의
userManaged
필드를 설정하여 개발자 또는 Dataplex에서 테이블 메타데이터를 관리할지 지정할 수 있습니다. 기본 설정은 Dataplex 관리입니다.userManaged
가 true로 설정되면 EntityView가SCHEMA
또는FULL
로 설정된 경우 이 설정은entities.get
요청에서 반환되는 정보에 포함됩니다.
- 파티션 필드 업데이트:
- Hive 외의 스타일로 파티션을 나눈 데이터의 경우 Dataplex 검색에서 파티션 키를 자동으로 생성합니다. 예를 들어 데이터 경로
gs://root/2020/12/31
의 경우 파티션 키p0
,p1
,p2
가 생성됩니다. 쿼리를 보다 직관적으로 만들기 위해p0
,p1
,p2
를 각각year
,month
,day
로 업데이트할 수 있습니다. - 파티션 스타일을 HIVE 스타일로 업데이트하면 파티션 필드는 변경할 수 없습니다.
- Hive 외의 스타일로 파티션을 나눈 데이터의 경우 Dataplex 검색에서 파티션 키를 자동으로 생성합니다. 예를 들어 데이터 경로
- 다른 메타데이터 필드 업데이트: 자동 생성된 mimeType ,CompressionFormat ,CsvOptions, JsonOptions 필드를 업데이트하여 Dataplex 검색을 지원할 수 있습니다. Dataplex 검색은 다음 실행 시 새 값을 사용합니다.
항목 만들기
entities.create
API를 사용하여 테이블 또는 파일 세트 메타데이터 항목을 만듭니다.
필수 및 관련 선택 필드를 채우거나 Dataplex 검색 서비스가 선택적 필드를 채우도록 합니다.
항목 삭제
- etag 필드를 제공합니다. 먼저 응답에서 항목의
etag
를 반환하는 entities.get 요청을 제출하여 etag를 가져올 수 있습니다.
원시 영역의 테이블 또는 파일 집합에 대한 기본 데이터가 삭제되면 다음 Discovery 스캔 시 테이블 또는 파일 집합 메타데이터가 자동으로 삭제됩니다. 선별된 영역의 테이블에 대한 기본 데이터가 삭제되면 테이블 메타데이터는 삭제되지 않고 누락된 데이터 작업이 보고됩니다. 이 문제를 해결하려면 메타데이터 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}
가 있는 경우 가져오기 요청 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#/Sunnyvale
을 US%3A/CA%3A/Sunnyvale
과 같이 이중 인코딩되어야 합니다.
다음 단계
- Apache Spark에서 메타데이터에 액세스하는 방법 자세히 알아보기