查詢資料表時,系統會使用 Lakehouse 執行階段目錄管理的中繼資料,從底層 Cloud Storage 檔案讀取資料。
您可以從 Spark 和 Trino 等開放原始碼引擎執行選取查詢,也可以使用四部分資料表命名,直接從 BigQuery 執行查詢。
事前準備
請參閱表格總覽,瞭解不同類型的表格,以及使用這些表格的影響。
-
啟用 BigLake API。
啟用 API 時所需的角色
如要啟用 API,您需要服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。
必要的角色
如要取得查詢資料表所需的權限,請要求管理員在專案和儲存空間 bucket 中授予您下列 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 目錄資料表,請在查詢中使用四部分資料表名稱,格式如下: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:資料表名稱。
後續步驟
- 瞭解如何變更表格。