查詢 Blob Storage 資料

本文件說明如何查詢儲存在 Azure Blob 儲存體 BigLake 資料表中的資料。

事前準備

確認您有 Blob Storage BigLake 資料表

必要的角色

如要查詢 Blob Storage BigLake 資料表,請確認 BigQuery API 的呼叫端具有下列角色:

  • BigQuery Connection 使用者 (roles/bigquery.connectionUser)
  • BigQuery 資料檢視器 (roles/bigquery.dataViewer)
  • BigQuery 使用者 (roles/bigquery.user)

呼叫端可以是您的帳戶或 Blob 儲存體連線服務帳戶。視您的權限而定,您可以將這些角色授予自己,或請管理員授予這些角色。如要進一步瞭解如何授予角色,請參閱「查看可針對資源授予的角色」。

如要查看查詢 Blob 儲存體 BigLake 資料表所需的確切權限,請展開「Required permissions」部分:

所需權限

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

查詢 Blob Storage BigLake 資料表

建立 Blob Storage BigLake 資料表後,您可以使用 GoogleSQL 語法查詢資料表,就像查詢標準 BigQuery 資料表一樣。

快取的查詢結果會儲存在 BigQuery 暫存資料表中。如要查詢臨時 BigLake 資料表,請參閱「查詢臨時 BigLake 資料表」。如要進一步瞭解 BigQuery Omni 的限制和配額,請參閱「限制」和「配額」相關說明。

在 BigQuery Omni 區域中建立保留項目時,請使用 Enterprise 版。如要瞭解如何使用版本建立預留項目,請參閱「建立預留項目」。

針對 Blob Storage BigLake 資料表執行查詢:

  1. 前往 Google Cloud 控制台的「BigQuery」頁面。

    前往 BigQuery

  2. 在查詢編輯器中輸入以下陳述式:

    SELECT * FROM DATASET_NAME.TABLE_NAME;

    更改下列內容:

    • DATASET_NAME:您建立的資料集名稱
    • TABLE_NAME:您建立的 BigLake 資料表名稱

    • 按一下 「Run」

如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」一文。

查詢臨時資料表

BigQuery 會建立臨時資料表來儲存查詢結果。如要從臨時資料表擷取查詢結果,您可以使用 Google Cloud 控制台或 BigQuery API

選取下列選項之一:

主控台

當您查詢參照外部雲端資料的 BigLake 資料表時,可以查看 Google Cloud 主控台顯示的查詢結果。

API

如要使用 API 查詢 BigLake 資料表,請按照下列步驟操作:

  1. 建立 Job 物件
  2. 呼叫 jobs.insert 方法可非同步執行查詢,而呼叫 jobs.query 方法則可同步執行查詢,並傳入 Job 物件。
  3. 透過傳遞指定的工作參考資料,使用 jobs.getQueryResults 讀取資料列,並透過傳遞查詢結果的指定資料表參考資料,使用 tabledata.list 方法。

查詢 _FILE_NAME 虛擬資料欄

以外部資料來源為基礎的資料表可提供名為 _FILE_NAME 的虛擬資料欄。這個資料欄含有該列所屬檔案的完整路徑。此資料欄僅適用於參照儲存在 Cloud StorageGoogle 雲端硬碟Amazon S3Azure Blob 儲存體中的外部資料的資料表。

系統會保留 _FILE_NAME 資料欄名稱,這表示您無法在任何資料表中使用該名稱建立資料欄。如要選取 _FILE_NAME 的值,您必須使用別名。下方範例查詢示範如何透過指派別名 fn 給虛擬資料欄的方式來選取 _FILE_NAME

  bq query \
  --project_id=PROJECT_ID \
  --use_legacy_sql=false \
  'SELECT
     name,
     _FILE_NAME AS fn
   FROM
     `DATASET.TABLE_NAME`
   WHERE
     name contains "Alex"' 

更改下列內容:

  • PROJECT_ID 是有效的專案 ID (如果您使用 Cloud Shell,或是在 Google Cloud CLI 中設定預設專案,則此為選用標記)
  • DATASET 是儲存永久外部資料表的資料集名稱
  • TABLE_NAME 是永久外部資料表的名稱

如果查詢在 _FILE_NAME 虛擬欄上設有篩選述詞,BigQuery 會嘗試略過讀取不符合篩選條件的檔案。使用 _FILE_NAME 虛擬資料欄建構查詢述詞時,適用於 使用虛擬資料欄查詢擷取時間分區資料表 的類似建議。

後續步驟