查詢資料表

查詢資料表時,系統會使用 Lakehouse 執行階段目錄管理的中繼資料,從底層 Cloud Storage 檔案讀取資料。

您可以從 Spark 和 Trino 等開放原始碼引擎執行選取查詢,也可以使用四部分資料表命名,直接從 BigQuery 執行查詢。

事前準備

請參閱表格總覽,瞭解不同類型的表格,以及使用這些表格的影響。

  1. 確認專案已啟用計費功能 Google Cloud

  2. 啟用 BigLake API。

    啟用 API 時所需的角色

    如要啟用 API,您需要服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    啟用 API

必要的角色

如要取得查詢資料表所需的權限,請要求管理員在專案和儲存空間 bucket 中授予您下列 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 目錄資料表,請在查詢中使用四部分資料表名稱,格式如下: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:Google Cloud 擁有 Lakehouse 執行階段目錄中目錄的專案。系統會向控制台中選取的 Google Cloud 專案 Google Cloud 收取查詢費用。

  • CATALOG_ID:建立目錄時指定的 Lakehouse 執行階段目錄 ID。這個 ID 會在 BigQuery 查詢中做為目錄名稱。

    這個 ID 也是 Cloud Storage bucket 的名稱。

    舉例來說,假設您建立的 bucket 是用來儲存目錄,並將其命名為 iceberg-bucket,則目錄名稱和 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:資料表名稱。

後續步驟