受管理 I/O 支援 BigQuery 的下列功能:
- 建立動態資料表
- 動態目的地
- 讀取資料時,連接器會使用 BigQuery Storage Read API。
寫入時,連接器會使用下列 BigQuery 方法:
- 如果來源是無界限,且 Dataflow 使用串流精確一次處理,連接器會使用BigQuery Storage Write API 搭配精確一次傳送語意,將資料寫入 BigQuery。
- 如果來源是無界限,且 Dataflow 使用串流至少一次處理,連接器會使用BigQuery Storage Write API 執行寫入 BigQuery 作業,並採用至少一次傳送語意。
- 如果來源有界限,連接器會使用 BigQuery 檔案載入。
需求條件
下列 SDK 支援 BigQuery 的代管 I/O:
- Java 適用的 Apache Beam SDK 2.61.0 以上版本
- Python 適用的 Apache Beam SDK 2.61.0 以上版本
設定
BigQuery 的受管理 I/O 支援下列設定參數:
BIGQUERY
閱讀
設定 | 類型 | 說明 |
---|---|---|
kms_key |
str
|
使用這個 Cloud KMS 金鑰加密資料 |
query |
str
|
要執行的 SQL 查詢,用於從 BigQuery 資料表讀取資料。 |
row_restriction |
str
|
只讀取符合這項篩選條件的資料列,且篩選條件必須與 Google 標準 SQL 相容。透過查詢讀取時不支援這項功能。 |
欄位 |
list[str]
|
只從 BigQuery 資料表讀取指定欄位 (資料欄)。系統傳回的欄位可能不會按照指定順序排列。如未指定值,系統會傳回所有欄位。例如:「col1, col2, col3」 |
table |
str
|
要從中讀取資料的 BigQuery 資料表完整名稱。格式:[${PROJECT}:]${DATASET}.${TABLE} |
BIGQUERY
寫入
設定 | 類型 | 說明 |
---|---|---|
table |
str
|
要寫入的 BigQuery 資料表。格式:[${PROJECT}:]${DATASET}.${TABLE} |
drop |
list[str]
|
要從輸入記錄中捨棄的欄位名稱清單 (寫入前)。與「keep」和「only」互斥。 |
保留 |
list[str]
|
要保留在輸入記錄中的欄位名稱清單。寫入前,系統會捨棄所有其他欄位。與「drop」和「only」互斥。 |
kms_key |
str
|
使用這個 Cloud KMS 金鑰加密資料 |
僅限 |
str
|
要寫入的單一記錄欄位名稱。與「keep」和「drop」互斥。 |
triggering_frequency_seconds |
int64
|
決定將進度「提交」至 BigQuery 的頻率。預設值為每 5 秒。 |
後續步驟
如需更多資訊和程式碼範例,請參閱下列主題: