DataWorks數據集成支持使用Sensors Data Writer將數據寫至Sensors Data,本文為您介紹DataWorks的Sensors Data數據同步的能力支持情況。
使用限制
目前僅華南1(深圳)地域支持綁定Sensors Data數據源,其他地域會陸續支持,敬請期待!
不支持直接讀取SensorsData中的數據,需要根據神策數據存儲類型選擇Hive、HDFS等插件來讀取數據。
創建數據源
在進行數據同步任務開發時,您需要在DataWorks上創建一個對應的數據源,操作流程請參見創建并管理數據源,詳細的配置參數解釋可在配置界面查看對應參數的文案提示。
數據同步任務開發
數據同步任務的配置入口和通用配置流程可參見下文的配置指導。
單表離線同步任務配置指導
操作流程請參見通過腳本模式配置離線同步任務。
腳本模式配置的全量參數和腳本Demo請參見下文的附錄一:腳本Demo與參數說明。
附錄一:腳本Demo與參數說明
離線任務腳本配置方式
如果您配置離線任務時使用腳本模式的方式進行配置,您需要按照統一的腳本格式要求,在任務腳本中編寫相應的參數,詳情請參見通過腳本模式配置離線同步任務,以下為您介紹腳本模式下數據源的參數配置詳情。
Writer腳本Demo
{
"type": "job",
"steps": [
{
"stepType": "mysql",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "sahistory", //插件名。
"parameter": {
"type": "item", //寫入Sensors Data的數據類型,可取值有:track/user/item,分別對應神策系統中的事件/用戶/屬性。
"item": { //因為type參數取值為item,因此此處需要定義item參數。
"itemType": "course", //定義item的類型為學生課程course
"typeIsColumn": false, //item的類型是否會出現在column參數中
"itemIdColumn": "course_id" //定義itemID的字段名稱
},
"column": [ //定義來源表和目標表之間的字段映射關系
{
"name": "course_id", //目標表的字段列名為course_id
"index": 0 //取來源表的第1列數據寫入目標表的course_id列
},
{
"name": "course_name", //目標表的字段列名為course_name
"index": 1 //取來源表的第2列數據寫入目標表的course_name列
},
{
"name": "course_schedule", //目標表的字段列名為course_schedule
"index": 2 //取來源表的第3列數據寫入目標表的course_schedule列
"dataConverters":[ //轉換器,實現數據類型轉換。
{
"type": "Long2Date" //轉換器類型。
}
]
}
],
"sdkDataAddress": "http://bigdata-project.datasink.sensorsdata.cn/sa?project=default&token=1111111111111111", //數據存放路徑,即Sensors Data接收數據的URL地址
},
"name": "Writer",
"category": "writer"
}
],
},
"setting": {
"errorLimit": {
"record": "0" //錯誤記錄數。
},
"speed": {
"throttle":true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
"concurrent":2, //作業并發數。
"mbps":"12"http://限流,此處1mbps = 1MB/s。
}
}
}
Writer腳本參數
參數 | 描述 | 是否必選 | 默認值 |
type | 寫入神策數據系統的數據類型,取值包括:track、user、item,分別對應神策數據系統中的事件、用戶、屬性。type參數的取值,將影響數據類型的參數定義。 | 是 | 無 |
type取track時,可選參數如下:
腳本示例如下:
| |||
type取user時,可選參數如下:
腳本示例如下:
| |||
type取item時,可選參數如下:
腳本示例如下:
| |||
column | 通過index和name參數,來定義來源表字段與目標表字段的映射關系。
| 是 | 無 |
sdkDataAddress | 數據存放路徑,即Sensors Data接收數據的URL地址,該地址的格式為: | 是 | 無 |
附錄二:其他參數介紹
Sensors Data Writer支持在腳本中對要寫入目標數據源的字段,通過添加數據轉換器(dataConverters),并定義轉換器類型(type),實現要寫入目標數據源字段的類型轉換,轉換器類型及參數示例如下表所示。
轉換器類型 | 功能描述 | 示例 | 參數說明 |
Date2Str | 將Date時間類型的數據轉換為String字符串類型。 |
| pattern(可選):將Date數據轉換為String類型數據后,String類型數據的時間格式。 |
Date2Long | 將Date時間類型的數據轉換為Long長整型類型。 |
| 無 |
Number2Str | 將Number數值類型的數據轉換為String字符串類型。 |
| 無 |
Str2Long | 將String字符串類型的數據轉換為Long長整型類型。 |
| 無 |
Str2Date | 將String字符串類型的數據轉換為Date時間類型。 |
|
|
BigInt2Date | 將BigInt大整數類型的數據轉換為Date時間類型。 |
| 無 |
Str2Int | 將String字符串類型的數據轉換為Int整數類型。 |
| 無 |
Str2Double | 將String字符串類型的數據轉換為Double雙精度數值類型。 |
| 無 |
Str2BigDecimal | 將String字符串類型的數據轉換為BigDecimal高精度數值類型。 |
| 無 |
IfNull2Default | 當字段值為null時,將字段值設置為default參數中定義的常量值,并支持根據IfNull2Default轉換器中嵌套的轉換器類型,進一步將字段常量值轉換為目標數據類型。 |
| dataConverters:數據轉換器,將default參數的默認值轉換為type中定義的類型。實現多次數據轉換,多個dataConverters可嵌套使用。 |
NotNull2Null | 如果字段值為非null的值,可以將字段值轉換為null。 |
| 無 |
IfElse | if條件表達式,判斷字段值是否滿足條件,當if條件表達式成立時,在value中定義滿足條件時的字段返回值,當if條件表達式不成立時,在else中定義不滿足條件時的字段返回值。 |
|
|
IfNull2Column | 如果字段值為null,則轉向取targetColumnName配置項的值,作為當前字段的值。 |
| targetColumnName:導入神策數據的列名。 重要 targetColumnName配置的列需要在應用IfNull2Column轉換器的列之前配置。 |