BigQuery 來源外掛程式可讓您連結 BigQuery 資料表並載入資料。系統會將 BigQuery 資料表中的資料匯出至 Cloud Storage 中的臨時位置,然後從該位置讀取資料至管道。
事前準備
Cloud Data Fusion 通常有兩個服務帳戶:
- 設計階段服務帳戶:Cloud Data Fusion API 服務代理人
- 執行時間服務帳戶:Compute Engine 服務帳戶
使用 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 舊版值區寫入者 (
roles/storage.legacyBucketWriter
)。這個預先定義的角色包含下列必要權限:storage.buckets.get
storage.objects.get
storage.objects.list
視用途而定,您也可以在 Cloud Storage 值區中指派這個角色和這些權限。
設定外掛程式
- 前往 Cloud Data Fusion 網頁介面,然後按一下「Studio」。
- 確認已選取「資料管道 - 批次」 (而非「即時」)。
- 在「來源」選單中,按一下「BigQuery」。BigQuery 節點會顯示在管道中。
- 如要設定來源,請前往 BigQuery 節點,然後按一下「Properties」。
輸入下列屬性。如需完整清單,請參閱「屬性」。
- 輸入 BigQuery 節點的標籤,例如
BigQuery tables
。 輸入連線詳細資料。您可以設定新的一次性連線,或現有的可重複使用的連線。
新連結
如要新增一次性 BigQuery 連線,請按照下列步驟操作:
- 將「Project ID」欄位的值保留為「自動偵測」。
- 如果 BigQuery 資料集位於其他專案中,請在「Dataset Project ID」欄位中輸入 ID。
在「Service account type」(服務帳戶類型) 欄位中,選擇下列其中一項,然後在下一個欄位中輸入內容:
- 檔案路徑
- JSON
可重複使用的連線
如要重複使用現有的連線,請按照下列步驟操作:
- 開啟「Use connection」。
- 按一下「瀏覽連線」。
按一下連線名稱,例如「BigQuery 預設」。
選用步驟:如果沒有連線,但您想建立可重複使用的新連線,請按一下「新增連線」,然後參閱本頁「新連線」分頁中的步驟。
在「Reference name」欄位中,輸入要用於顯示系統樹狀結構的名稱。
選用:如果資料集已在執行個體中提供,請按一下「瀏覽」,然後選取要讀取的資料。
在「Dataset」欄位中,輸入包含資料表的資料集名稱。
在「Table」(資料表) 欄位中輸入資料表名稱。
如要測試連線,請按一下「取得架構」。
選用:在「區隔開始日期」欄位中,輸入包含開始日期的字串,例如
2021-01-11
。選用步驟:在「Partition end date」欄位中輸入包含結束日期的字串,例如
2024-01-11
。選用:在「Filter」欄位中輸入 BigQuery
WHERE
子句。選用:在「臨時值區名稱」欄位中輸入 Cloud Storage 值區的名稱。
選用:在「Encryption Key Name」欄位中,輸入 Cloud Key Management Service (Cloud KMS) 加密金鑰名稱。詳情請參閱「取得鍵的資源名稱」。
選用:開啟「啟用查詢檢視畫面」。如要啟用這些功能,請按照下列步驟操作:
- 在「Temporary table creation project」(臨時資料表建立專案) 欄位中,輸入要建立臨時資料表的專案名稱。
- 在「臨時資料表建立資料集」欄位中,輸入要建立臨時資料表的資料集名稱。
選用步驟:按一下「驗證」,然後修正所有錯誤。
按一下
「關閉」。屬性會儲存,您可以繼續在 Cloud Data Fusion 網頁介面中建構資料管道。
- 輸入 BigQuery 節點的標籤,例如
屬性
屬性 | 已啟用巨集 | 必要屬性 | 說明 |
---|---|---|---|
標籤 | 否 | 是 | 資料管道中的節點名稱。 |
使用連線 | 否 | 否 | 瀏覽可重複使用的來源連線。如要進一步瞭解如何新增、匯入及編輯瀏覽連線時顯示的連線,請參閱「管理連線」。 |
連線 | 是 | 是 | 如果已開啟「使用連線」,您選取的可重複使用連線名稱就會顯示在這個欄位中。 |
專案 ID | 是 | 否 | 僅在「Use connection」關閉時使用。這是 BigQuery 工作執行專案的全域專屬 ID。 預設值為 auto-detect 。 |
資料集專案 ID | 是 | 否 | 僅在「Use connection」關閉時使用。如果資料集位於 BigQuery 作業執行的專案以外,這個值就是 BigQuery 資料集專案的全球唯一 ID。如果未提供任何值,欄位會預設為 Project ID 值。您必須將「BigQuery 資料檢視者」角色授予指定的服務帳戶,才能讀取專案中的 BigQuery 資料。 |
服務帳戶類型 | 是 | 否 | 選取下列其中一個選項:
|
服務帳戶檔案路徑 | 是 | 否 | 只有在服務帳戶類型值為「檔案路徑」時才會使用。用於授權的服務帳戶金鑰在本機檔案系統中的路徑。如果工作在 Dataproc 叢集中執行,請將值設為自動偵測。如果工作在其他類型的叢集中執行,則該檔案必須位於叢集中的每個節點。 預設為 auto-detect 。 |
服務帳戶 JSON | 是 | 否 | 只有在服務帳戶類型值為 JSON 時才會使用。服務帳戶的 JSON 檔案內容。 |
參照名稱 | 否 | 是 | 這個名稱可在其他服務 (例如沿革和註解中繼資料) 中,識別出這個來源。 |
資料集 | 是 | 是 | 資料表所屬的資料集。資料集包含在特定專案中。資料集是用來整理及控管資料表和檢視表存取權的頂層容器。 |
Table | 是 | 是 | 要讀取的資料表。資料表含有以資料列分組的個別記錄,每筆記錄是由資料欄 (也稱為「欄位」) 組成。每份資料表都按包含資料欄名稱、資料類型和其他資訊的結構定義定義。 |
分區開始日期 | 是 | 否 | 包含分區開始日期,指定為 yyyy-mm-dd 。如果未提供任何值,系統會讀取到分區結束日期為止的所有分區。 |
分區結束日期 | 是 | 否 | 不含分區結束日期,指定為 yyyy-mm-dd 。如果未提供任何值,系統會讀取從分區開始日期開始的所有分區。 |
篩選 | 是 | 否 | 篩選指定條件的 SQL 查詢。例如,這項查詢會傳回 Roster 資料表中 SchoolID 欄值為 SchoolID > 52 :SELECT * FROM Roster WHERE SchoolID > 52; 的所有資料列。這與 BigQuery 中的 WHERE 子句相同。 |
臨時值區名稱 | 是 | 否 | 用於暫時性資料儲存的 Cloud Storage 值區。如果不存在,系統會自動建立。系統會在讀取暫存資料後刪除。如果未提供名稱,系統會建立一個專屬值區,並在執行作業結束後刪除。 |
加密金鑰名稱 | 是 | 否 | 用於將資料寫入外掛程式建立的任何值區的金鑰。如果已存在桶,系統會忽略這個值。詳情請參閱「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 中的外掛程式。