rediswriter代码地址: https://github.com/lijufeng2016/DataX-redis-writer

合并后DataX完整代码地址: https://github.com/lijufeng2016/DataX

一、DataX介绍

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。

二、redis writer插件介绍

  • 基本功能

    datax插件试的开发模式提供了很大遍历,DataX内部把所有数据都抽象成Record,各个插件只需要按照规范即可。经过一周时间的开发和测试,本插件支持各种异构数据源MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase…导入redis。考虑到性能,本插件做了pipline批量写redis。

    rediswriter支持的功能有:

    • 导入数据到redis(默认)

    • 根据数据源删除redis key

    • 根据数据源删除hash类型的field

    rediswriter支持导入redis的数据类型有:

    • string

    • list

    • hash

  • 参数说明

    以下参数为datax自定义的json文件的parameter key下面的的参数

    一级参数 二级参数 三级参数 释义
    redisMode redis的部署模式,支持集群模式和单机模式,值:cluster或singleton 必需
    address redis的地址,单机模式:host:port,集群模式:host1:port1,host2:port2, 必需
    auth redis密码,没有则不加这个参数 非必需,有则填
    writeType 写入redis的数据类型:string、list、hash 必需
    writeMode 写入的模式,默认是写数据,设为delete是删数据 非必需可选,默认insert
    config 以下二级参数的具体配置,配置三种redis数据类型 必需
    strKey (公共参数)自定义的redis key值,不通过数据源来定 非必需,strKey和colKey二选一
    colKey (公共参数)对应数据源的column,作为redis的key 非必需,strKey和colKey二选一
    expire (公共参数)redis key的过期时间,单位秒 非必需
    batchSize (公共参数)pipline批量每次导入redis的的大小 非必需
    keyPrefix (公共参数)redis key值的自定义前缀 非必需
    keySuffix (公共参数)redis key值的自定义后缀 非必需
    colValue (公共参数)redis value值对应的数据源列配置 除writeMode为delete时必需
    name (公共参数)对应的数据源列名 必需
    index (公共参数)对应的数据源列索引 必需
    valueDelimiter (redis list类型参数)对应数据源column值的分隔符,只支持string类型的数据源column writeType为list时必需
    pushType (redis list类型参数)list类型的push类型,有lpush,rpush,overwrite,默认overwrite 非必需,可选
    hashFields (redis hash类型参数)hash类型要删除的field,逗号隔开,次参数只对删除hash类型的field时有效 删除hash类型field时必需
  • 安装说明

    安装时不能单独只编译单独的插件代码,必需把合并rediswriter后的完整DataX代码编译打包,必需要用本人fork并合并后的DataX代码才有用。如果已经安装过DataX,需要覆盖安装

    (1)下载源码

    #下载代码,本地没装git的可以https://github.com/lijufeng2016/DataX 直接下载
    $ git clone git@github.com:lijufeng2016/DataX.git
    

    (2)maven打包

    $ cd  {DataX_source_code_home}
    $ mvn -U clean package assembly:assembly -Dmaven.test.skip=true
    

    打包成功后的DataX包位于 {DataX_source_code_home}/target/datax/datax/ ,结构如下:

    $ cd  {DataX_source_code_home}
    $ ls ./target/datax/datax/
    bin     conf        job     lib     log     log_perf    plugin      script      tmp
    

    注意需要配置datax的环境变量$DATAX_HOME,并且赋予datax.py的可执行权限

    $ chmod 777 $DATAX_HOME/bin/datax.py
    

    进入$DATA_HOME/plugin/writer查看,rediswriter插件目录已存在

三、使用案例

代码结构

案例代码均在源代码地址可以找到:https://github.com/lijufeng2016/DataX-redis-writer/tree/master/src/test/demo。下面以hive表导redis为例

在src/test/demo/data路径下找到建表语句和数据,执行上传数据后,hive表如下:

json文件地址:https://github.com/lijufeng2016/DataX-redis-writer/blob/master/src/test/demo/

  • 导入string类型:

    执行datax.py hive_to_redis_string.json 后,通过redis客户端查看

  • 导入list类型

    执行datax.py hive_to_redis_list.json 后,通过redis客户端查看

  • 导入hash类型

执行datax.py hive_to_redis_hash.json 后,通过redis客户端查看

删除redis的操作不再赘述,可自己根据demo代码去测试。

redis的这三种数据类型导入已经够用,不用再去单独写udf,只要datax支持的reader,有了它之后,都能写redis!最后,欢迎star本项目:https://github.com/lijufeng2016/DataX-redis-writer

