一、离线数据同步

DataX

阿里的Datax是比较优秀的产品,基于python,提供各种数据村塾的读写插件,多线程执行,使用起来也很简单,操作简单通常只需要两步;

创建作业的配置文件(json格式配置reader,writer);
启动执行配置作业。

非常适合离线数据,增量数据可以使用一些编码的方式实现,
缺点:仅仅针对insert数据比较有效,update数据就不适合。缺乏对增量更新的内置支持,因为DataX的灵活架构,可以通过shell脚本等方式方便实现增量同步。
参考资料:
github地址:https://github.com/alibaba/DataX
dataX3.0介绍:https://www.jianshu.com/p/65c440f9bce1
datax初体验:https://www.imooc.com/article/15640
文档:https://github.com/alibaba/DataX/blob/master/hdfswriter/doc/hdfswriter.md

Sqoop

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

Sqoop导入:导入工具从RDBMS到HDFS导入单个表。表中的每一行被视为HDFS的记录。所有记录被存储在文本文件的文本数据或者在Avro和序列文件的二进制数据。
Sqoop导出:导出工具从HDFS导出一组文件到一个RDBMS。作为输入到Sqoop文件包含记录,这被称为在表中的行。那些被读取并解析成一组记录和分隔使用用户指定的分隔符。

Sqoop支持全量数据导入和增量数据导入(增量数据导入分两种,一是基于递增列的增量数据导入(Append方式)。二是基于时间列的增量数据导入(LastModified方式)),同时可以指定数据是否以并发形式导入。

Kettle

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。
Kettle的Spoon有丰富的Steps可以组装开发出满足多种复杂应用场景的数据集成作业,方便实现全量、增量数据同步。缺点是通过定时运行,实时性相对较差。

NiFi

Apache NiFi 是一个易于使用、功能强大而且可靠的数据拉取、数据处理和分发系统,用于自动化管理系统间的数据流。它支持高度可配置的指示图的数据路由、转换和系统中介逻辑,支持从多种数据源动态拉取数据。
NiFi基于Web方式工作,后台在服务器上进行调度。 用户可以为数据处理定义为一个流程,然后进行处理,后台具有数据处理引擎、任务调度等组件。

几个核心概念:

Nifi 的设计理念接近于基于流的编程 Flow Based Programming。

FlowFile:表示通过系统移动的每个对象,包含数据流的基本属性

FlowFile Processor(处理器):负责实际对数据流执行工作

Connection(连接线):负责不同处理器之间的连接,是数据的有界缓冲区

Flow Controller(流量控制器):管理进程使用的线程及其分配

Process Group(过程组):进程组是一组特定的进程及其连接,允许组合其他组件创建新组件

参考资料
Nifi简介及核心概念整理
官方网站:http://nifi.apache.org/index.html

二、实时数据同步

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

canal

https://github.com/alibaba/canal

数据抽取简单的来说,就是将一个表的数据提取到另一个表中。有很多的ETL工具可以帮助我们来进行数据的抽取和转换,ETL工具能进行一次性或者定时作业抽取数据,不过canal作为阿里巴巴提供的开源的数据抽取项目,能够做到实时抽取,原理就是伪装成mysql从节点,读取mysql的binlog,生成消息,客户端订阅这些数据变更消息,处理并存储。下面我们来一起搭建一下canal服务
早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。

ps. 目前内部版本已经支持mysql和oracle部分版本的日志解析,当前的canal开源版本支持5.7及以下的版本(阿里内部mysql 5.7.13, 5.6.10, mysql 5.5.18和5.1.40/48)

基于日志增量订阅&消费支持的业务:
数据库镜像
数据库实时备份
多级索引 (卖家和买家各自分库索引)
search build
业务cache刷新
价格变化等重要业务消息

otter

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

另外:otter已在阿里云推出商业化版本 数据传输服务DTS, 开通即用,免去部署维护的昂贵使用成本。DTS针对阿里云RDS、DRDS等产品进行了适配,解决了Binlog日志回收,主备切换、VPC网络切换等场景下的同步高可用问题。同时,针对RDS进行了针对性的性能优化。出于稳定性、性能及成本的考虑,强烈推荐阿里云用户使用DTS产品。

