Memcache(原名OCS)數據源為您提供其它數據源向Memcache寫入數據的功能,目前僅支持腳本模式配置同步任務,本文為您介紹DataWorks的Memcache(OCS)數據同步的能力支持情況。
使用限制
當前僅支持使用腳本模式將數據寫入Memcache(OCS)。
支持的字段類型
Memcache Writer目前支持一種格式的寫入方式,不同寫入方式的類型轉換方式不一致。
text:Memcache Writer將來源數據序列化為STRING類型格式,并使用您在同步任務腳本中配置的fieldDelimiter作為間隔符。
binary:目前暫不支持。
創建數據源
在進行數據同步任務開發時,您需要在DataWorks上創建一個對應的數據源,操作流程請參見創建并管理數據源,詳細的配置參數解釋可在配置界面查看對應參數的文案提示。
數據同步任務開發
數據同步任務的配置入口和通用配置流程可參見下文的配置指導。
單表離線同步任務配置指導
操作流程請參見通過腳本模式配置離線同步任務。
腳本模式配置的全量參數和腳本Demo請參見下文的附錄:Memcache(OCS)腳本Demo與參數說明。
附錄:Memcache(OCS)腳本Demo與參數說明
離線任務腳本配置方式
如果您配置離線任務時使用腳本模式的方式進行配置,您需要按照統一的腳本格式要求,在任務腳本中編寫相應的參數,詳情請參見通過腳本模式配置離線同步任務,以下為您介紹腳本模式下數據源的參數配置詳情。
Writer腳本Demo
{
"type":"job",
"version":"2.0",//版本號。
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"ocs",//插件名
"parameter":{
"writeFormat":"text",//Memcache Writer寫出數據格式。
"expireTime":1000,//Memcache值緩存失效時間。
"indexes":0,
"datasource":"",//數據源。
"writeMode":"set",//寫入模式。
"batchSize":"256"http://一次性批量提交的記錄數大小。
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"http://錯誤記錄數。
},
"speed":{
"throttle":true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
"concurrent":1, //作業并發數。
"mbps":"12"http://限流,此處1mbps = 1MB/s。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Writer腳本參數
參數 | 描述 | 是否必選 | 默認值 |
datasource | 數據源名稱,腳本模式支持添加數據源,此配置項填寫的內容必須要與添加的數據源名稱保持一致。 | 是 | 無 |
writeMode | Memcache Writer寫入方式,具體如下:
| 是 | 無 |
writeFormat | Memcache Writer寫出數據的格式,目前僅支持TEXT數據寫入方式。 TEXT:將源端數據序列化為文本格式,其中第一個字段作為Memcache寫入的key,后續所有字段序列化為String類型,使用您指定的fieldDelimiter作為間隔符,將文本拼接為完整的字符串再寫入Memcache。 例如源頭數據如下所示。
如果您指定fieldDelimiter為\^,則寫入Memcache的格式如下。
| 否 | 無 |
expireTime | Memcache值緩存失效時間,目前MemCache支持兩類過期時間。
說明 如果過期時間的秒數大于60*60*24*30(即30天),則服務端認為是Unix時間。 | 否 | 0,0永久有效 |
batchSize | 一次性批量提交的記錄數大小,該值可以極大減少數據同步系統與MySQL的網絡交互次數,并提升整體吞吐量。如果該值設置過大,會導致數據同步運行進程OOM異常。 | 否 | 1,024 |