이 가이드에서는 Dataplex Universal Catalog 탐색을 사용 설정하고 사용하는 방법을 설명합니다. 탐색은 데이터 레이크의 데이터에서 메타데이터를 스캔 및 추출하고 분석, 검색, 탐색 분석에 사용할 수 있도록 Dataproc Metastore, BigQuery, Data Catalog(지원 중단됨)에 등록합니다.
개요
Dataplex Universal Catalog는 탐색이 사용 설정된 각 Dataplex Universal Catalog 애셋에 대해 다음을 수행합니다.
- 애셋과 연결된 데이터를 스캔합니다.
- 정형 파일과 반정형 파일을 테이블로 그룹화합니다.
- 테이블 이름, 스키마, 파티션 정의와 같은 기술 메타데이터를 수집합니다.
이미지 및 동영상과 같은 비정형 데이터의 경우 Dataplex Universal Catalog 탐색은 미디어 유형을 공유하는 파일 그룹을 파일 세트로 자동 감지하고 등록합니다. 예를 들어 gs://images/group1에 GIF 이미지가 포함되어 있고 gs://images/group2에 JPEG 이미지가 포함된 경우 Dataplex Universal Catalog 탐색은 파일 세트 2개를 감지하고 등록합니다. Avro와 같은 정형 데이터의 경우 탐색은 동일한 데이터 형식과 스키마가 포함된 폴더에 있는 파일만 감지합니다.
탐색된 테이블과 파일 세트는 검색 및 탐색을 위해 Data Catalog에 등록됩니다. Dataproc Metastore에서는 Hive 스타일 테이블로, BigQuery에서는 외부 테이블로 테이블이 표시되므로 데이터를 자동으로 분석에 사용할 수 있습니다.
탐색은 다음과 같은 정형 데이터 형식과 반정형 데이터 형식을 지원합니다.
- Parquet
- Avro
- ORC
- JSON(줄바꿈으로 구분되는 형식만)
- CSV(주석 행이 있는 CSV 파일은 지원되지 않음)
탐색은 다음과 같은 정형 데이터와 반정형 데이터의 압축 형식을 지원합니다.
다음 형식에 대한 내부 압축:
압축 파일 확장자 샘플 지원되는 형식 gzip .gz.parquet Parquet lz4 .lz4.parquet Parquet Snappy .snappy.parquet Parquet, ORC, Avro lzo .lzo.parquet Parquet, ORC JSON 및 CSV 파일의 외부 압축:
- gzip
- bzip2
탐색 구성
탐색은 새 영역이나 애셋을 만들 때 기본적으로 사용 설정됩니다. 영역 또는 애셋 수준에서 탐색을 사용 중지할 수 있습니다.
영역이나 애셋을 만들 때 영역 수준에서 탐색 설정을 상속하거나 애셋 수준에서 탐색 설정을 재정의할 수 있습니다.
영역 수준과 애셋 수준에서 사용할 수 있는 탐색 구성 옵션은 다음과 같습니다.
탐색 사용 설정 및 사용 중지
탐색 일정: 이 옵션을 사전 정의된 일정(예: 시간별이나 일별 또는 크론 형식으로 정의된 커스텀 일정)으로 설정할 수 있습니다. 새 애셋이 추가되면 스캔됩니다. 자세한 내용은 크론 일정 구성을 참조하세요. 탐색이 1시간 이하 간격으로 실행되도록 예약하는 것이 좋습니다.
패턴 포함 또는 제외: 포함 또는 제외 경로에서 glob 패턴을 사용하여 탐색 스캔에 포함하거나 제외할 파일을 정의합니다. 예를 들어 탐색에서
gs://test_bucket/foo/..를 제외하려면**/foo/*를 제외 경로로 입력합니다. 따옴표를 입력하면 오류가 발생합니다."**/foo/*"대신**/foo/*를 입력해야 합니다. Cloud Storage 애셋에서만 이 함수를 사용할 수 있습니다. 포함 및 제외 패턴 모두 동시에 존재하면 제외 패턴이 먼저 적용됩니다.JSON 또는 CSV 사양: 탐색 결과 정확성이 향상되도록 CSV 및 JSON과 같은 반정형 데이터에 대한 추가 정보를 제공할 수 있습니다.
CSV 파일의 경우 다음 중 하나를 제공할 수 있습니다.
구분 기호: 이 필드에는
\r및\n을 제외한 한 문자만 허용됩니다. 2자 이상을 입력하면 문자열의 첫 번째 문자만 사용됩니다. 입력하지 않으면 탐색에서 쉼표를 구분 기호로 사용합니다.헤더 행 수: 이 필드에는
0또는1값이 허용됩니다. 기본값은0입니다. 값이0이면 탐색은 헤더 추론을 수행합니다. 헤더가 감지되면 탐색은 헤더에서 열 이름을 추출하고 값을1로 재설정합니다.인코딩: 이 필드에는
UTF-8,US-ASCII또는ISO-8859-1과 같은 문자열 인코딩 이름이 허용됩니다. 지정하지 않으면UTF-8이 기본값으로 사용됩니다.유형 추론 사용 중지: 이 필드에는 불리언 값이 허용됩니다. 기본값은
false입니다. CSV 데이터의 경우 유형 추론을 사용 중지하면 모든 열이 문자열로 등록됩니다.
JSON 파일의 경우 다음 중 하나를 입력할 수 있습니다.
인코딩: 이 필드에는
UTF-8,US-ASCII또는ISO-8859-1과 같은 문자열 인코딩 이름이 허용됩니다. 지정하지 않으면UTF-8이 기본값으로 사용됩니다.데이터 유형 추론 사용 중지: 이 필드에는 불리언 값이 허용됩니다. 기본값은
false입니다. JSON 데이터의 경우 유형 추론을 사용 중지하면 모든 열이 기본 유형(문자열, 숫자 또는 불리언)으로 등록됩니다.
메타데이터 게시
Dataplex Universal Catalog 레이크에 데이터 영역을 만들면 Dataplex Universal Catalog에서 레이크가 포함된 프로젝트에 BigQuery 데이터 세트를 만듭니다. Dataplex Universal Catalog는 데이터 영역에 애셋으로 추가된 Cloud Storage 버킷에서 탐색된 테이블을 데이터 세트에 게시합니다. 데이터 세트는 영역에 해당하는 메타데이터 게시 데이터 세트라고 합니다.
각 Dataplex Universal Catalog 데이터 영역은 메타데이터 정보가 자동으로 제공되는 BigQuery의 데이터 세트나 Dataproc Metastore의 데이터베이스에 매핑됩니다.
Dataplex API를 사용하여 테이블 이름 또는 스키마와 같은 자동 탐색된 메타데이터를 수정할 수 있습니다.
탐색된 테이블 및 파일 세트 보기
Google Cloud 콘솔의 Dataplex Universal Catalog 검색 뷰에서 탐색된 테이블과 파일 세트를 검색할 수 있습니다.
보다 정확한 검색 결과를 얻으려면 레이크 및 데이터 영역 이름과 같은 Dataplex Universal Catalog 관련 필터를 사용합니다. 필터 목록에는 패싯당 상위 50개 항목이 표시됩니다. 검색창을 사용하여 추가 항목을 찾을 수 있습니다.
각 항목에는 자세한 기술 메타데이터와 운영 메타데이터가 포함됩니다.
항목 세부정보 페이지에서 BigQuery의 테이블을 쿼리하고 해당 Dataproc Metastore 등록 세부정보를 볼 수 있습니다.
Cloud Storage 테이블을 BigQuery에 외부 테이블로 게시할 수 있으면 항목 세부정보 뷰에서 다음을 확인할 수 있습니다.
- BigQuery 외부 테이블 참조
- BigQuery에서 데이터 분석을 시작할 수 있는 BigQuery에서 열기 버튼
Data Catalog에서 Dataplex Universal Catalog 메타데이터 항목을 직접 보고 검색할 수 있습니다. 자세한 내용은 Data Catalog 검색 참조를 확인하세요.
Dataplex API를 통해 모든 탐색 항목을 볼 수 있습니다.
탐색 작업
탐색은 스캔 중에 데이터 관련 문제가 감지될 때마다 다음과 같은 관리자 작업을 수행합니다.
잘못된 데이터 형식
다음 작업이 포함됩니다.
테이블에서 일관되지 않은 데이터 형식. 예를 들어 테이블 프리픽스가 같지만 형식이 다른 파일이 있습니다.
선별 데이터 영역의 잘못된 데이터 형식(Avro, Parquet 또는 ORC 형식이 아닌 데이터)
호환되지 않는 스키마
다음 작업이 포함됩니다.
탐색에서 감지한 스키마가 Dataproc Metastore의 Metadata API에 있는 활성 테이블 스키마와 호환되지 않습니다. 다음 시나리오에서는 스키마 A와 스키마 B가 호환되지 않습니다.
A와 B에서 이름은 같지만 호환되지 않는 다른 데이터 유형이 있는 필드를 공유합니다. 예를 들면 문자열과 정수입니다.
A와 B에 겹치는 필드가 없습니다.
A와 B에 다른 스키마에서 찾을 수 없는 null을 허용하지 않는 필드가 최소 하나 이상 있습니다.
선별 데이터 영역의 사용자 관리 스키마에 대한 스키마 드리프트
잘못된 파티션 정의
다음 작업이 포함됩니다.
일관되지 않은 파티션 이름 지정. 예를 들면
gs://sales_data/year=2020/month=10/day=01및gs://sales_data/year=2020/region=us입니다.선별 데이터 영역에서 Hive가 아닌 스타일의 파티션 이름 지정. 예를 들면
gs://sales_data/year=2020/month=10/day=01이 아닌gs://sales_data/2020/10/01입니다.
데이터 누락
다음 작업이 포함됩니다.
- 선별 데이터 영역에서 등록된 테이블이나 파일 세트의 기본 데이터가 더 이상 존재하지 않습니다. 즉, 선별 데이터 영역 테이블이나 파일 세트가 탐색되어 등록되었지만 나중에 기본 데이터가 삭제되었습니다. 데이터를 보충하거나 메타데이터 항목을 삭제하여 이 문제를 해결할 수 있습니다.
탐색 작업 해결
후속 탐색 스캔에서 작업에 사용된 데이터가 확인됩니다. 작업을 트리거하는 문제가 해결되면 다음에 예약된 탐색 스캔에서 작업을 자동으로 해결합니다.
기타 탐색 작업
위 탐색 작업 외에도 Dataplex Universal Catalog의 리소스 상태 전파 및 보안 정책 전파와 관련된 세 가지 작업 유형이 있습니다.
리소스 누락: 기존 애셋에 해당하는 기본 버킷이나 데이터 세트를 찾을 수 없습니다.
미승인 리소스: Dataplex Universal Catalog에 탐색을 수행하거나 Dataplex Universal Catalog에서 관리하는 버킷이나 데이터 세트에 보안 정책을 적용할 수 있는 권한이 부족합니다.
보안 정책 전파 문제: 특정 레이크, 영역 또는 애셋에 지정된 보안 정책이 기본 버킷이나 데이터 세트에 성공적으로 전파되지 않았습니다. 다른 모든 작업은 애셋 수준이지만 이 유형의 작업은 레이크, 영역, 애셋 수준에서 발생할 수 있습니다.
이러한 유형의 작업은 기본 리소스 문제나 보안 구성 문제가 수정되면 자동으로 해결됩니다.
FAQ
탐색에서 추론한 스키마가 잘못된 경우 어떻게 해야 하나요?
추론된 스키마가 특정 테이블에 예상되는 스키마와 다르면 Metadata API를 사용하여 메타데이터를 업데이트해 추론된 스키마를 재정의하면 됩니다.
이후 탐색 스캔에서 수정사항을 덮어쓰지 않도록 userManaged를 true로 설정해야 합니다.
탐색 스캔에서 파일을 제외하려면 어떻게 해야 하나요?
기본적으로 탐색은 스캔에서 다음을 포함한 특정 유형의 파일을 제외합니다.
_SUCCESS_started_committed_metadata,_METADATA,_Metadata_common_metadata,_COMMON_METADATAREADME또는readme로 시작하는 파일base_,delta_,delete_delta_,bucket_으로 시작하고 뒤에 숫자가 오는 디렉터리.으로 시작하는 디렉터리
영역 또는 애셋 수준에서 탐색 구성을 사용하거나 Metadata API를 사용하여 포함 또는 제외 패턴을 추가로 지정할 수 있습니다.
탐색에서 감지한 테이블 그룹화가 너무 세분화된 경우 어떻게 해야 하나요?
탐색에서 감지한 테이블이 테이블 루트 경로와 비교하여 더욱 세분화된 수준인 경우(예: 각 개별 파티션이 테이블로 등록됨) 여러 가지 원인이 있을 수 있습니다.
예상되는 테이블 루트 경로에 테이블을 더 작은 그룹으로 분할하는 형식 차이(예: Avro 파일과 Parquet 파일 혼합)가 있습니다.
예상되는 테이블 루트 경로에 테이블을 더 작은 그룹으로 분할하는 다양한 유형의 스키마가 호환되지 않습니다.
다음 방법 중 하나로 이 문제를 해결할 수 있습니다.
같은 테이블 루트 경로에 있는 모든 파일의 형식이 일관되고 이러한 파일이 스키마와 호환되도록 형식 차이나 스키마 차이를 수정합니다.
영역/애셋 구성이나 Metadata API의 일부로 제외 패턴 구성을 사용하여 이기종 파일을 제외합니다.
수정 단계 중 하나를 수행하면 다음 탐색 스캔에서 다음이 발생합니다.
- 기존 하위 테이블이 Dataplex API, BigQuery, Dataproc Metastore, Data Catalog에서 자동으로 삭제됩니다.
- 예상 테이블 루트 경로가 있는 새로운 상위 수준 테이블이 대신 생성됩니다.
테이블 이름을 지정하려면 어떻게 해야 하나요?
Metadata API를 사용하여 테이블 이름을 지정하면 됩니다.
Dataproc Metastore 또는 BigQuery에서 수동으로 테이블을 만들면 어떻게 되나요?
탐색이 특정 애셋에 사용 설정된 경우에는 Dataproc Metastore 또는 BigQuery에 항목을 수동으로 등록하지 않아도 됩니다.
Dataplex Universal Catalog 탐색을 사용 중지하는 동안 테이블 이름, 스키마, 파티션 정의를 수동으로 정의할 수 있습니다. 또는 다음을 수행합니다.
- 테이블 루트 경로와 같은 필수 정보만 지정하여 테이블을 만듭니다.
- Dataplex Universal Catalog 탐색을 사용하여 스키마 및 파티션 정의와 같은 나머지 메타데이터를 채웁니다.
- 메타데이터를 최신 상태로 유지합니다.
BigQuery에서 테이블이 표시되지 않는 경우 어떻게 해야 하나요?
Dataplex Universal Catalog 메타데이터는 모두 Metadata API에 중앙 집중식으로 등록되지만 BigQuery와 호환되는 Cloud Storage 테이블만 BigQuery에 외부 테이블로 게시됩니다. Metadata API의 테이블 항목 세부정보에는 BigQuery에 게시되는 항목과 그 이유를 나타내는 BigQuery 호환성 마커가 있습니다.
제한사항
- 탐색에서는 BigLake 외부 테이블을 포함한 외부 테이블을 지원하지 않습니다. 하지만 외부 테이블은 Dataplex Universal Catalog에 자동으로 수집되므로 대신 Dataplex Universal Catalog에서 외부 테이블을 검색할 수 있습니다.
다음 단계
- 메타데이터를 사용하는 방법 알아보기