datax ocswriter 使用

  • 2022-07-14
  • 浏览 (1083)

DataX OCSWriter 适用memcached客户端写入ocs

1 快速介绍

1.1 OCS简介

开放缓存服务( Open Cache Service,简称OCS)是基于内存的缓存服务,支持海量小数据的高速访问。OCS可以极大缓解对后端存储的压力,提高网站或应用的响应速度。OCS支持Key-Value的数据结构,兼容Memcached协议的客户端都可与OCS通信。

OCS 支持即开即用的方式快速部署;对于动态Web、APP应用,可通过缓存服务减轻对数据库的压力,从而提高网站整体的响应速度。

与本地MemCache相同之处在于OCS兼容Memcached协议,与用户环境兼容,可直接用于OCS服务 不同之处在于硬件和数据部署在云端,有完善的基础设施、网络安全保障、系统维护服务。所有的这些服务,都不需要投资,只需根据使用量进行付费即可。

1.2 OCSWriter简介

OCSWriter是DataX实现的,基于Memcached协议的数据写入OCS通道。

2 功能说明

2.1 配置样例

  • 这里使用一份从内存产生的数据导入到OCS。
{
    "job": {
        "setting": {
            "speed": {
                "channel": 1
            }
        },
        "content": [
            {
                "reader": {
                    "name": "streamreader",
                    "parameter": {
                        "column": [
                            {
                                "value": "DataX",
                                "type": "string"
                            },
                            {
                                "value": 19880808,
                                "type": "long"
                            },
                            {
                                "value": "1988-08-08 08:08:08",
                                "type": "date"
                            },
                            {
                                "value": true,
                                "type": "bool"
                            },
                            {
                                "value": "test",
                                "type": "bytes"
                            }
                        ],
                        "sliceRecordCount": 1000
                    }
                },
                "writer": {
                    "name": "ocswriter",
                    "parameter": {
                        "proxy": "xxxx",
                        "port": "11211",
                        "userName": "user",
                        "password": "******",
                        "writeMode": "set|add|replace|append|prepend",
                        "writeFormat": "text|binary",
                        "fieldDelimiter": "\u0001",
                        "expireTime": 1000,
                        "indexes": "0,2",
                        "batchSize": 1000
                    }
                }
            }
        ]
    }
}

2.2 参数说明

  • proxy

    • 描述:OCS机器的ip或host。
    • 必选:是
  • port

    • 描述:OCS的连接域名,默认为11211
    • 必选:否
    • 默认值:11211
  • username

    • 描述:OCS连接的访问账号。
    • 必选:是
  • password

    • 描述:OCS连接的访问密码
    • 必选:是
  • writeMode

    • 描述: OCSWriter写入方式,具体为:
      • set: 存储这个数据,如果已经存在则覆盖
      • add: 存储这个数据,当且仅当这个key不存在的时候
      • replace: 存储这个数据,当且仅当这个key存在
      • append: 将数据存放在已存在的key对应的内容的后面,忽略exptime
      • prepend: 将数据存放在已存在的key对应的内容的前面,忽略exptime
    • 必选:是
  • writeFormat

    • 描述: OCSWriter写出数据格式,目前支持两类数据写入方式:
      • text: 将源端数据序列化为文本格式,其中第一个字段作为OCS写入的KEY,后续所有字段序列化为STRING类型,使用用户指定的fieldDelimiter作为间隔符,将文本拼接为完整的字符串再写入OCS。
      • binary: 将源端数据作为二进制直接写入,这类场景为未来做扩展使用,目前不支持。如果填写binary将会报错!
    • 必选:否
    • 默认值:text
  • expireTime

    • 描述: OCS值缓存失效时间,目前MemCache支持两类过期时间,

      • Unix时间(自1970.1.1开始到现在的秒数),该时间指定了到未来某个时刻数据失效。
      • 相对当前时间的秒数,该时间指定了从现在开始多长时间后数据失效。 注意:如果过期时间的秒数大于60*60*24*30(即30天),则服务端认为是Unix时间。
      • 单位:秒
    • 必选:否

    • 默认值:0【0表示永久有效】

  • indexes

    • 描述: 用数据的第几列当做ocs的key
    • 必选:否
    • 默认值:0
  • batchSize

    • 描述:一次性批量提交的记录数大小,该值可以极大减少DataX与OCS的网络交互次数,并提升整体吞吐量。但是该值设置过大可能会造成DataX运行进程OOM情况[memcached版本暂不支持批量写]。
    • 必选:否
    • 默认值:256
  • fieldDelimiter

    • 描述:写入ocs的key和value分隔符。比如:key=tom\u0001boston, value=28\u0001lawer\u0001male\u0001married
    • 必选:否
    • 默认值:\u0001

3 性能报告

3.1 datax机器配置

CPU:16核、内存:24GB、网卡:单网卡1000mbps

3.2 任务资源配置

-Xms8g -Xmx8g -XX:+HeapDumpOnOutOfMemoryError

3.3 测试报告

单条数据大小 通道并发数 TPS 通道流量 出口流量 备注
1KB 1 579 tps 583.31KB/s 648.63KB/s
1KB 10 6006 tps 5.87MB/s 6.73MB/s
1KB 100 49916 tps 48.56MB/s 55.55MB/s
10KB 1 438 tps 4.62MB/s 5.07MB/s
10KB 10 4313 tps 45.57MB/s 49.51MB/s
10KB 100 10713 tps 112.80MB/s 123.01MB/s
100KB 1 275 tps 26.09MB/s 144.90KB/s 无。数据冗余大,压缩比高。
100KB 10 2492 tps 236.33MB/s 1.30MB/s
100KB 100 3187 tps 302.17MB/s 1.77MB/s

3.4 性能测试小结

  1. 单条数据小于10KB时建议开启100并发。
  2. 不建议10KB以上的数据写入ocs。

相关文章

datax README 使用

datax adbpgwriter 使用

datax adswriter 使用

datax cassandrareader 使用

datax cassandrawriter 使用

datax dataxPluginDev 使用

datax drdsreader 使用

datax drdswriter 使用

datax elasticsearchwriter 使用

datax ftpreader 使用

0  赞