Dataproc Metastore로 메타데이터 가져오기

이 페이지에서는 Dataproc Metastore 서비스로 메타데이터를 가져오는 방법을 설명합니다.

메타데이터 가져오기 기능을 사용하면 기존 Dataproc Metastore 서비스에 포팅 가능한 스토리지 형식으로 저장된 메타데이터를 채울 수 있습니다.

이 포팅 가능한 메타데이터는 일반적으로 다른 Dataproc Metastore 서비스 또는 자체 관리형 HMS(Hive Metastore)에서 내보내집니다.

메타데이터 가져오기 정보

다음 파일 형식을 Dataproc Metastore로 가져올 수 있습니다.

  • 폴더에 저장된 Avro 파일 집합
  • Cloud Storage 폴더에 저장된 단일 MySQL 덤프 파일

가져오려는 MySQL 또는 Avro 파일은 관계형 데이터베이스에서 생성되어야 합니다.

파일이 PostgreSQL과 같은 다른 형식이면 Avro 또는 MySQL 형식으로 변환해야 합니다. 변환 후 Dataproc Metastore로 가져올 수 있습니다.

Avro

Avro 기반 가져오기는 Hive 버전 2.3.6 및 3.1.2에서만 지원됩니다. Avro 파일을 가져올 때 Dataproc Metastore에는 데이터베이스의 각 테이블에 대해 일련의 <table-name>.avro 파일이 필요합니다.

Avro 파일을 가져오기 위해 Dataproc Metastore 서비스에서 MySQL 또는 Spanner 데이터베이스 유형을 사용할 수 있습니다.

MySQL

MySQL 기반 가져오기는 모든 Hive 버전에서 지원됩니다. MySQL 파일을 가져올 때 Dataproc Metastore는 모든 테이블 정보가 포함된 단일 SQL 파일이 필요합니다. 네이티브 SQL을 사용하여 Dataproc 클러스터에서 가져온 MySQL 덤프도 지원됩니다.

MySQL 파일을 가져오려면 Dataproc Metastore 서비스에서 MySQL 데이터베이스 유형을 사용해야 합니다. Spanner 데이터베이스 유형은 MySQL 가져오기를 지원하지 않습니다.

가져오기 고려사항

  • 가져오기를 수행하면 Dataproc Metastore 서비스에 저장된 모든 기존 메타데이터를 덮어씁니다.

  • 메타데이터 가져오기 기능은 메타데이터만 가져옵니다. 내부 테이블의 Apache Hive에서 생성된 데이터는 가져오기를 수행할 때 복제되지 않습니다.

  • 가져오기를 수행해도 데이터베이스 콘텐츠가 변환되지 않고 파일 마이그레이션이 처리되지 않습니다. 데이터를 다른 위치로 이동할 경우 Dataproc Metastore 서비스에서 테이블 데이터 위치 및 스키마를 수동으로 업데이트해야 합니다.

  • 가져오기를 수행해도 세분화된 IAM 정책은 복원되거나 교체되지 않습니다.

  • VPC 서비스 제어를 사용하는 경우 Dataproc Metastore 서비스와 동일한 서비스 경계에 있는 Cloud Storage 버킷에서만 데이터를 가져올 수 있습니다.

시작하기 전에

필요한 역할

Dataproc Metastore로 메타데이터를 가져오기 위해 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

이러한 사전 정의된 역할에는 메타데이터를 Dataproc Metastore로 가져오는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 확장하세요.

필수 권한

Dataproc Metastore로 메타데이터를 가져오려면 다음 권한이 필요합니다.

  • 메타데이터를 가져오려는 경우: 메타스토어 서비스의 metastore.imports.create 권한
  • MySQL의 경우 가져오기를 위해 Cloud Storage 객체(SQL 덤프 파일)를 사용하려면 사용자 계정과 Dataproc Metastore 서비스 에이전트에 가져오기할 메타데이터 덤프가 포함된 Cloud Storage 버킷에 대한 storage.objects.get 권한을 부여하세요.
  • Avro의 경우 가져오기를 위해 Cloud Storage 버킷을 사용하려면 사용자 계정과 Dataproc Metastore 서비스 에이전트에 가져오기할 메타데이터 덤프가 포함된 Cloud Storage 버킷에 대한 storage.objects.get 권한을 부여하세요.

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

특정 Dataproc Metastore 역할 및 권한에 대한 자세한 내용은 Dataproc Metastore IAM 개요를 참조하세요.

메타데이터 가져오기

가져오기 작업은 2단계 프로세스입니다. 먼저 가져오기 파일을 준비한 후 Dataproc Metastore로 가져옵니다.

가져오기를 시작할 때 Dataproc Metastore는 Hive 메타데이터 스키마 검증을 수행합니다. 이 검증은 SQL 덤프 파일의 테이블 및 Avro에 대한 파일 이름을 확인합니다. 테이블이 누락된 경우 누락된 테이블을 설명하는 오류 메시지와 함께 가져오기가 실패합니다.

가져오기 전 Hive 메타데이터 호환성을 확인하려면 Dataproc Metastore Toolkit을 사용하면 됩니다.

가져오기 전에 가져오기 파일 준비

Dataproc Metastore로 파일을 가져오려면 먼저 아티팩트 Cloud Storage 버킷과 같은 Cloud Storage에 메타데이터 덤프 파일을 복사해야 합니다.

