Dataproc Metastore メタデータを BigQuery メタストアに移行する

このドキュメントでは、BigQuery メタストア移行ツールの使用方法について説明します。このツールは、データベース、テーブル、パーティションのメタデータを Dataproc Metastore サービスから BigQuery メタストアに移動するのに役立ちます。

始める前に

  1. Google Cloud プロジェクトで課金を有効にします。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
  2. BigQuery API と Dataflow API を有効にします。

    API を有効にする

  3. 省略可: 以下の詳細を確認します。

必要なロール

移行ツールの実行に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

  • BigQuery でデータベース、テーブル、パーティションを作成します。移行ジョブを実行している Dataflow サービス アカウントに BigQuery データ編集者 roles/bigQuery.dataEditor)ロールが必要です。
  • gRPC エンドポイントの Dataproc Metastore メタデータに対する読み取りアクセス権を付与します。移行ジョブを実行している Dataflow サービス アカウントに対する メタデータ閲覧者のロール roles/metastore.metadataViewer)。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

移行ツールの仕組み

移行ツールは、Dataproc Metastore からメタデータを抽出して BigQuery Metastore に取り込む Dataflow ジョブを開始します。

BigQuery メタストアから 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 サービスでのみ必要です。

次のステップ