数据同步工具

数据同步工具公司要搞数据平台,首当其冲的是把旧库的数据导入到新库中,原本各种数据库大部分都提供了导入导出的工具,但是数据存储到各个地方,mongdb,hbase,mysql,oracle等各种各样的不同数据库,同步起来头都大了因此最近使用了一些数据同步工具,记录下来:离线导入导出DataX阿里的Datax是比较优秀的产品,基于python,提供各种数据村塾的读写插件,多线程执行,使用起…

大家好,又见面了,我是你们的朋友全栈君。

公司要搞数据平台,首当其冲的是把旧库的数据导入到新库中,原本各种数据库大部分都提供了导入导出的工具,但是数据存储到各个地方,mongdb,hbase,mysql,oracle等各种各样的不同数据库,同步起来头都大了

因此最近使用了一些数据同步工具,记录下来:

离线导入导出

DataX

阿里的Datax是比较优秀的产品,基于python,提供各种数据村塾的读写插件,多线程执行,使用起来也很简单,定义好配置json文件执行脚本就可以了,非常适合离线数据,增量数据可以使用一些编码的方式实现,但是也仅仅针对insert数据比较有效,update数据就不适合。

github地址:https://github.com/alibaba/DataX

目前DataX支持的数据库

数据同步工具

Sqoop

http://sqoop.apache.org/

Sqoop是针对大数据而生的,专注于Hadoop(Hive)与传统的数据库数据的传递,是Hadoop生态的一员。在数据库的支持的丰富性上不如DataX,但是如果你用hadoop,用sqoop是更好的选择,因为做Apache的顶级项目,他背后的支持远远比阿里一家公司靠谱的多

Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

Kettle

Kettle作为传统ETL工具,目前也都已经有了nosql数据库的支持,而且kettle还有图形界面可以用,使用起来简单多了。而且本来就是专门做ETL的,是Pentaho指定的ETL组件,对于数据清洗等处理数据的环节支持更好。但是数据效率一般,而且在生产环境也很少弄台windows机器,适合小项目,数据量比较小的同步。

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。

Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

实时同步

实时同步最灵活的还是用kafka做中间转发,当数据发生变化时,记录变化到kafka,需要同步数据的程序订阅消息即可,需要研发编码支持。这里说个mysql数据库的同步组件,阿里的canalotter

canal

https://github.com/alibaba/canal

canal是基于mysql的binlog进行数据同步的中间件。简单来说,Canal 会将自己伪装成 MySQL 从节点(Slave),并从主节点(Master)获取 Binlog,解析和贮存后供下游消费端使用。Canal 包含两个组成部分:服务端和客户端。服务端负责连接至不同的 MySQL 实例,并为每个实例维护一个事件消息队列;客户端则可以订阅这些队列中的数据变更事件,处理并存储到数据仓库中。

使用的话,安装好canal,配置好数据库参数,再编写一个客户端消费canal传过来的数据就可以了。如何使用官网写的挺清楚了,可以直接看官网。

otter

https://github.com/alibaba/otter

otter是在canal基础上又重新实现了可配置的消费者,使用otter的话,刚才说过的消费者就不需要写了,而otter提供了一个web界面,可以自定义同步任务及map表。非常适合mysql库之间的同步。

数据同步工具

而且通过retl_buff表的监控,也可以实现一些全量数据的同步。

但是otter也有一些不好的地方,比如界面上的参数并不是所有的都有用,文档写的一般,不是很清晰。但是想想省了好多事,还是非常好的一款中间件。

详细参见官网,安装部署研究下问题不大。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/154010.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 太极阴转阳[通俗易懂]

    太极阴转阳[通俗易懂]太极是Android手机的一个类似于xposed框架的APP,既然名为太极,太极分两仪,太极阴和太极阳。而太极阴是一个无需Root、不用解锁Bootloader,也不需要刷机就能使用Xposed模块的一个APP,而太极阳则需要在太极阴的基础上解锁BL刷机,挂载magisk(俗称面具)的一个更加强大的类xposed框架,但是太极阴和太极阳是同一个apk安装包。那么怎么使太极阴转阳呢?下面…

  • Flashfxpv.3.5.4注册码

    Flashfxpv.3.5.4注册码在安装好任意版本的Flashfxp之后,只要在注册栏中,全盘粘贴一下文字就可以了^_^——–FlashFXPRegistrationDataSTART——–FLASHFXPwQAOlhkgwQAAAAC6W5MNJwTnsl73nIraAU149tnCQS0hmZU3GGBQG1FtoSp5x0mUgA7bFW0qr0fKk2KCA+v2CCrFbF+q

  • hadoop生态圈相关技术_hadoop的生态

    hadoop生态圈相关技术_hadoop的生态装完hadoop2.6.0-cdh5.5.2后put命令不好使,并且装完hive后导入本地数据也报错,put命令一直报这个错:hadoop@debian:~$hadoopfs-puthe.tt/aaa17/01/0223:37:52WARNhdfs.DFSClient:DataStreamerExceptionorg.apache.hadoop.ipc.RemoteE

    2022年10月30日
  • Linux下Opengrok安装部署与使用

    Linux下Opengrok安装部署与使用OpenGrok简单安装配置说明

  • S3C2440移植uboot之支持NAND启动「建议收藏」

    S3C2440移植uboot之支持NAND启动「建议收藏」上一节S3C2440移植uboot之新建单板_时钟_SDRAM_串口移植uboot初始化了时钟,配置了支持串口,这一节我们继续修改uboot支持NAND启动。

  • javascript(js)小数精度丢失的解决方案

    原因:js按照2进制来处理小数的加减乘除,在arg1的基础上将arg2的精度进行扩展或逆扩展匹配,所以会出现如下情况.javascript(js)的小数点加减乘除问题,是一个js的bug如0.3*

    2021年12月25日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号