Dataproc Metastore 메타데이터를 BigQuery Metastore로 이전

이 문서에서는 Dataproc Metastore 서비스에서 BigQuery 메타스토어로 데이터베이스, 테이블, 파티션 메타데이터를 이동하는 데 도움이 되는 BigQuery 메타스토어 이전 도구를 사용하는 방법을 설명합니다.

시작하기 전에

  1. Google Cloud 프로젝트에 결제를 사용 설정합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.
  2. BigQuery 및 Dataflow API를 사용 설정합니다.

    API 사용 설정

  3. 선택사항: 다음에 대해 자세히 알아보세요.

필요한 역할

이전 도구를 실행하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

  • BigQuery에서 데이터베이스, 테이블, 파티션을 만듭니다. 이전 작업을 실행하는 Dataflow 서비스 계정의 BigQuery 데이터 편집기 (roles/bigQuery.dataEditor)
  • gRPC 엔드포인트에서 Dataproc Metastore 메타데이터에 대한 읽기 액세스 권한을 부여합니다. 이전 작업을 실행하는 Dataflow 서비스 계정에 메타데이터 뷰어 역할 (roles/metastore.metadataViewer)을 부여합니다.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

이전 도구의 작동 방식

이전 도구는 Dataproc Metastore에서 메타데이터를 추출하여 BigQuery Metastore로 처리하는 Dataflow 작업을 시작합니다.

BigQuery Metastore에서 Dataproc Metastore 데이터에 직접 액세스할 수는 없습니다. 이 이전 프로세스는 기존 메타데이터에서 워크로드 또는 작업을 실행하는 데 필요합니다. 이 도구를 사용하지 않으면 Dataproc Metastore에서 메타데이터를 수동으로 추출하여 BigQuery Metastore에 처리해야 합니다.

고려사항

  • 이전 도구는 gRPC 또는 Thrift 엔드포인트 프로토콜을 사용하는 Dataproc Metastore 인스턴스를 지원합니다.
  • 이전 도구를 실행할 때마다 Dataflow 작업은 Dataproc Metastore에서 BigQuery Metastore로 메타데이터의 전체 사본을 만듭니다.

제한사항

이전 도구는 데이터베이스 및 테이블 파티션과 관련 없는 메타데이터를 이전하지 않습니다. 도구가 데이터베이스 또는 테이블을 이전할 수 없는 경우 Dataflow 작업이 포함된 프로젝트의 Cloud Logging 인스턴스에 메시지를 로깅합니다.

오류가 기록된 후 Dataflow 작업은 파이프라인의 다른 테이블과 데이터베이스를 계속 처리합니다.

도구로 이전 실행

이 도구로 이전을 실행하려면 다음 gcloud dataflow flex-template 명령어를 실행하여 Dataflow Flex 템플릿 작업을 만듭니다.

gcloud dataflow flex-template run JOB_NAME" \
   --template-file-gcs-location "gs://bigquery-metastore-migration/dpms_to_bqms_migration.json" \
   --parameters bigQueryMetastoreProjectId="DESTINATION_BIGQUERY_PROJECT_ID" \
   --parameters endpointUri="METASTORE_URI" \
   --parameters bigQueryMetastoreDatabaseLocation=DATABASE_LOCATION \
  [--network=NETWORK] \
  [--subnetwork=SUBNETWORK]

다음을 바꿉니다.

  • JOB_NAME: 이전을 실행할 Dataflow 작업의 이름입니다.
  • DESTINATION_BIGQUERY_PROJECT_ID: Dataflow 작업이 데이터를 쓰는 BigQuery 프로젝트의 ID입니다.
  • METASTORE_URI: Dataproc Metastore 서비스의 URI입니다.
  • DATABASE_LOCATION: BigQuery 메타스토어에서 데이터를 쓰는 위치입니다. 예를 들어 이 값을 US로 설정하면 도구에서 만든 모든 BigQuery 리소스가 이 위치에 저장됩니다.
  • NETWORK: 선택사항: Dataflow 작업을 실행할 네트워크입니다. Thrift 엔드포인트를 사용하는 Dataproc Metastore 서비스에만 필요합니다.
  • SUBNETWORK: 선택사항: Dataflow 작업을 실행할 서브네트워크입니다. Thrift 엔드포인트를 사용하는 Dataproc Metastore 서비스에만 필요합니다.

다음 단계