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 にテーブルを作成します。
次に、Google Cloud コンソールで同じ Spark テーブルをクエリできます。
サポートされている統合
BigQuery メタストアは、Google Cloud コンソール、gcloud CLI、BigQuery REST API で使用できます。
BigQuery メタストアは、次の統合をサポートしています。
- 表形式。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 メタストアは 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 メタストア テーブルのテーブル ストレージ統計情報の表示はサポートされていません。
次のステップ
- Dataproc Metastore データを BigQuery Metastore に移行する
- Dataproc で BigQuery metastore を使用する
- Dataproc Serverless で BigQuery metastore を使用する