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 メタストア機能を設定します。