BigQuery 來源外掛程式可讓您連結及載入 BigQuery 資料表的資料。BigQuery 資料表的資料會匯出至 Cloud Storage 的臨時位置,然後從該處讀取至管道。
事前準備
Cloud Data Fusion 通常有兩個服務帳戶:
- 設計階段服務帳戶: Cloud Data Fusion API 服務代理人
- 執行階段服務帳戶: Compute Engine 服務帳戶
使用 BigQuery 批次來源外掛程式前,請將下列角色或權限授予每個服務帳戶。
Cloud Data Fusion API 服務代理
這個服務帳戶已具備所有必要權限,因此不需要新增其他權限。以供參考,這項服務具備下列權限:
bigquery.datasets.getbigquery.tables.createbigquery.tables.getbigquery.tables.updateDatabigquery.tables.updatebigquery.tables.export
如果您除了預設設計階段服務帳戶外,還使用命名空間服務帳戶,請將上述清單中的權限新增至該帳戶。
Compute Engine 服務帳戶
在 Google Cloud 專案中,將下列 IAM 角色或權限授予 Compute Engine 服務帳戶:
- BigQuery 工作使用者 (
roles/bigquery.jobUser)。這個預先定義的角色包含必要的bigquery.jobs.create權限。 BigQuery 資料編輯者 (
roles/bigquery.dataEditor)。這個預先定義的角色包含下列必要權限:bigquery.datasets.getbigquery.tables.createbigquery.tables.getbigquery.tables.updateDatabigquery.tables.updatebigquery.tables.export
視使用情況而定,您也可以在 BigQuery 資料集或資料表上指派這些角色和權限。
Storage 舊版 bucket 寫入者 (
roles/storage.legacyBucketWriter)。 這個預先定義的角色包含下列必要權限:storage.buckets.getstorage.objects.getstorage.objects.list
視您的用途而定,您也可以在 Cloud Storage bucket 上指派這個角色和這些權限。
設定外掛程式
- 前往 Cloud Data Fusion 網頁介面,然後點選「Studio」。
- 確認已選取「Data Pipeline - Batch」(資料管道 - 批次),而非「Realtime」(即時)。
- 在「來源」選單中,按一下「BigQuery」。BigQuery 節點會顯示在管道中。
- 如要設定來源,請前往 BigQuery 節點,然後按一下「屬性」。
輸入下列屬性。如需完整清單,請參閱「屬性」。
- 輸入 BigQuery 節點的「標籤」,例如
BigQuery tables。 輸入連線詳細資料。您可以設定新的單次連線,或是現有的可重複使用連線。
新連結
如要新增與 BigQuery 的一次性連線,請按照下列步驟操作:
- 保留「專案 ID」欄位中的自動偵測值。
- 如果 BigQuery 資料集位於其他專案,請在「Dataset Project ID」(資料集專案 ID) 欄位中輸入 ID。
在「Service account type」(服務帳戶類型) 欄位中,選擇下列其中一項,並在下一個欄位中輸入內容:
- 檔案路徑
- JSON
可重複使用的連線
如要重複使用現有連線,請按照下列步驟操作:
在「Reference name」(參照名稱) 欄位中,輸入要用於沿襲的名稱。
選用:如果資料集已在執行個體中提供,請按一下 瀏覽並選取要讀取的資料。
在「Dataset」(資料集) 欄位中,輸入包含該資料表的資料集名稱。
在「Table」(資料表) 欄位中,輸入資料表名稱。
如要測試連線,請按一下「取得結構定義」。
選用:在「分割區開始日期」欄位中,輸入包含在內的開始日期字串,例如
2021-01-11。選用:在「分割區結束日期」欄位中,輸入含括的結束日期字串,例如
2024-01-11。選用:在「篩選條件」欄位中,輸入 BigQuery
WHERE子句。選用:在「Temporary bucket name」(暫時值區名稱) 欄位中,輸入 Cloud Storage bucket 的名稱。
選用:在「Encryption Key Name」(加密金鑰名稱) 欄位中,輸入 Cloud Key Management Service (Cloud KMS) 加密金鑰名稱。詳情請參閱「取得金鑰的資源名稱」。
選用:開啟「啟用查詢檢視畫面」。啟用後,請按照下列步驟操作:
- 在「Temporary table creation project」(臨時資料表建立專案) 欄位中,輸入要建立臨時資料表的專案名稱。
- 在「Temporary table creation dataset」(臨時資料表建立資料集) 欄位中,輸入要建立臨時資料表的資料集名稱。
選用:按一下「驗證」,並修正發現的任何錯誤。
點按 「Close」(關閉)。系統會儲存屬性,您可以在 Cloud Data Fusion 網頁介面中繼續建構資料管道。
- 輸入 BigQuery 節點的「標籤」,例如
屬性
| 屬性 | 含巨集功能 | 必要屬性 | 說明 |
|---|---|---|---|
| 標籤 | 否 | 是 | 資料管道中的節點名稱。 |
| 使用連線 | 否 | 否 | 瀏覽可重複使用的來源連線。如要進一步瞭解如何新增、匯入及編輯瀏覽連線時顯示的連線,請參閱「管理連線」。 |
| 連結 | 是 | 是 | 如果開啟「使用連線」,這個欄位會顯示您選取的重複使用連線名稱。 |
| 專案 ID | 是 | 否 | 僅在關閉「使用連線」時使用。這是專案的全域專屬 ID,BigQuery 工作會在該專案中執行。 預設值為 auto-detect。 |
| 資料集專案 ID | 是 | 否 | 只有在關閉「使用連線」時才會使用。如果資料集所在的專案與 BigQuery 工作執行的專案不同,這個值就是 BigQuery 資料集所在專案的全域不重複 ID。如未提供任何值,欄位預設為「專案 ID」值。您必須將 BigQuery 資料檢視者角色授予指定的服務帳戶,才能讀取專案中的 BigQuery 資料。 |
| 服務帳戶類型 | 是 | 否 | 選取下列其中一個選項:
|
| 服務帳戶檔案路徑 | 是 | 否 | 只有當服務帳戶類型值為「檔案路徑」時,才會使用這個值。用於授權的服務帳戶金鑰在本機檔案系統中的路徑。如果工作是在 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 |
string、datetime (ISO 8601 格式) |
STRUCT |
record |
TIME |
time (微秒) |
TIMESTAMP |
timestamp (微秒) |
JSON |
unsupported |
後續步驟
- 進一步瞭解 Cloud Data Fusion 中的外掛程式。