BigQuery 批次來源

本頁提供相關指引,說明如何在 Cloud Data Fusion 中設定 BigQuery 批次來源外掛程式。

BigQuery 來源外掛程式可讓您連結及載入 BigQuery 資料表的資料。BigQuery 資料表的資料會匯出至 Cloud Storage 的臨時位置,然後從該處讀取至管道。

事前準備

Cloud Data Fusion 通常有兩個服務帳戶:

使用 BigQuery 批次來源外掛程式前,請將下列角色或權限授予每個服務帳戶。

Cloud Data Fusion API 服務代理

這個服務帳戶已具備所有必要權限,因此不需要新增其他權限。以供參考,這項服務具備下列權限:

  • bigquery.datasets.get
  • bigquery.tables.create
  • bigquery.tables.get
  • bigquery.tables.updateData
  • bigquery.tables.update
  • bigquery.tables.export

如果您除了預設設計階段服務帳戶外,還使用命名空間服務帳戶,請將上述清單中的權限新增至該帳戶。

Compute Engine 服務帳戶

在 Google Cloud 專案中,將下列 IAM 角色或權限授予 Compute Engine 服務帳戶:

  • BigQuery 工作使用者 (roles/bigquery.jobUser)。這個預先定義的角色包含必要的 bigquery.jobs.create 權限。
  • BigQuery 資料編輯者 (roles/bigquery.dataEditor)。這個預先定義的角色包含下列必要權限:

    • bigquery.datasets.get
    • bigquery.tables.create
    • bigquery.tables.get
    • bigquery.tables.updateData
    • bigquery.tables.update
    • bigquery.tables.export

視使用情況而定,您也可以在 BigQuery 資料集或資料表上指派這些角色和權限。

  • Storage 舊版 bucket 寫入者 (roles/storage.legacyBucketWriter)。 這個預先定義的角色包含下列必要權限:

    • storage.buckets.get
    • storage.objects.get
    • storage.objects.list

視您的用途而定,您也可以在 Cloud Storage bucket 上指派這個角色和這些權限。

設定外掛程式

  1. 前往 Cloud Data Fusion 網頁介面,然後點選「Studio」
  2. 確認已選取「Data Pipeline - Batch」(資料管道 - 批次),而非「Realtime」(即時)
  3. 在「來源」選單中,按一下「BigQuery」。BigQuery 節點會顯示在管道中。
  4. 如要設定來源,請前往 BigQuery 節點,然後按一下「屬性」
  5. 輸入下列屬性。如需完整清單,請參閱「屬性」。

    1. 輸入 BigQuery 節點的「標籤」,例如 BigQuery tables
    2. 輸入連線詳細資料。您可以設定新的單次連線,或是現有的可重複使用連線。

      新連結

      如要新增與 BigQuery 的一次性連線,請按照下列步驟操作:

      1. 保留「專案 ID」欄位中的自動偵測值。
      2. 如果 BigQuery 資料集位於其他專案,請在「Dataset Project ID」(資料集專案 ID) 欄位中輸入 ID。
      3. 在「Service account type」(服務帳戶類型) 欄位中,選擇下列其中一項,並在下一個欄位中輸入內容:

        • 檔案路徑
        • JSON

      可重複使用的連線

      如要重複使用現有連線,請按照下列步驟操作:

      1. 開啟「使用連線」
      2. 按一下「Browse connections」(瀏覽連線)
      3. 按一下連線名稱,例如「BigQuery Default」

      4. 選用:如果沒有連線,且您想建立新的可重複使用連線,請按一下「新增連線」,然後參閱本頁面「新連線」分頁中的步驟。

    3. 在「Reference name」(參照名稱) 欄位中,輸入要用於沿襲的名稱。

    4. 選用:如果資料集已在執行個體中提供,請按一下 瀏覽並選取要讀取的資料。

    5. 在「Dataset」(資料集) 欄位中,輸入包含該資料表的資料集名稱。

    6. 在「Table」(資料表) 欄位中,輸入資料表名稱。

    7. 如要測試連線,請按一下「取得結構定義」

    8. 選用:在「分割區開始日期」欄位中,輸入包含在內的開始日期字串,例如 2021-01-11

    9. 選用:在「分割區結束日期」欄位中,輸入含括的結束日期字串,例如 2024-01-11

    10. 選用:在「篩選條件」欄位中,輸入 BigQuery WHERE 子句

    11. 選用:在「Temporary bucket name」(暫時值區名稱) 欄位中,輸入 Cloud Storage bucket 的名稱。

    12. 選用:在「Encryption Key Name」(加密金鑰名稱) 欄位中,輸入 Cloud Key Management Service (Cloud KMS) 加密金鑰名稱。詳情請參閱「取得金鑰的資源名稱」。

    13. 選用:開啟「啟用查詢檢視畫面」。啟用後,請按照下列步驟操作:

      • 在「Temporary table creation project」(臨時資料表建立專案) 欄位中,輸入要建立臨時資料表的專案名稱。
      • 在「Temporary table creation dataset」(臨時資料表建立資料集) 欄位中,輸入要建立臨時資料表的資料集名稱。
    14. 選用:按一下「驗證」,並修正發現的任何錯誤。

    15. 點按 「Close」(關閉)。系統會儲存屬性,您可以在 Cloud Data Fusion 網頁介面中繼續建構資料管道。

