데이터 검색

이 가이드에서는 Dataplex 검색을 사용 설정하고 사용하는 방법을 설명합니다. 검색은 데이터 레이크의 데이터에서 메타데이터를 스캔하고 추출하고 분석, 검색, 탐색 분석을 위해 Dataproc Metastore, BigQuery, Data Catalog에 등록합니다.

개요

검색이 사용 설정된 각 Dataplex 애셋에 대해 Dataplex는 다음을 수행합니다.

  • 애셋과 연결된 데이터를 스캔합니다.
  • 구조화된 파일과 반구조화된 파일을 테이블로 그룹화합니다.
  • 테이블 이름, 스키마, 파티션 정의와 같은 기술 메타데이터를 수집합니다.

이미지 및 동영상 같은 구조화되지 않은 데이터의 경우 Dataplex 검색은 미디어 유형을 파일 세트로 공유하는 파일 그룹을 자동으로 감지하고 등록합니다. 예를 들어 gs://images/group1에 GIF 이미지가 있고 gs://images/group2에 JPEG 이미지가 있으면 Dataplex Discovery는 두 파일 세트를 감지하고 등록합니다. Avro와 같은 구조화된 데이터의 경우, 검색은 파일이 동일한 데이터 형식과 스키마를 포함하는 폴더에 있는 경우에만 감지합니다.

검색된 테이블 및 파일 세트는 검색 및 탐색을 위해 Data Catalog에 등록됩니다. 이러한 테이블은 Dataproc Metastore에 Hive 스타일 테이블로 표시되고 BigQuery에 외부 테이블로 표시되므로 데이터를 자동으로 분석에 사용할 수 있습니다.

검색은 다음과 같은 구조화된 데이터 형식과 반구조화된 데이터 형식을 지원합니다.

검색은 구조화된 데이터 및 반구조화된 데이터에 대해 다음과 같은 압축 형식을 지원합니다.

  • 다음 형식의 내부 압축:

    압축 파일 확장자 샘플 지원되는 형식
    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=01gs://sales_data/year=2020/region=us이 있습니다.

  • 선별된 데이터 영역에 있는 Hive가 아닌 스타일의 파티션 이름입니다. 예를 들어 gs://sales_data/year=2020/month=10/day=01가 아닌 gs://sales_data/2020/10/01입니다.

데이터 누락

다음 작업이 포함됩니다.

  • 선별된 데이터 영역에서 등록된 테이블 또는 파일 세트의 기본 데이터는 더 이상 존재하지 않습니다. 즉, 선별된 영역 테이블 또는 파일 세트가 검색되고 등록되었지만 나중에 기본 데이터가 삭제되었습니다. 이 문제는 데이터를 보충하거나 메타데이터 항목을 삭제하여 해결할 수 있습니다.

검색 작업 해결

작업이 포함된 데이터는 후속 검색 스캔에서 확인됩니다. 작업을 트리거하는 문제가 해결되면 다음 예약된 검색 스캔을 통해 작업이 자동으로 해결됩니다.

기타 작업

위의 검색 작업 외에도 Dataplex의 리소스 상태 및 보안 정책 전파와 관련된 3가지 유형의 작업이 있습니다.

  • 리소스 누락: 기본 버킷 또는 데이터 세트가 기존 애셋에 해당되지 않습니다.

  • 승인되지 않은 리소스: Dataplex가 검색을 수행하거나 Dataplex에서 관리하는 버킷 또는 데이터 세트에 보안 정책을 적용할 수 있는 권한이 없습니다.

  • 보안 정책 전파 문제: 지정된 레이크, 영역, 애셋에 지정된 보안 정책을 기본 버킷 또는 데이터 세트에 전파할 수 없습니다. 다른 모든 작업은 애셋 수준에 있지만 이 유형의 작업은 레이크, 영역, 애셋 수준에서 발생할 수 있습니다.

이러한 유형의 작업은 기본 리소스 또는 보안 구성 문제가 수정될 때 자동으로 해결됩니다.

FAQ

검색에서 추론한 스키마가 잘못되면 어떻게 해야 하나요?

추론된 스키마가 특정 테이블에 필요한 스키마와 다른 경우 메타데이터 API를 사용하여 메타데이터를 업데이트하여 추론된 스키마를 재정의할 수 있습니다. 이후 검색 스캔에서 수정사항을 덮어쓰지 않도록 userManagedtrue로 설정해야 합니다.

검색 스캔에서 파일을 제외하려면 어떻게 해야 하나요?

기본적으로 검색에서는 다음을 포함한 특정 유형의 파일이 스캔에서 제외됩니다.

  • _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에서 자동으로 삭제됩니다.
  • 대신 예상된 테이블 루트 경로가 있는 새로운 상위 수준 테이블이 생성됩니다.

테이블 이름을 지정하려면 어떻게 해야 하나요?

metadata API를 사용하여 테이블 이름을 지정할 수 있습니다.

Dataproc Metastore 또는 BigQuery에서 수동으로 테이블을 만들면 어떻게 되나요?

지정된 애셋에 검색이 사용 설정된 경우 Dataproc Metastore 또는 BigQuery에 항목을 수동으로 등록할 필요가 없습니다.

Dataplex 검색을 해제하는 동안 테이블 이름, 스키마, 파티션 정의를 수동으로 정의할 수 있습니다. 또는 다음을 수행합니다.

  1. 테이블 루트 경로와 같은 필수 정보만 지정하여 테이블을 만듭니다.
  2. Dataplex 검색을 사용하여 스키마 및 파티션 정의와 같은 나머지 메타데이터를 채웁니다.
  3. 메타데이터를 최신 상태로 유지합니다.

테이블이 BigQuery에 표시되지 않으면 어떻게 해야 하나요?

Dataplex 메타데이터는 모두 메타데이터 API에 중앙 집중식으로 등록되지만 BigQuery와 호환되는 Cloud Storage 테이블만 BigQuery에 외부 테이블로 게시됩니다. metadata API의 테이블 항목 세부정보의 일부로, BigQuery에 게시되는 항목과 이유를 나타내는 BigQuery 호환성 마커를 찾을 수 있습니다.

다음 단계