BigQuery資料來源為您提供讀取BigQuery的功能,方便您後續可以通過嚮導模式和指令碼模式配置資料同步任務。本文為您介紹DataWorks的BigQuery資料同步能力支援情況。
支援的版本及地區
BigQuery使用的SDK版本是
google-cloud-bigquery 2.29.0
,SDK能力具體請參見官網文檔。支援建立BigQuery資料來源的地區如下:
中國香港、日本(東京)、新加坡、澳大利亞(雪梨)、馬來西亞(吉隆坡)、印尼(雅加達)、印度(孟買)、德國(法蘭克福)、英國(倫敦)、美國(矽谷)、美國(維吉尼亞)
支援的欄位類型
BigQuery的欄位類型請參見BigQuery的官方文檔。下面為您列出當前主要欄位的支援情況。
BigQuery類型 | Java 類型 |
BOOL | Bool |
INT64 | Long |
FLOAT64 | BigDecimal |
NUMERIC | BigDecimal |
BIGNUMERIC | BigDecimal |
STRING | String |
BYTES | Bytes |
STRUCT | String |
ARRAY | String |
TIMESTAMP | Date |
DATE | Date |
TIME | Date |
DATETIME | Date |
GEOGRAPHY | String |
JSON | String |
INTERVAL | String |
資料同步前準備:配置BigQuery的網路連接
在DataWorks上進行資料同步前,您需要將BigQuery的網路與Data Integration的獨享資源群組打通,使之通過內網地址進行訪問。網路打通的具體方法可參考:網路連通方案。
資料同步任務開發
BigQuery資料同步任務的配置入口和通用配置流程指導可參見下文的配置指導,詳細的配置參數解釋可在配置介面查看對應參數的文案提示。
建立資料來源
在進行資料同步任務開發時,您需要在DataWorks上建立一個對應的資料來源,操作流程請參見建立並管理資料來源。
以下對BigQuery資料來源的幾個配置項進行說明:
BigQuery Project ID:Google BigQuery的專案名。
BigQuery授權認證資訊:上傳Google Cloud的認證檔案。
單表離線同步任務配置指導
操作流程請參見通過嚮導模式配置離線同步任務、通過指令碼模式配置離線同步任務。
指令碼模式配置的全量參數和指令碼Demo請參見下文的附錄:指令碼Demo與參數說明。
附錄:指令碼Demo與參數說明
離線任務指令碼配置方式
如果您配置離線任務時使用指令碼模式的方式進行配置,您需要在任務指令碼中按照指令碼的統一格式要求編寫指令碼中的參數,指令碼模式的統一要求請參見通過指令碼模式配置離線同步任務,以下為您介紹指令碼模式下的資料來源的Reader參數的指導詳情。
BigQuery Reader指令碼Demo
{
"stepType": "bigquery"
"parameter":
{
"datasource":"bq_test1",
"table": "partition_1107",
"where": "xxx=3",
"dataSet": "database_0724",
"partition": [
"_PARTITIONTIME='2023-11-07'"
],
"column":
[
"id",
"table_id",
"table_no",
"table_name",
"table_status"
]
},
"name": "Reader",
"category": "reader"
}
BigQuery Reader指令碼參數
參數 | 描述 | 是否必選 | 預設值 |
datasource | 資料來源名稱,指令碼模式支援添加資料來源,此配置項填寫的內容必須與添加的資料來源名稱保持一致。 | 是 | 無 |
dataset | 資料集,BigQuery的資料集。 | 是 | 無 |
table | 選取的需要同步的表名稱。 | 是 | 無 |
column | 需要讀取的BigQuery資料,欄位之間用英文逗號分隔。例如"column": ["id", "name", "age"]。 | 是 | 無 |
where | 篩選條件,BigQuery Reader根據指定的column、table和where條件拼接SQL,並根據該SQL進行資料幫浦。例如在做測試時,可以將where條件指定為 在實際業務情境中,通常會選擇當天的資料進行同步,可以將where條件指定為
| 否 | 無 |
partition | 配置分區資訊,可以同步特定的分區,支援一次同步多個分區。 | 否 | 無 |
splitPk | 如果已經指定了分區,則splitPk欄位不生效。如果指定splitPk,表示您希望使用splitPk代表的欄位進行資料分區。資料同步系統會啟動並發任務進行資料同步,以提高資料同步的效能。 | 否 | 無 |