テーブルにクエリを実行する

テーブルのクエリでは、Lakehouse ランタイム カタログで管理されるメタデータを使用して、基盤となる Cloud Storage ファイルからデータが読み取られます。

Spark や Trino などのオープンソース エンジンから、または 4 部構成のテーブル名を使用して BigQuery から直接、SELECT クエリを実行できます。

始める前に

さまざまなタイプのテーブルと、それらを使用した場合の影響については、テーブルの概要をご覧ください。

  1. Google Cloud プロジェクトに対して課金が有効になっていることを確認します

  2. BigLake API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。

    API の有効化

必要なロール

テーブルに対してクエリを実行するために必要な権限を取得するには、プロジェクトとストレージ バケットに対する次の IAM ロールを付与するよう管理者に依頼してください。

  • 認証情報ベンディング モードでテーブルデータを読み取る: BigLake 閲覧者(roles/biglake.viewer)- プロジェクト
  • 認証情報ベンディング モード以外でテーブルデータを読み取る:
    • BigLake 閲覧者(roles/biglake.viewer)- プロジェクト
    • Storage オブジェクト閲覧者(roles/storage.objectViewer) - Cloud Storage バケット

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

テーブルに対してクエリを実行する

テーブルからすべてのデータを選択します。

Spark

spark.sql("SELECT * FROM TABLE_NAME;").show()

Trino

SELECT * FROM TABLE_NAME;

BigQuery

BigQuery から Lakehouse Iceberg REST Catalog テーブルにクエリを実行するには、クエリで 4 部構成のテーブル名(PROJECT_NAME.CATALOG_ID.NAMESPACE_OR_SCHEMA_NAME.TABLE_NAME)を使用します。

SELECT * FROM `PROJECT_NAME.BIGLAKE_CATALOG_ID.NAMESPACE_OR_SCHEMA_NAME.TABLE_NAME`;

次の値を置き換えます。

  • PROJECT_NAME: Lakehouse ランタイム カタログ内のカタログを所有するGoogle Cloud プロジェクト。 Google Cloud コンソールで選択した Google Cloud プロジェクトに、クエリの料金が課金されます。

  • CATALOG_ID: カタログの作成時に指定された Lakehouse ランタイム カタログの ID。この識別子は、BigQuery クエリでカタログ名として使用されます。

    この識別子は、Cloud Storage バケットの名前でもあります。

    たとえば、カタログを保存するためにバケットを作成し、そのバケットに iceberg-bucket という名前を付けた場合、カタログ名とバケット名の両方が iceberg-bucket になります。これは、後で BigQuery でカタログをクエリするときに P.C.N.T 構文を使用して使用されます。例: my-project.biglake_catalog_id.quickstart_namespace.quickstart_table

  • NAMESPACE_OR_SCHEMA_NAME: Spark を使用している場合はテーブル名前空間、Trino を使用している場合はテーブル スキーマ名。

  • TABLE_NAME: テーブルの名前。

次のステップ