异构数据源导redis不用找了!DataX二次开发插件rediswriter已上菜相关推荐

  1. DataX二次开发——(6)kafkareader、kafkawriter的开发

    参考博客: Datax 二次开发插件详细过程_键盘上的艺术家w的博客-CSDN博客_datax kafkareader 简书-DataX kafkawriter 背景 基于阿里开源DataX3.0版本 ...

  2. 简化datax源码,以便于datax二次开发、调试

    # 项目简介DataX是一款十分优秀的数据同步工具,以插件的方式集成了大量数据源的读写.但大部分情况下,我们不需要如此多种数据源的支持,例如,我目前的工作仅需要oracle.postgresql两种数 ...

  3. 企业电子招标采购系统源码Spring Cloud + Spring Boot + MybatisPlus + Redis + Layui + 前后端分离 + 二次开发

    项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求.在企业里建立一个公平.公开.公正的采购环境,最大限度控制采购成本至关重要.符合国家电子招投标法律法规 ...

  4. 谷歌地图找客户——拒绝躺式开发客户

    谷歌地图找客户--拒绝躺式开发客户 第一次了解到这个软件,才知道原来还有这种 的方法,立即觉得很有兴趣.也是在网上查询了一下,得知在谷歌地图上找客户的方法其实在很早以前就有,只是没有针对合理性的利用起 ...

  5. 离线数据同步神器:DataX,支持几乎所有异构数据源的离线同步到MaxCompute

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 概述 DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.SqlSer ...

  6. 异构数据源离线同步工具之DataX的安装部署

    异构数据源离线同步工具之DataX的安装部署

  7. 阿里开源数据同步神器DataX异构数据源间数据同步同步MySQL与HDFS相互实战

    Datax 实战使用 继上一篇 阿里开源数据同步神器DataX异构数据源间数据同步基础介绍与快速入门之后的实战篇 1.MySQL-To-HDFS 环境 & 准备说明: 描述: 为了快速搭建测试 ...

  8. ETL异构数据源Datax_工具部署_02

    接上一篇:(企业内部) ETL异构数据源Datax_部署前置环境_01 https://gblfy.blog.csdn.net/article/details/118081253 文章目录 一.直接下 ...

  9. ETL异构数据源Datax_部署前置环境_01

    文章目录 一.概述 1. 是什么? 2. 开源地址 二.简介 2.1. 设计架构 2.2. 框架结构 三.检查环境 3.1. 检验是否安装JDK(1.8以上,推荐1.8) 3.2. 检验是否安装pyt ...

最新文章

  1. 转 关于 D3D的 SetRenderState 以及AlphaBlend 和AlphaTest
  2. CUDA从入门到精通(三):必备资料
  3. OS / 理论 / 什么是原子操作?
  4. 上海计算机二级报名无法选择,上海2020年二级计算机怎么报名
  5. C#--记录用户程序退出时间日志
  6. 11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
  7. 移动app部分机型无法唤起h5支付宝支付_用这段代码对App说:喂,醒醒!App,到你出场了!...
  8. netty springmvc_springmvc源码架构解析之HandlerMapping
  9. for each,for in,for of三者区别
  10. Nvidia搞笑Intel:CPU vs GPU
  11. 将文件下载到谷歌云盘 google driver
  12. 既有e^x又有sinx或cosx的积分题的解法
  13. Flex和Flash开发人员的Adobe Flash Player( Windows )调试器( 也称为调试播放器或内容调试器 )和独立播放器( 又名投影仪 )
  14. ffmpeg解复用FLV文件
  15. C#调用百度大脑API初探2
  16. 数字化转型对企业的意义
  17. ConvE,知识图谱嵌入(KGE)论文复现(Ubuntu 20.04)
  18. 【新技能get】让App像Web一样发布新版本
  19. 蓝桥杯 算法训练 ALGO-932低阶行列式计算 python解法
  20. 根据传函求频率响应、根据实验的频率响应求传函、Nyquist图、bode图

热门文章

  1. chatGPT简单使用
  2. acm:::2103 铺地砖
  3. Switch 改变样式
  4. LLM模型中英文评测基准
  5. 冒泡排序java思维导图_基本算法--冒泡排序
  6. android常用头文件,Android.mk 使用详解
  7. 腾讯课堂视频保存教程
  8. 做竞价广告的注意事项和推广渠道
  9. On the Opportunities and Risks of Foundation Models-CAPABILITIES(1)
  10. 从数据库导出Excel上线后出现IO异常:设备未就绪之解决方法