Dataproc Metastore メタデータを BigQuery metastore に移行する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
このドキュメントでは、BigQuery metastore 移行ツールの使用方法について説明します。このツールは、データベース、テーブル、パーティションのメタデータを Dataproc Metastore サービスから BigQuery metastore に移動するのに役立ちます。
始める前に
- Google Cloud プロジェクトに対する課金を有効にします。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
BigQuery API と Dataflow API を有効にします。
省略可: 以下の詳細を確認します。
- BigQuery metastore の仕組みと、使用する理由について理解します。
- Dataflow の仕組みと、進行中のジョブをモニタリングする方法について学習します。
必要なロール
移行ツールの実行に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
BigQuery でデータベース、テーブル、パーティションを作成する。移行ジョブを実行している Dataflow サービス アカウントに対する BigQuery データ編集者(
roles/bigQuery.dataEditor
)のロール。 -
gRPC エンドポイントの Dataproc Metastore メタデータに対する読み取りアクセス権を付与する。移行ジョブを実行している Dataflow サービス アカウントに対するメタデータ閲覧者(
roles/metastore.metadataViewer
)のロール。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
移行ツールの仕組み
移行ツールは、Dataflow ジョブを開始し、Dataproc Metastore からメタデータを抽出して BigQuery Metastore に取り込みます。
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 runJOB_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 metastore がデータを書き込むロケーション。たとえば、この値をUS
に設定すると、ツールによって作成されたすべての BigQuery リソースがこのロケーションに保存されます。NETWORK
: 省略可。Dataflow ジョブを実行するネットワーク。Thrift エンドポイントを使用する Dataproc Metastore サービスでのみ必要です。SUBNETWORK
: 省略可。Dataflow ジョブを実行するサブネットワーク。Thrift エンドポイントを使用する Dataproc Metastore サービスでのみ必要です。