Memcache(原名OCS)数据源为您提供其它数据源向Memcache写入数据的功能,目前仅支持脚本模式配置同步任务,本文为您介绍DataWorks的Memcache(OCS)数据同步的能力支持情况。
使用限制
当前仅支持使用脚本模式将数据写入Memcache(OCS)。
支持的字段类型
Memcache Writer目前支持一种格式的写入方式,不同写入方式的类型转换方式不一致。
text:Memcache Writer将来源数据序列化为STRING类型格式,并使用您在同步任务脚本中配置的fieldDelimiter作为间隔符。
binary:目前暂不支持。
数据同步任务开发
Memcache(OCS)数据同步任务的配置入口和通用配置流程指导可参见下文的配置指导,详细的配置参数解释可在配置界面查看对应参数的文案提示。
创建数据源
在进行数据同步任务开发时,您需要在DataWorks上创建一个对应的数据源,操作流程请参见创建与管理数据源。
单表离线同步任务配置指导
操作流程请参见通过脚本模式配置离线同步任务。
脚本模式配置的全量参数和脚本Demo请参见下文的附录:Memcache(OCS)脚本Demo与参数说明。
附录:Memcache(OCS)脚本Demo与参数说明
附录:离线任务脚本配置方式
如果您配置离线任务时使用脚本模式的方式进行配置,您需要在任务脚本中按照脚本的统一格式要求编写脚本中的reader参数和writer参数,脚本模式的统一要求请参见通过脚本模式配置离线同步任务,以下为您介绍脚本模式下的数据源的Reader参数和Writer参数的指导详情。
Memcache(OCS) 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"
}
]
}
}
Memcache(OCS) 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 |