Memcache(原名OCS)数据源为您提供其它数据源向Memcache写入数据的功能,目前仅支持脚本模式配置同步任务,本文为您介绍DataWorks的Memcache(OCS)数据同步的能力支持情况。
使用限制
当前仅支持使用脚本模式将数据写入Memcache(OCS)。
支持的字段类型
Memcache Writer目前支持一种格式的写入方式,不同写入方式的类型转换方式不一致。
创建数据源
在进行数据同步任务开发时,您需要在DataWorks上创建一个对应的数据源,操作流程请参见创建并管理数据源,详细的配置参数解释可在配置界面查看对应参数的文案提示。
数据同步任务开发
数据同步任务的配置入口和通用配置流程可参见下文的配置指导。
附录: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"//一次性批量提交的记录数大小。
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"//错误记录数。
},
"speed":{
"throttle":true,//当throttle值为false时,mbps参数不生效,表示不限流;当throttle值为true时,表示限流。
"concurrent":1, //作业并发数。
"mbps":"12"//限流,此处1mbps = 1MB/s。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Writer脚本参数
参数 | 描述 | 是否必选 | 默认值 |
datasource | 数据源名称,脚本模式支持添加数据源,此配置项填写的内容必须要与添加的数据源名称保持一致。 | 是 | 无 |
writeMode | Memcache Writer写入方式,具体如下: set:存储这个数据。 add:存储这个数据,当且仅当这个key不存在时(目前不支持)。 replace:存储这个数据,当且仅当这个key存在时(目前不支持)。 append:将数据存放在已存在的key对应的内容后面,忽略exptime(目前不支持)。 prepend:将数据存放在已存在的key对应的内容的前面,忽略 exptime(目前不支持)。
| 是 | 无 |
writeFormat | Memcache Writer写出数据的格式,目前仅支持TEXT数据写入方式。 TEXT:将源端数据序列化为文本格式,其中第一个字段作为Memcache写入的key,后续所有字段序列化为String类型,使用您指定的fieldDelimiter作为间隔符,将文本拼接为完整的字符串再写入Memcache。 例如源头数据如下所示。 | ID | NAME | COUNT|
| ---- |:------|:-----|
| 23 | "CDP" | 100 |
如果您指定fieldDelimiter为\^,则写入Memcache的格式如下。 | KEY (OCS) | VALUE(OCS) |
| --------- |:---------- |
| 23 | CDP\^100 |
| 否 | 无 |
expireTime | Memcache值缓存失效时间,目前MemCache支持两类过期时间。
说明 如果过期时间的秒数大于60*60*24*30(即30天),则服务端认为是Unix时间。 | 否 | 0,0永久有效 |
batchSize | 一次性批量提交的记录数大小,该值可以极大减少数据同步系统与MySQL的网络交互次数,并提升整体吞吐量。如果该值设置过大,会导致数据同步运行进程OOM异常。 | 否 | 1,024 |