Memcache(OCS)数据源

Memcache(原名OCS)数据源为您提供其它数据源向Memcache写入数据的功能,目前仅支持脚本模式配置同步任务,本文为您介绍DataWorks的Memcache(OCS)数据同步的能力支持情况。

使用限制

当前仅支持使用脚本模式将数据写入Memcache(OCS)。

支持的字段类型

Memcache Writer目前支持一种格式的写入方式,不同写入方式的类型转换方式不一致。

  • text:Memcache Writer将来源数据序列化为STRING类型格式,并使用您在同步任务脚本中配置的fieldDelimiter作为间隔符。

  • binary:目前暂不支持。

创建数据源

在进行数据同步任务开发时,您需要在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支持两类过期时间。

  • Unix时间(自1970.1.1开始到现在的秒数),该时间指定了到未来某个时刻的数据失效。

  • 相对当前时间的秒数,该时间指定了从现在开始多长时间后数据失效。

说明

如果过期时间的秒数大于60*60*24*30(即30天),则服务端认为是Unix时间。

0,0永久有效

batchSize

一次性批量提交的记录数大小,该值可以极大减少数据同步系统与MySQL的网络交互次数,并提升整体吞吐量。如果该值设置过大,会导致数据同步运行进程OOM异常。

1,024