Cloud Storage로 파일 이동

  1. Dataproc Metastore로 가져오려는 외부 데이터베이스의 데이터베이스 덤프를 만듭니다.

    데이터베이스 덤프 만들기에 대한 안내는 다음 페이지를 참조하세요.

  2. Cloud Storage에 파일을 업로드합니다.

    파일을 업로드할 Cloud Storage 경로를 기록해 두세요. 나중에 가져오기를 수행할 때 사용해야 합니다.

    • MySQL 파일을 가져오는 경우 Cloud Storage 버킷으로 SQL 파일을 업로드합니다.

    • Avro 파일을 가져올 경우에는 Cloud Storage 폴더로 파일을 업로드합니다.

      • Avro 가져오기에는 테이블이 비어 있더라도 각 Hive 테이블에 대해 Avro 파일이 포함됩니다.
      • Avro 파일 이름은 <table-name>.avro 형식을 따라야 합니다. <table-name>은 모두 대문자여야 합니다. 예를 들면 AUX_TABLE.avro입니다.

Dataproc Metastore로 파일 가져오기

메타데이터를 가져오기 전에 가져오기 고려사항을 검토하세요.

가져오기를 실행하는 동안에는 구성 설정 변경과 같이 Dataproc Metastore 서비스를 업데이트할 수 없습니다. 그러나 연결된 Dataproc 또는 자체 관리형 클러스터에서 메타데이터에 액세스할 때와 같이 여전히 일반적인 작업에 사용할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Dataproc Metastore 페이지를 엽니다.

    Dataproc Metastore 열기

  2. Dataproc Metastore 페이지에서 메타데이터를 가져오려는 서비스 이름을 클릭합니다.

    서비스 세부정보 페이지가 열립니다.

    서비스 세부정보 페이지
    그림 1. Dataproc Metastore 서비스 세부정보 페이지
  3. 탐색 메뉴에서 가져오기를 클릭합니다.

    가져오기 대화상자가 열립니다.

  4. 가져오기 이름을 입력합니다.

  5. 대상 섹션에서 MySQL 또는 Avro를 선택합니다.

  6. 대상 URI 필드에서 찾아보기를 클릭하고 파일을 가져오려는 Cloud Storage URI를 클릭합니다.

    또한 제공된 텍스트 필드에 버킷 위치를 수동으로 입력할 수도 있습니다. bucket/object 또는 bucket/folder/object 형식을 사용하세요.

  7. (선택사항) 가져오기에 대한 설명을 입력합니다.

    서비스 세부정보 페이지에서 설명을 수정할 수 있습니다.

  8. 서비스를 업데이트하려면 가져오기를 클릭합니다.

    가져오기가 완료되면 가져오기/내보내기 탭의 서비스 세부정보 페이지에 있는 테이블에 표시됩니다.

gcloud CLI

  1. 메타데이터를 가져오려면 다음 gcloud metastore services import gcs 명령어를 실행합니다.

    gcloud metastore services import gcs SERVICE_ID \
      --location=LOCATION \
      --import-id=IMPORT_ID \
      --description=DESCRIPTION \
      --dump-type=DUMP_TYPE \
      --database-dump=DATABASE_DUMP
    

    다음을 바꿉니다.

    • SERVICE_ID: Dataproc Metastore 서비스의 ID 또는 정규화된 이름입니다.
    • LOCATION: Dataproc Metastore 서비스가 있는 Google Cloud 리전입니다.
    • IMPORT_ID: 메타데이터 가져오기의 ID 또는 정규화된 이름입니다. 예를 들면 import1입니다.
    • DESCRIPTION: (선택사항) 가져오기에 대한 설명입니다. 이 항목은 나중에 gcloud metastore services imports update IMPORT를 사용하여 수정할 수 있습니다.
    • DUMP_TYPE: 가져올 외부 데이터베이스의 유형입니다. 허용되는 값은 mysqlavro입니다. 기본값은 mysql입니다.
    • DATABASE_DUMP: 데이터베이스 파일이 포함된 Cloud Storage의 경로입니다. 이 경로는 gs://로 시작해야 합니다. Avro의 경우 Avro 파일이 저장된 폴더(Cloud Storage 폴더)의 경로를 제공합니다. MySQL의 경우 MySQL 파일(Cloud Storage 객체)의 경로를 제공합니다.
  2. 가져오기가 성공했는지 확인합니다.

REST

API 안내에 따라 API 탐색기를 사용하여 서비스로 메타데이터 가져오기를 수행합니다.

API를 사용하면 가져오기를 만들고, 나열하고, 설명하고, 업데이트할 수 있지만 가져오기를 삭제할 수 없습니다. 그러나 Dataproc Metastore 서비스를 삭제하면 저장된 모든 중첩 가져오기가 삭제됩니다.

가져오기에 성공하면 Dataproc Metastore가 자동으로 활성 상태로 돌아갑니다. 가져오기에 실패하면 Dataproc Metastore가 이전의 정상 상태로 롤백됩니다.

가져오기 기록 보기

Google Cloud 콘솔에서 Dataproc Metastore 서비스의 가져오기 기록을 보려면 다음 단계를 완료합니다.

  1. Google Cloud 콘솔에서 Dataproc Metastore 페이지를 엽니다.
  2. 탐색 메뉴에서 가져오기/내보내기를 클릭합니다.

    가져오기 기록이 가져오기 기록 테이블에 표시됩니다.

    기록에는 가져오기가 최대 25개까지 표시됩니다.

Dataproc Metastore 서비스를 삭제하면 연관된 모든 가져오기 기록도 삭제됩니다.

일반적인 문제 해결

일반적인 문제에는 다음이 포함됩니다.

일반적인 문제 해결을 위한 도움이 필요하면 가져오기 및 내보내기 오류 시나리오를 참조하세요.

다음 단계