テーブルのクエリでは、Lakehouse ランタイム カタログで管理されるメタデータを使用して、基盤となる Cloud Storage ファイルからデータが読み取られます。
Spark や Trino などのオープンソース エンジンから、または 4 部構成のテーブル名を使用して BigQuery から直接、SELECT クエリを実行できます。
始める前に
さまざまなタイプのテーブルと、それらを使用した場合の影響については、テーブルの概要をご覧ください。
-
BigLake API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。
必要なロール
テーブルに対してクエリを実行するために必要な権限を取得するには、プロジェクトとストレージ バケットに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
認証情報ベンディング モードでテーブルデータを読み取る: BigLake 閲覧者(
roles/biglake.viewer)- プロジェクト -
認証情報ベンディング モード以外でテーブルデータを読み取る:
- BigLake 閲覧者(
roles/biglake.viewer)- プロジェクト - Storage オブジェクト閲覧者(
roles/storage.objectViewer) - Cloud Storage バケット
- BigLake 閲覧者(
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
テーブルに対してクエリを実行する
テーブルからすべてのデータを選択します。
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: テーブルの名前。
次のステップ
- テーブルを変更する方法を学習する。