大数据常用同步工具(DataX/Sqoop/Nifi/Canal等)相关推荐

  1. 阿里推出又一款数据高效同步工具DataX,真香、真牛X!

    因公众号更改推送规则,请点"在看"并加"星标"第一时间获取精彩技术分享 点击关注#互联网架构师公众号,领取架构师全套资料 都在这里 0.2T架构师学习资料干货分 ...

  2. 28个大数据的高级工具汇总

    一. 使用Apache Hadoop作为存储框架 Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算. Had ...

  3. 高效数据同步工具DataX的使用

    一.DataX 简介 DataX 是阿里云 DataWorks 数据集成 的开源版本,主要就是用于实现数据间的离线同步. DataX 致力于实现包括关系型数据库(MySQL.Oracle 等).HDF ...

  4. 开源oracle同步图形工具,阿里开源数据同步工具--DataX

    阿里开源数据同步工具--DataX 是啥?: 是异构数据源离线同步工具 能干啥?: 能够将MySQL sqlServer Oracle Hive HBase  FTP 之间进行稳定高效的数据同步. 设 ...

  5. 【大数据入门笔记系列】第一节 大数据常用组件

    [大数据入门笔记系列]第一节 大数据常用组件 大数据释义 大数据组件 跳转 大数据释义 近些年来,坊间一直流传着这样的言论:"大数据时代,人人都在裸奔".对于外行人来说,对于&qu ...

  6. 荐六十款针对Hadoop和大数据顶级开源工具

    为什么80%的码农都做不了架构师?>>>    荐六十款针对Hadoop和大数据顶级开源工具 2015-08-10 10:37 布加迪编译 51CTO 字号: T |  T 说到处理 ...

  7. 大数据常用组件官网地址

    大数据常用组件官网地址 数据采集传输 Flume 官网:https://flume.apache.org/ 下载地址:https://flume.apache.org/download.html Ka ...

  8. 【大数据】大数据 Hadoop 管理工具 Apache Ambari(HDP)

    文章目录 一.概述 二. Ambari 与 HDP 关系 三.Ambari 与 Cloudera manager 的对比 1)开源性 2)支持的发行版 3)用户界面 4)功能和扩展性 5)社区支持和生 ...

  9. 大数据即席查询工具——秒级响应

    报表是企业管理的基本措施和途径,是企业的基本业务要求,也是实施 BI战略的基础.报表可以帮助企业访问.格式化数据,并把数据信息以可靠和安全的方式呈现给使用者.在企业管理过程中,报表往往都会通过一些简洁 ...

最新文章

  1. 使用MakeCAB.exe命令创建CAB文件
  2. Opengl :公转与自转
  3. 企业软件介绍主页html模板
  4. TaskScheduler一个.NET版任务调度器
  5. 关于计算机工作的诗歌,提高计算机工作及上网效率的方法
  6. JavaScript 01
  7. Python3优雅操作-时间处理与定时任务
  8. 自己做的小游戏希望大家能喜欢
  9. hp 计算机如何显示在桌面上,HPDL1414 精致桌面小伴侣 显示时间日历和电脑状态(CPU温度负载...
  10. 计算机xp画板在哪找,xp系统画图工具在哪里|xp画图工具有什么功能
  11. 当今主流浏览器内核简介
  12. USB转TTL、USB转RS232的实现
  13. “但行好事 莫问前程 只问耕耘 不问收获 成功不必在我 而功力必不唐捐” 科技袁人·年终盛典——5G是科技时代非常重要的基础设施...
  14. php onlyoffice,快速增长的ONLYOFFICE平台带来重大更新以响应用户需求
  15. Turbo C的图形系统
  16. 虚拟机安装Linux教程
  17. hive集群tez引擎执行任务卡住
  18. vscode pytorch在debug时遇到问题:Error in `python‘: double free or corruption (prev)
  19. H5实现RTMP流的直播小记
  20. 利用PowerQuery 快速进行限定时间表创建

热门文章

  1. OpenCV-Python学习之(一)waitKey()函数详解
  2. Performance Counter的使用
  3. centos ssh免密登录 多台互相免密登录
  4. JSP-----------简易购物车代码
  5. LTE学习-信道估计(LS算法)
  6. 软件工程毕设项目推荐
  7. 5、kubernetes Scale Up/Down在线增加或减少 Pod 的副本数、Failover故障转移、用 label(标签)控制 Pod 的位置
  8. 实体对齐 算法_[2017]Bootstrapping Entity Alignment with Knowledge Graph Embedding
  9. CTF密码学——初探
  10. 如何使用远程桌面连接云服务器 (以阿里云为例)