このページでは、Dataproc Metastore からメタデータをエクスポートする方法について説明します。
メタデータのエクスポート機能を使用すると、メタデータをポータブル ストレージ形式で保存できます。
データをエクスポートしたら、別の Dataproc Metastore サービスまたはセルフマネージド Hive Metastore(HMS)にメタデータをインポートできます。
メタデータのエクスポートについて
Dataproc Metastore からメタデータをエクスポートすると、サービスはデータを次のいずれかのファイル形式で保存します。
- フォルダに保存されている一連の Avro ファイル。
- Cloud Storage フォルダに保存されている単一の MySQL ダンプファイル。
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 ファイルを作成します。
MySQL ファイルをエクスポートするには、Dataproc Metastore サービスで MySQL データベース タイプを使用する必要があります。Spanner データベース タイプは MySQL インポートをサポートしていません。
始める前に
- プロジェクトで Dataproc Metastore を有効にします。
- プロジェクトに特有のネットワーキング要件を理解します。
- Dataproc Metastore サービスを作成します。
必要なロール
メタデータを Dataproc Metastore にエクスポートするために必要な権限を取得するには、管理者に次の IAM ロールを付与するよう依頼してください。
-
メタデータをエクスポートするには、次のいずれかのロールが必要です。
-
Dataproc Metastore サービスに対する Dataproc Metastore 編集者(
roles/metastore.editor
) -
Dataproc Metastore サービスに対する Dataproc Metastore 管理者(
roles/metastore.admin
) -
Dataproc Metastore サービスに対する Dataproc Metastore メタデータ オペレータ(
roles/metastore.metadataOperator
)
-
Dataproc Metastore サービスに対する Dataproc Metastore 編集者(
- MySQL と Avro でエクスポートに Cloud Storage オブジェクトを使用する場合:
Cloud Storage バケットに対する ストレージ作成者のロールをユーザー アカウントと Dataproc Metastore サービス エージェントに付与します(
roles/storage.objectCreator
)。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、メタデータを Dataproc Metastore にエクスポートするために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
メタデータを Dataproc Metastore にエクスポートするには、次の権限が必要です。
-
メタデータをエクスポートするには、メタストア サービスの
metastore.services.export
を使用します。 -
MySQL と Avro の場合、Cloud Storage オブジェクトをエクスポートに使用するには、ユーザー アカウントと Dataproc Metastore サービス エージェントに Cloud Storage バケットに対する
storage.objects.create
を付与します。
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Dataproc Metastore の特定のロールと権限については、Dataproc Metastore IAM の概要をご覧ください。ExportMetadata
メタデータをエクスポートする前に、次の点を考慮してください。
- エクスポートの実行中は、Dataproc Metastore サービスを更新できません(構成設定の変更など)。ただし、接続された Dataproc やセルフマネージド クラスタからメタデータにアクセスするために使用するなど、通常のオペレーションに引き続き使用できます。
- メタデータのエクスポート機能は、メタデータのみをエクスポートします。内部テーブルにある Apache Hive によって作成されたデータは、エクスポートで複製されません。
Dataproc Metastore サービスからメタデータをエクスポートするには、次の操作を行います。
Console
Google Cloud コンソールで、[Dataproc Metastore] ページを開きます。
[Dataproc Metastore] ページで、メタデータをエクスポートするサービスの名前をクリックします。
サービスの詳細ページが開きます。
ナビゲーション バーで [エクスポート] をクリックします。
[Export metadata] ページが開きます。
[送信先] セクションで、[MySQL] または [Avro] を選択します。
[宛先 URI] フィールドで、[参照] をクリックして、ファイルをエクスポートする Cloud Storage URI を選択します。
バケットのロケーションは、指定されたテキスト フィールドに入力することもできます。
bucket/object
またはbucket/folder/object
の形式を使用します。エクスポートを開始するには、[送信] をクリックします。
エクスポートが完了すると、[インポート / エクスポート] タブの [サービスの詳細] ページの表にエクスポートが表示されます。
エクスポートが正常に完了したかどうかに関係なく、エクスポートが完了すると、Dataproc Metastore は自動的にアクティブな状態に戻ります。
gcloud CLI
サービスからメタデータをエクスポートするには、次の
gcloud metastore services export gcs
コマンドを実行します。gcloud metastore services export gcs SERVICE \ --location=LOCATION \ --destination-folder=gs://bucket-name/path/to/folder \ --dump-type=DUMP_TYPE
以下を置き換えます。
SERVICE
: Dataproc Metastore サービスの名前。LOCATION
: Dataproc Metastore サービスが存在する Google Cloud リージョン。bucket-name/path/to/folder
: エクスポートを保存する Cloud Storage 上の出力先フォルダ。DUMP_TYPE
: エクスポートによって生成されるデータベース ダンプタイプ。指定できる値はmysql
とavro
です。 デフォルト値はmysql
です。
エクスポートが正常に終了したことを確認します。
エクスポートが正常に完了したかどうかに関係なく、エクスポートが完了すると、Dataproc Metastore は自動的にアクティブな状態に戻ります。
REST
API の手順に従い、API Explorer を使用して サービスにメタデータをエクスポートします。
エクスポートが完了すると、成功したかどうかにかかわらず、サービスは自動的にアクティブな状態に戻ります。
エクスポート履歴を表示する
Google Cloud コンソールで Dataproc Metastore サービスのエクスポート履歴を表示するには、次の手順を実行します。
- Google Cloud コンソールで、[Dataproc Metastore] ページを開きます。
ナビゲーション バーで、[インポート / エクスポート] をクリックします。
エクスポート履歴が [エクスポート履歴] テーブルに表示されます。
履歴には、最新の 25 件のエクスポートが表示されます。
Dataproc Metastore サービスを削除すると、関連付けられたエクスポート履歴もすべて削除されます。
一般的な問題のトラブルシューティング
一般的な問題としては、次のようなものがあります。
一般的なトラブルシューティングの問題の解決については、インポートとエクスポートのエラーのシナリオをご覧ください。