이 가이드에서는 Dataplex 검색을 사용 설정하고 사용하는 방법을 설명합니다. 검색은 데이터 레이크의 데이터에서 메타데이터를 스캔하고 추출하고 분석, 검색, 탐색 분석을 위해 Dataproc Metastore, BigQuery, Data Catalog에 등록합니다.
개요
검색이 사용 설정된 각 Dataplex 애셋에 대해 Dataplex는 다음을 실행합니다.
- 애셋과 연결된 데이터를 스캔합니다.
- 구조화된 파일과 반구조화된 파일을 테이블로 그룹화합니다.
- 테이블 이름, 스키마, 파티션 정의와 같은 기술 메타데이터를 수집합니다.
이미지 및 동영상과 같은 비정형 데이터의 경우 Dataplex 검색은 미디어 유형을 공유하는 파일 그룹을 파일 세트로 자동 감지하고 등록합니다. 예를 들어 gs://images/group1
에 GIF 이미지가 포함되어 있고 gs://images/group2
에 JPEG 이미지가 포함되어 있으면 Dataplex 검색에서 두 개의 파일 세트를 감지하고 등록합니다. 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
을 제외하고 하나의 문자를 허용합니다. 문자가 두 개 이상 제공되면 문자열의 첫 번째 문자만 사용됩니다. 제공되지 않으면 검색에서 쉼표를 구분 기호로 사용합니다.헤더 행 수: 이 필드는 값
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 레이크에 데이터 영역을 만들면 Dataplex는 레이크가 포함된 프로젝트에 BigQuery 데이터 세트를 만듭니다. Dataplex는 데이터 영역에 애셋으로 추가된 Cloud Storage 버킷에서 발견된 테이블의 테이블을 해당 데이터 세트에 게시합니다. 이 데이터 세트를 영역에 해당하는 메타데이터 게시 데이터 세트라고 합니다.
각 Dataplex 데이터 영역은 메타데이터 정보가 자동으로 제공되는 BigQuery의 데이터 세트 또는 Dataproc Metastore의 데이터베이스에 매핑됩니다.
Dataplex 메타데이터 API를 사용하여 테이블 이름 또는 스키마와 같은 자동 감지된 메타데이터를 수정할 수 있습니다.
검색된 테이블 및 파일 세트 보기
Google Cloud 콘솔의 Dataplex 검색 뷰에서 검색된 테이블과 파일 세트를 검색할 수 있습니다.
보다 정확한 검색 결과를 얻으려면 레이크 및 데이터 영역 이름과 같은 Dataplex 관련 필터를 사용하세요. 필터 목록에는 패싯당 상위 50개 항목이 표시됩니다. 검색창을 사용하여 추가 항목을 찾을 수 있습니다.
각 항목에는 자세한 기술 및 운영 메타데이터가 포함됩니다.
항목 세부정보 페이지에서 BigQuery의 테이블을 쿼리하고 상응하는 Dataproc Metastore 등록 세부정보를 볼 수 있습니다.
Cloud Storage 테이블을 BigQuery에 외부 테이블로 게시할 수 있는 경우 항목 세부정보 뷰에서 다음을 확인할 수 있습니다.
- BigQuery 외부 테이블 참조
- BigQuery에서 열기 버튼을 클릭하면 BigQuery에서 데이터 분석을 시작할 수 있습니다.
Data Catalog에서 Dataplex 메타데이터 항목을 직접 볼 수 있고 검색할 수 있습니다. 자세한 내용은 Data Catalog 검색 참조를 참조하세요.
발견된 모든 항목은 Dataplex 메타데이터 API를 통해 볼 수 있습니다.
검색 작업
검색은 스캔 중에 데이터 관련 문제가 감지될 때마다 다음과 같은 관리자 작업을 실행합니다.
잘못된 데이터 형식
다음 작업이 포함됩니다.
테이블의 데이터 형식이 일치하지 않습니다. 예를 들어 테이블 프리픽스가 동일한 다른 형식의 파일이 있습니다.
선별된 영역의 데이터 형식이 잘못되었습니다(Avro, Parquet 또는 ORC 형식이 아닌 데이터).
호환되지 않는 스키마
다음 작업이 포함됩니다.
검색에서 감지한 스키마가 Dataproc Metastore의 메타데이터 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의 리소스 상태 및 보안 정책 전파와 관련된 세 가지 작업 유형이 있습니다.
리소스 누락: 기존 애셋에 해당하는 기본 버킷 또는 데이터 세트를 찾을 수 없습니다.
승인되지 않은 리소스: Dataplex에 검색을 실행하거나 Dataplex에서 관리하는 버킷 또는 데이터 세트에 보안 정책을 적용할 권한이 충분하지 않습니다.
보안 정책 전파 문제: 특정 레이크, 영역 또는 애셋에 지정된 보안 정책을 기본 버킷 또는 데이터 세트에 전파할 수 없습니다. 다른 모든 작업은 애셋 수준이지만 이 유형의 작업은 레이크, 영역, 애셋 수준에서 발생할 수 있습니다.
이러한 유형의 작업은 기본 리소스 또는 보안 구성 문제가 수정되면 자동으로 해결됩니다.
FAQ
검색에서 추론한 스키마가 잘못되면 어떻게 해야 하나요?
추론된 스키마가 특정 테이블에 예상되는 스키마와 다른 경우 메타데이터 API를 사용하여 메타데이터를 업데이트하여 추론된 스키마를 재정의할 수 있습니다.
후속 검색 스캔에서 수정사항을 덮어쓰지 않도록 userManaged
를 true
로 설정해야 합니다.
검색 스캔에서 파일을 제외하려면 어떻게 해야 하나요?
기본적으로 검색에서는 다음을 포함한 특정 유형의 파일이 스캔에서 제외됩니다.
_SUCCESS
_started
_committed
_metadata
,_METADATA
,_Metadata
_common_metadata
,_COMMON_METADATA
README
또는readme
로 시작하는 파일base_
,delta_
,delete_delta_
,bucket_
로 시작하고 뒤에 숫자가 오는 디렉터리.
으로 시작하는 디렉터리
영역 또는 애셋 수준에서 검색 구성을 사용하거나 메타데이터 API를 사용하여 추가 포함 또는 제외 패턴을 지정할 수 있습니다.
검색에서 감지한 테이블 그룹화가 너무 세분화되면 어떻게 해야 하나요?
검색에서 감지한 테이블이 테이블 루트 경로와 비교하여 보다 세분화된 수준인 경우(예: 각 개별 파티션이 테이블로 등록됨) 다음과 같은 몇 가지 이유가 있을 수 있습니다.
예상되는 테이블 루트 경로에는 Avro 파일과 Parquet 파일이 혼합되는 등 테이블을 더 작은 그룹으로 분할하는 형식 차이가 있습니다.
예상되는 테이블 루트 경로에는 테이블을 더 작은 그룹으로 분할하는 다양한 유형의 스키마 비호환성이 있습니다.
다음 방법 중 하나로 이 문제를 해결할 수 있습니다.
동일한 테이블 루트 경로의 모든 파일이 일관된 형식과 호환되는 스키마를 갖도록 형식 또는 스키마 차이를 수정합니다.
영역/애셋 구성 또는 메타데이터 API의 일부로 제외 패턴 구성을 사용하여 이기종 파일을 제외합니다.
수정 단계 중 하나를 수행하면 다음 검색 스캔에서 다음이 발생합니다.
- 기존 하위 테이블은 Dataplex 메타데이터 API, BigQuery, Dataproc Metastore, Data Catalog에서 자동으로 삭제됩니다.
- 대신 예상 테이블 루트 경로가 있는 새로운 상위 테이블이 생성됩니다.
테이블 이름을 지정하려면 어떻게 해야 하나요?
메타데이터 API를 사용하여 테이블 이름을 지정하면 됩니다.
Dataproc Metastore 또는 BigQuery에서 수동으로 테이블을 만들면 어떻게 되나요?
특정 애셋에 검색이 사용 설정된 경우 Dataproc Metastore 또는 BigQuery에 항목을 수동으로 등록할 필요가 없습니다.
Dataplex 검색을 사용 중지하는 동안 테이블 이름, 스키마, 파티션 정의를 수동으로 정의할 수 있습니다. 또는 다음을 수행합니다.
- 테이블 루트 경로와 같은 필수 정보만 지정하여 테이블을 만듭니다.
- Dataplex 검색을 사용하여 스키마 및 파티션 정의와 같은 나머지 메타데이터를 채웁니다.
- 메타데이터를 최신 상태로 유지합니다.
테이블이 BigQuery에 표시되지 않으면 어떻게 해야 하나요?
Dataplex 메타데이터는 모두 메타데이터 API에 중앙 집중식으로 등록되지만 BigQuery와 호환되는 Cloud Storage 테이블만 BigQuery에 외부 테이블로 게시됩니다. 메타데이터 API의 테이블 항목 세부정보에 BigQuery에 게시되는 항목과 그 이유를 나타내는 BigQuery 호환성 마커가 있습니다.
제한사항
- BigLake 외부 테이블을 비롯한 외부 테이블은 Discovery에서 지원되지 않습니다. 하지만 외부 테이블은 Dataplex 카탈로그에 자동으로 처리되므로 대신 Dataplex 카탈로그에서 검색할 수 있습니다.
다음 단계
- 메타데이터를 사용하는 방법을 알아봅니다.