メタデータ連携サービスを作成する

このページでは、Dataproc Metastore のメタデータ連携サービスを作成する方法について説明します。連携サービスを使用すると、1 つの gRPC エンドポイントから複数のソースに保存されているメタデータにアクセスできます。

連携の仕組みと制限事項の詳細については、メタデータの連携についてをご覧ください。

始める前に

必要なロール

連携サービスを作成して Dataproc クラスタを接続するために必要な権限を取得するには、最小権限の原則に従って、管理者に次の IAM ロールを付与するように依頼してください。

  • 連携サービスにアクセスする場合: ユーザー アカウントまたはサービス アカウントに対する連携アクセス者roles/metastore.federationAccessor)。
  • すべての Dataproc Metastore リソースに対する完全なアクセス権を付与する場合: ユーザー アカウントまたはサービス アカウントに対する Dataproc Metastore 編集者roles/metastore.editor)。
  • 連携サービスを使用して構成された Dataproc Metastore でメタデータ オペレーションを完了する場合: ユーザー アカウントまたはサービス アカウントに対する Metastore オーナー(metastore.metadataEditor)。
  • Dataproc クラスタを作成する場合: Dataproc VM サービス アカウントに対する Dataproc ワーカーroles/dataproc.worker)。
  • (省略可)BigQuery データセットにアクセスする場合: ユースケースに該当する、ユーザー アカウントまたはサービス アカウントに対する適切な BigQuery の事前定義ロールを使用します。
  • (省略可)Dataplex Lakes(プレビュー)にアクセスする場合: ユースケース該当する、ユーザー アカウントまたはサービス アカウントに対する適切な Dataplex の事前定義ロールを使用します。

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

これらの事前定義ロールには、最小権限の原則に従って、連携サービスの作成と Dataproc クラスタの接続に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

連携サービスを作成して Dataproc クラスタを接続するためには、最小権限の原則に従って次の権限が必要です。

  • Dataproc Metastore を作成するには: ユーザー アカウントまたはサービス アカウントの metastore.services.create
  • 連携サービスを一覧表示、取得、作成、更新、削除するには: ユーザー アカウントまたはサービス アカウントの metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.list
  • Dataproc Metastore でメタデータ オペレーションを完了するには: ユーザー アカウントまたはサービス アカウントの metastore.services.get, metastore.services.use, metastore.databases.create, metastore.databases.update, metastore.databases.deletemetastore.databases.get,metastore.databases.list, metastore.databases.getIamPolicy, metastore.tables.create, metastore.tables.update, metastore.tables.delete, metastore.tables.get, metastore.tables.list, metastore.tables.getIamPolicy
  • (省略可)BigQuery データセットにアクセスするには: ユーザー アカウントまたはサービス アカウントの For more information, see BigQuery permissions
  • (省略可)Dataplex Lakes(プレビュー)にアクセスするには: ユーザー アカウントまたはサービス アカウントの For more information, see Dataplex permissions

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

Dataproc Metastore の特定のロールと権限については、IAM による Dataproc Metastore のアクセス管理をご覧ください。

連携サービスの作成

次の手順では、連携サービスを作成してソースに接続する方法を示します。これらの手順を完了すると、連携サービスを Dataproc クラスタに接続できます。

連携ソースとその制限事項の詳細については、メタデータ ソースをご覧ください。

