DataWorksData Integration支援使用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"//限流,此處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轉換器的列之前配置。 |