メタデータ連携について

メタデータ連携は、1 つのエンドポイントから複数のメタデータ ソースにアクセスできるようにするサービスです。

連携を設定するには、連携サービスを作成し、メタデータ ソースを構成します。その後、サービスはすべてのメタデータにアクセスするために使用する 1 つの gRPC エンドポイントを公開します。

たとえば、連携を使用すると、単一のエンドポイントを介して複数の Dataproc Metastore サービスを公開する Dataproc クラスタを作成できます。その後、Spark や Hive などのオープンソース ソフトウェア(OSS)エンジンでビッグデータ ジョブを実行して、複数のメタストアのメタデータにアクセスできます。

フェデレーションの仕組み

Spark または Hive で実行される OSS ビッグデータ ワークロードは、実行時にメタデータを取得するために Hive Metastore API にリクエストを送信します。

  • Hive Metastore インターフェースでは、読み取りと書き込みの両方のメソッドがサポートされています。連携サービスは、Hive Metastore インターフェースの gRPC バージョンを公開します。
  • 実行時に、連携サービスはリクエストを受信すると、ソースの順序を確認して適切なメタデータを取得します。

メタデータの入手先

連携サービスを作成するときは、メタデータ ソースを追加する必要があります。次のソースをバックエンド メタストアとして使用できます。

  • Dataproc Metastore インスタンス。
  • 1 つ以上の BigQuery データセットを含むプロジェクト。
  • Dataplex Universal Catalog レイク(プレビュー)。

ソースの制限

次のセクションでは、さまざまなメタデータのソースを使用する際に遵守する必要がある制限を示します。

ソース総数

すべてのメタデータ ソースには、次の制限が適用されます。

  • 連携サービスには独自のデータは含まれません。代わりに、連携サービスはメタデータ ソースの一つからのみメタデータを提供します。
  • 連携サービスは、別の連携サービスのメタデータ ソースにできません。

Dataproc Metastore

Dataproc Metastore をソースとして使用している場合は、次の制限が適用されます。

  • 連携サービスは、gRPC エンドポイントを介してのみ利用できます。フェデレーションで Dataproc Metastore を使用するには、gRPC エンドポイントを使用してメタストアを作成します。
  • 連携サービスは、単一リージョンまたはマルチリージョンの Dataproc Metastore サービスに接続できます。

    マルチリージョン メタストアがフェデレーション サービスとは異なるプロジェクトにある場合は、フェデレーション プロジェクトの Dataproc Metastore サービス アカウントに、マルチリージョンで構成された Dataproc Metastore インスタンスに対する metastore.services.get 権限を付与します。

BigQuery

BigQuery データセットをソースとして含むプロジェクトを使用している場合は、次の条件を満たす必要があります。

  • BigQuery データセットを含むプロジェクトにアクセスするための適切な Identity and Access Management ロールを付与します。
  • BigQuery データセットとともに、少なくとも 1 つの Dataproc Metastore サービスをソースとして追加します。

Dataplex Universal Catalog レイク

  • dataplex.lakes.get 権限を含む IAM ロールを付与します。
  • Dataplex Universal Catalog レイクとともに、少なくとも 1 つの Dataproc Metastore サービスをソースとして追加します。

ソースの順序付け

フェデレーション サービスは、優先度の順にメタデータ リクエストを処理します。このコンセプトはソース順序付けと呼ばれます。実行時に、連携サービスはリクエストを受信すると、ソースの順序を確認し、次のいずれかのアクションを完了します。

  • リクエストにデータベース名が含まれている場合。リクエストは、データベース名を含むバックエンド メタストアに転送されます。複数のメタストアに同じデータベース名が含まれている場合、リクエストはランクが最も低いメタストアに転送されます。
  • リクエストでデータベースが作成または削除された場合。リクエストは、ランクが最も低いメタストアに転送されます。
  • リクエストにデータベース名が含まれておらず、データベースの作成または削除が行われていない場合。リクエストは、ランクが最も低い Dataproc Metastore インスタンスに転送されます。データベースを指定しない Hive メタストア リクエストの例としては、set_ugicreate_database があります。
  • どのメタストアにもデータベースが含まれていない場合。OSS エンジンが、notFound エラーと同等のレスポンスを返します。

次のステップ