Console

  1. Google Cloud コンソールで、[Dataproc Metastore] ページを開きます。

    Dataproc Metastore を開く

  2. Dataproc のナビゲーション メニューで [フェデレーション] をクリックします。

    [Federated] メタストア サービス ページが開きます。

  3. Federated メタストアのメニューバーで、[作成] をクリックします。

    [連携サービスの作成] ページが開きます。

  4. [連携名] フィールドに、サービスの一意の名前を入力します。

    詳しくは、リソースの命名規則をご覧ください。

  5. [Data location] を選択します。

    連携サービスを Dataproc Metastore ソースと同じリージョンに作成していることを確認します。

  6. Hive の [バージョン] を選択します。

  7. 連携サービスのソースを追加するには、[ソースを追加] をクリックします。

    1 つ以上のソースを追加できます。このリストに最初に追加したソースが、自動的にプライマリ メタストアとして設定されます。ソースの順序は作成後に更新できます。

    1. [ソースの種類] で、連携ソースを選択します。

      Dataproc Metastore インスタンス、1 つ以上の BigQuery データセットを含むプロジェクト、または Dataplex Lake(プレビュー)を選択できます。

    2. [ソース] フィールドに次の情報を入力します。

      • Dataproc Metastore サービスの場合

        1. [選択されたプロジェクト] フィールドで [参照] をクリックして、ソースとして使用する Dataproc Metastore が含まれているプロジェクトを選択します。

          Dataproc Metastore ソースで、連携サービスと互換性のある Hive バージョンが使用されていることを確認します。プライマリ メタストアでは、連携サービスと同等かそれ以上の Hive バージョンを使用する必要があります。

        2. [Metastore サービス] プルダウンで、ソースとして使用する Dataproc Metastore を選択します。

      • BigQuery 向け[選択されたプロジェクト] フィールドで [参照] をクリックして、BigQuery データセットを含むプロジェクトのプロジェクト ID を選択します。

      • Dataplex の場合プレビュー)。 [選択されたプロジェクト] フィールドで [参照] をクリックして、Dataplex Lak を含むプロジェクトのプロジェクト ID を選択します。

    3. [完了] をクリックします。

  8. サービスを作成して開始するには、[送信] をクリックします。

    連携サービスを Dataproc クラスタに接続できるようになりました。

連携サービスを更新する

次の手順では、連携サービスを更新する方法を示します。次のタスクを完了できます。

  • 連携サービスにソースを追加します。
  • 連携サービスからソースを削除します。
  • 連携サービスに含まれるソースのソース順序を変更します。
  • 連携サービスを完全に削除します。サービスを削除すると、そのサービスのすべてのリソースが解放されます。

Console

  1. Google Cloud コンソールで、[Dataproc Metastore] ページを開きます。

    Dataproc Metastore を開く

  2. Dataproc のナビゲーション メニューで [フェデレーション] をクリックします。

    [Federated] メタストア サービス ページが開きます。

  3. Federated メタストア サービスのページで、更新するサービス名の名前をクリックします。

    サービスの詳細ページが開きます。

  4. メニューバーで [編集] をクリックします。

    [Edit service] ページが開きます。

  5. 更新する値を選択します。

  6. サービスを更新するには、[送信] をクリックします。

Dataproc クラスタを連携サービスに接続する

次の手順では、Dataproc クラスタを作成し、そのメタストアとして連携サービス エンドポイントを接続する方法を示します。

これらの手順を開始する前に、始める前にに記載されているすべての手順を完了し、連携サービスを作成します。

gcloud CLI

Dataproc クラスタを作成して連携エンドポイントを接続するには、次の gcloud Dataproc clusters create コマンドを実行します。

 gcloud dataproc clusters create CLUSTER_NAME \
    --region=LOCATION \
    --project=PROJECT_ID \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --image-version=IMAGE_VERSION \
    --service-account=SERVICE_ACCOUNT \
    --optional-components=DOCKER \
    --initialization-actions=gs://metastore-init-actions/metastore-grpc-proxy/metastore-grpc-proxy.sh \
    --metadata="proxy-uri=FEDERATION_URI,hive-version=FEDERATION_VERSION" \
    --properties="hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"

以下を置き換えます。

  • CLUSTER_NAME: 新しい Dataproc クラスタの名前。
  • PROJECT_ID: Dataproc クラスタを作成するプロジェクトの Google Cloud プロジェクト ID。
  • LOCATION: Dataproc クラスタのリージョン。
  • IMAGE_VERSION: 使用する Dataproc イメージ バージョン。

    このコマンドで使用している Dataproc イメージが、連携サービスで使用されている Hive バージョンと互換性があることを確認します。詳細については、Dataproc イメージ バージョン リストをご覧ください。

  • SERVICE_ACCOUNT 省略可: Dataproc クラスタの作成に使用しているサービス アカウント。指定しない場合、クラスタはデフォルトの Compute Engine サービス アカウントを使用します。

  • FEDERATION_URI: 連携サービスのエンドポイント URI。

  • FEDERATION_VERSION: 連携サービスが使用している Hive バージョン。

  • WAREHOUSE_DIR: プライマリ Dataproc Metastore のウェアハウス ディレクトリ。

次のステップ