BigQuery metastore の概要
BigQuery metastore は、 Google Cloud上のデータ分析プロダクト用のフルマネージド メタストアです。これは複数のソースのメタデータを管理するための信頼できる唯一のソースとなります。このメタストアには BigQuery やさまざまなオープンデータ処理エンジンからアクセスできるため、データ アナリストやエンジニアにとっては有用なツールとなります。
たとえば、BigQuery metastore を Apache Spark などのオープンソース クエリエンジンのカタログとして使用できます。Spark を使用して作成されたテーブルは、メタデータを同期しなくても BigQuery を使用してクエリできます。
利点
BigQuery metastore には、データ管理と分析を行う上で次のような利点があります。
- サーバーレス アーキテクチャ。BigQuery metastore はサーバーレス アーキテクチャを提供するため、サーバーやクラスタの管理は不要です。これにより、運用上のオーバーヘッドを削減し、デプロイを簡素化し、需要に応じた自動スケーリングが可能になります。
- エンジンの相互運用性。BigQuery metastore を使用すると、BigQuery でテーブルに直接アクセスできるため、追加の構成なしで BigQuery に保存されているオープン形式のテーブルをクエリできます。たとえば、Spark でテーブルを作成し、BigQuery で直接クエリを実行できます。これにより、分析ワークフローを効率化し、複雑なデータ移動や ETL プロセスの必要性を軽減できます。
統合されたユーザー エクスペリエンス。BigQuery metastore は、BigQuery と BigQuery Studio を統合したワークフローを提供します。これにより、BigQuery と BigQuery Studio で Spark を直接使用できます。例:
まず、BigQuery Studio ノートブックで Spark にテーブルを作成します。
次に、Google Cloud コンソールで同じ Spark テーブルをクエリできます。
サポートされている連携
BigQuery metastore は、Google Cloud コンソール、gcloud CLI、BigQuery REST API で使用できます。
BigQuery metastore は、次のものとの連携をサポートしています。
- テーブルのフォーマット: Apache Iceberg 1.5.2 以降。
- Dataproc: バージョン 2.2 以降。
- データ処理エンジン: Spark バージョン 3.3 以降。
- プラグイン: BigQuery metastore Iceberg カタログ プラグイン。
BigLake Metastore との違い
Google Cloudでは、BigQuery metastore が推奨されています。
BigQuery metastore と BigLake Metastore の主な違いは次のとおりです。
BigLake Metastore は、BigQuery とは異なるスタンドアロンのメタストア サービスで、Iceberg テーブルのみをサポートします。3 つの部分からなるリソースモデルが異なります。BigLake のテーブルは BigQuery から自動的に検出されません。
BigQuery metastore は BigQuery カタログに基づいており、BigQuery と直接連携できます。BigQuery metastore テーブルは複数のオープンソース エンジンから変更可能で、同じテーブルを BigQuery からクエリできます。BigQuery を使用する場合、メタデータの信頼できるソースは 1 つだけです。たとえば、BigQuery metastore は Spark との直接連携をサポートしています。この連携により、ワークフローがよりシームレスになり、メタデータを保存したりジョブを実行したりする時の冗長性が軽減されます。
制限事項
BigQuery metastore テーブルには次の制限が適用されます。
- BigQuery エンジンを使用して DDL ステートメントまたは DML ステートメントで BigQuery metastore テーブルを作成または変更することはできません。BigQuery API(bq コマンドライン ツールまたはクライアント ライブラリを使用)を使用して BigQuery metastore テーブルを変更することはできますが、外部エンジンと互換性のない変更が行われる可能性があります。
- BigQuery metastore テーブルは、名前変更オペレーションや
ALTER TABLE ... RENAME TO
Spark SQL ステートメントをサポートしていません。 - BigQuery metastore テーブルには、標準的なテーブルと同じ割り当てと上限が適用されます。
- BigQuery エンジンの BigQuery metastore テーブルに対するクエリのパフォーマンスは、標準的な BigQuery テーブルのデータに対するクエリよりも低速になる可能性があります。一般的に、BigQuery metastore テーブルのクエリ パフォーマンスは、Cloud Storage からデータを直接読み取る処理と同等になります。
- BigQuery metastore のテーブルを使用するクエリのドライランで、行が返されても、下限 0 バイトと報告される場合があります。これは、実際のクエリが完了するまで、テーブルから処理されるデータの量を特定できないためです。連携クエリを実行すると、このデータの処理に費用がかかります。
- ワイルドカード テーブルのクエリで BigQuery metastore テーブルを参照することはできません。
tabledata.list
メソッドを使用して BigQuery metastore テーブルからデータを取得することはできません。代わりに、クエリ結果を宛先テーブルに保存し、そのテーブルでtabledata.list
メソッドを使用できます。- BigQuery metastore テーブルはクラスタリングをサポートしていません。
- BigQuery metastore テーブルは、柔軟な列名をサポートしていません。
- BigQuery metastore テーブルのテーブル ストレージ統計情報の表示はサポートされていません。
次のステップ
- Dataproc Metastore データを BigQuery metastore に移行する
- Dataproc で BigQuery metastore を使用する
- Dataproc Serverless で BigQuery metastore を使用する