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 |
數據同步前準備
在DataWorks上進行數據同步前,您需要將數據源的網絡與數據集成使用的Serverless資源組(推薦)或獨享數據集成資源組打通,使之通過內網地址進行訪問。網絡打通的具體方法可參考:網絡連通方案。
創建數據源
在進行數據同步任務開發時,您需要在DataWorks上創建一個對應的數據源,操作流程請參見創建并管理數據源,詳細的配置參數解釋可在配置界面查看對應參數的文案提示。
以下對BigQuery數據源的幾個配置項進行說明:
BigQuery Project ID:Google BigQuery的項目名。
BigQuery授權認證信息:上傳Google Cloud的認證文件。
數據同步任務開發
數據同步任務的配置入口和通用配置流程可參見下文的配置指導。
單表離線同步任務配置指導
操作流程請參見通過向導模式配置離線同步任務、通過腳本模式配置離線同步任務。
腳本模式配置的全量參數和腳本Demo請參見下文的附錄:腳本Demo與參數說明。
附錄:腳本Demo與參數說明
離線任務腳本配置方式
如果您配置離線任務時使用腳本模式的方式進行配置,您需要按照統一的腳本格式要求,在任務腳本中編寫相應的參數,詳情請參見通過腳本模式配置離線同步任務,以下為您介紹腳本模式下數據源的參數配置詳情。
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"
}
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代表的字段進行數據分片。數據同步系統會啟動并發任務進行數據同步,以提高數據同步的效能。 | 否 | 無 |