Spark から Metastore テーブルを作成してクエリを実行する
Spark などのオープンソース エンジンを使用して、BigQuery ノートブックで Apache Spark Iceberg テーブルをクエリできます。これらのテーブルは、BigQuery メタストアにメタデータが保存された通常の Iceberg テーブルです。同じテーブルに対して、BigQuery と Spark の両方からクエリを実行できます。
始める前に
- BigQuery ノートブックで Spark を使用しながら Iceberg テーブルを作成します。テーブル スキーマは BigQuery メタストアに保存されます。たとえば、 BigQuery ノートブック、Dataproc、 Dataproc Serverless、またはストアド プロシージャを使用してテーブルを作成できます。
考慮事項
- 現在、Iceberg テーブルのみがサポートされています。
クエリを実行するときは、名前空間とデータベース名を BigQuery データセット名としてマッピングしてください。次の表に、使用できるキーマッピングを示します。
オープンソース BigQuery 名前空間 BigQuery データセット データベース BigQuery データセット テーブル(パーティション分割ありまたはパーティション分割なし) BigQuery テーブル
テーブルを表示してクエリを実行する
Spark で BigQuery リソースを作成したら、Google Cloud コンソールで表示してクエリできます。次の例は、インタラクティブな Spark を使用してメタストア テーブルにクエリを実行する一般的な手順を示しています。
カスタムの Iceberg カタログを使用します。
USE `
CATALOG_NAME `;次のように置き換えます。
CATALOG_NAME
: SQL ジョブで使用している Spark カタログの名前。
Namespace を作成します。
CREATE NAMESPACE IF NOT EXISTS
NAMESPACE_NAME ;次のように置き換えます。
NAMESPACE_NAME
: Spark テーブルを参照する Namespace 名。
作成した Namespace を使用します。
USE
NAMESPACE_NAME ;Iceberg テーブルを作成します。
CREATE TABLE
TABLE_NAME (id int, data string) USING ICEBERG;次のように置き換えます。
TABLE_NAME
: Iceberg テーブルの名前。
表の行を挿入します。
INSERT INTO
TABLE_NAME VALUES (1, "first row");Google Cloud コンソールを使用して、次のいずれかを行います。
SELECT * FROM `
TABLE_NAME `;
次のステップ
- BigQuery metastore の追加機能を設定します。