BigQuery メタストアの概要

BigQuery Metastore は、 Google Cloud上のデータ分析プロダクト用のフルマネージド メタストアです。複数のソースのメタデータを管理するための信頼できる唯一の情報源を提供します。BigQuery やさまざまなオープンデータ処理エンジンからアクセスできる Metastore は、データ アナリストやエンジニアにとって有用なツールです。

たとえば、Apache Spark などのオープンソース クエリエンジンで、BigQuery メタストアをカタログとして使用できます。Spark を使用して作成されたテーブルは、メタデータを同期しなくても BigQuery を使用してクエリできます。

利点

BigQuery メタストアには、データ管理と分析に次のような利点があります。

  • サーバーレス アーキテクチャ。BigQuery メタストアはサーバーレス アーキテクチャを提供するため、サーバーやクラスタの管理は不要です。これにより、運用上のオーバーヘッドを削減し、デプロイを簡素化し、需要に応じた自動スケーリングが可能になります。
  • エンジンの相互運用性。BigQuery Metastore を使用すると、BigQuery でテーブルに直接アクセスできるため、追加の構成なしで BigQuery に保存されているオープン形式のテーブルをクエリできます。たとえば、Spark でテーブルを作成し、BigQuery で直接クエリを実行できます。これにより、分析ワークフローを効率化し、複雑なデータ移動や ETL プロセスの必要性を軽減できます。
  • 統合されたユーザー エクスペリエンス。BigQuery メタストアは、BigQuery と BigQuery Studio にわたる統合ワークフローを提供します。これにより、BigQuery と BigQuery Studio で Spark を直接使用できます。次に例を示します。

    まず、BigQuery Studio ノートブックで Spark にテーブルを作成します。

    BQMS にテーブルを作成する

    次に、Google Cloud コンソールで同じ Spark テーブルをクエリできます。

    BQMS でテーブルをクエリする

サポートされている統合

BigQuery メタストアは、Google Cloud コンソール、gcloud CLI、BigQuery REST API で使用できます。

BigQuery メタストアは、次の統合をサポートしています。

BigLake Metastore との違い

Google Cloudでは、BigQuery metastore が推奨されるメタストアです。

BigQuery metastore と BigLake Metastore の主な違いは次のとおりです。

  • BigLake Metastore は、BigQuery とは異なるスタンドアロンのメタストア サービスで、Iceberg テーブルのみをサポートします。3 つの部分からなるリソースモデルが異なります。BigLake のテーブルは BigQuery から自動的に検出されません。

  • BigQuery メタストアは BigQuery カタログに基づいており、BigQuery と直接統合されています。BigQuery Metastore のテーブルは複数のオープンソース エンジンから変更可能で、同じテーブルを BigQuery からクエリできます。BigQuery を使用する場合、メタデータの信頼できる情報源は 1 つだけです。たとえば、BigQuery メタストアは Spark との直接統合をサポートしています。この統合により、よりシームレスなワークフローが実現し、メタデータの保存とジョブの実行時の冗長性が軽減されます。

制限事項

BigQuery Metastore テーブルには次の制限が適用されます。

  • BigQuery エンジンを使用して DDL ステートメントまたは DML ステートメントで BigQuery メタストア テーブルを作成または変更することはできません。BigQuery API(bq コマンドライン ツールまたはクライアント ライブラリを使用)を使用して BigQuery メタストア テーブルを変更できますが、外部エンジンと互換性のない変更が行われる可能性があります。
  • BigQuery メタストア テーブルは、名前変更オペレーションALTER TABLE ... RENAME TO Spark SQL ステートメントをサポートしていません。
  • BigQuery Metastore テーブルには、標準テーブルと同じ割り当てと上限が適用されます。
  • BigQuery Engine の BigQuery メタストア テーブルに対するクエリのパフォーマンスは、標準の BigQuery テーブルのデータに対するクエリよりも低速になる可能性があります。一般的に、BigQuery Metastore テーブルのクエリ パフォーマンスは、Cloud Storage からデータを直接読み取る処理と同等になります。
  • BigQuery メタストア テーブルを使用するクエリのドライランで、行が返されても 0 バイトの下限が報告される場合があります。この結果は、実際のクエリが完了するまで、テーブルから処理されるデータの量を特定できないためです。クエリを実行すると、このデータの処理に費用がかかります。
  • ワイルドカード テーブルのクエリで BigQuery メタストア テーブルを参照することはできません。
  • tabledata.list メソッドを使用して BigQuery メタストア テーブルからデータを取得することはできません。代わりに、クエリ結果を宛先テーブルに保存し、そのテーブルで tabledata.list メソッドを使用できます。
  • BigQuery metastore テーブルはクラスタリングをサポートしていません。
  • BigQuery Metastore テーブルは、柔軟な列名をサポートしていません。
  • BigQuery メタストア テーブルのテーブル ストレージ統計情報の表示はサポートされていません。

次のステップ