屬性

屬性 含巨集功能 必要屬性 說明
標籤 資料管道中的節點名稱。
使用連線 瀏覽可重複使用的來源連線。如要進一步瞭解如何新增、匯入及編輯瀏覽連線時顯示的連線,請參閱「管理連線」。
連結 如果開啟「使用連線」,這個欄位會顯示您選取的重複使用連線名稱。
專案 ID 僅在關閉「使用連線」時使用。這是專案的全域專屬 ID,BigQuery 工作會在該專案中執行。
預設值為 auto-detect
資料集專案 ID 只有在關閉「使用連線」時才會使用。如果資料集所在的專案與 BigQuery 工作執行的專案不同,這個值就是 BigQuery 資料集所在專案的全域不重複 ID。如未提供任何值,欄位預設為「專案 ID」值。您必須將 BigQuery 資料檢視者角色授予指定的服務帳戶,才能讀取專案中的 BigQuery 資料。
服務帳戶類型 選取下列其中一個選項:
  • 檔案路徑:服務帳戶所在的路徑。
  • JSON:服務帳戶的 JSON 內容。
服務帳戶檔案路徑 只有當服務帳戶類型值為「檔案路徑」時,才會使用這個值。用於授權的服務帳戶金鑰在本機檔案系統中的路徑。如果工作是在 Managed Service for Apache Spark 叢集上執行, 請將值設為自動偵測。如果工作在其他類型的叢集上執行,則叢集中的每個節點都必須有該檔案。
預設值為 auto-detect
服務帳戶 JSON 僅在「服務帳戶類型」值為 JSON 時使用。 服務帳戶的 JSON 檔案內容。
參照名稱 這個名稱可供其他服務 (例如沿襲和註解中繼資料) 專屬識別這個來源。
資料集 資料表所屬的資料集。資料集包含在特定專案中,資料集是頂層容器,可用於整理及控管資料表和檢視表的存取權。
資料表 要讀取的資料表。資料表含有以資料列分組的個人記錄,每筆記錄是由資料欄所組成 (也稱為「欄位」)。每份資料表都按包含資料欄名稱、資料類型和其他資訊的結構定義定義。
分區開始日期 分區開始日期 (含),指定為 yyyy-mm-dd。如未提供任何值,系統會讀取分區結束日期之前的所有分區。
分區結束日期 分區結束日期 (不含),指定為 yyyy-mm-dd。如未提供任何值,系統會讀取分區開始日期之後的所有分區。
篩選器 SQL 查詢,可根據指定條件進行篩選。舉例來說,這項查詢會傳回 Roster 資料表中的所有列,其中 SchoolID 欄的值為 SchoolID > 52
SELECT * FROM Roster WHERE SchoolID > 52;。這與 BigQuery 中的 WHERE 子句相同。
臨時 bucket 名稱 用於暫時儲存資料的 Cloud Storage bucket。如果不存在,系統會自動建立。系統會在讀取臨時資料後刪除。如未提供名稱,系統會建立專屬 bucket,並在執行完成後刪除。
加密金鑰名稱 這個金鑰會加密外掛程式建立的所有值區中寫入的資料。如果 bucket 存在,系統會忽略這個值。詳情請參閱「CMEK」。
啟用查詢檢視畫面 是否允許 BigQuery 邏輯和具體化檢視表。由於 BigQuery 檢視表預設為停用,查詢時可能會產生效能負擔。
預設值為「否」。
臨時資料表建立專案 只有在啟用「允許查詢檢視區塊」時,系統才會使用這個值。應建立臨時資料表的專案名稱。預設為資料表所在的專案。
建立暫時資料表的資料集 指定專案中的資料集,用於建立臨時資料表。預設為資料表所在的資料集。
輸出內容結構定義 要讀取的資料表結構定義。按一下「取得架構」即可擷取。

資料類型對應關係

下表列出 BigQuery 資料類型和對應的 CDAP 類型。

BigQuery 資料類型 CDAP 結構定義資料類型
BOOL boolean
BYTES bytes
DATE date
DATETIME datetime, string
FLOAT64 double
GEO unsupported
INT64 long
NUMERIC decimal
BIGNUMERIC decimal
REPEATED array
STRING stringdatetime (ISO 8601 格式)
STRUCT record
TIME time (微秒)
TIMESTAMP timestamp (微秒)
JSON unsupported

後續步驟