このページでは、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 オブジェクトを使用する場合:
ユーザー アカウントと Dataproc Metastore サービス エージェントに Cloud Storage バケットに対するストレージ作成者のロール (
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 サービスからメタデータをエクスポートするには、次の操作を行います。
コンソール
Google Cloud コンソールで、[Dataproc Metastore] ページを開きます。
[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 サービスを削除すると、関連するすべてのエクスポート履歴も削除されます。
一般的な問題のトラブルシューティング
一般的な問題としては、次のようなものがあります。
一般的なトラブルシューティングの問題の解決について詳しくは、インポートとエクスポートのエラー シナリオをご覧ください。