Canal与DataX等工具的区别

  • Canal\DataX\MySQLMTOP
    • 1. Canal
      • 1.1 canal工作原理
      • 1.2 canal应用场景
    • 2. DataX
      • 2.1 Datax简介
      • 2.2 Datax框架设计
      • 2.3 Datax插件体系
      • 2.4 Datax核心架构
    • 3. MySQLMTOP
      • 3.1 MySQLMTOP简介
      • 3.2 MySQLMTOP功能

Canal\DataX\MySQLMTOP

你好! 今天这篇文章主要讲解 各种数据同步组件以及数据采集分析组件等运维相关工具,如果你想转型架构师也可以参阅这篇文章。

1. Canal

Canal意译为水道/管道,主要用途是基于MySQL数据库增量日志解析,提供增量数据订阅和消费。
早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务trigger获取增量变更。从2010年,业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。

基于日志增量订阅和消费的业务包括以下内容:

  • 数据库镜像
  • 数控实时备份
  • 索引构建和实时维护(拆分异构索引、倒排索引等)
  • 业务cache刷新
  • 带业务逻辑的增量数据处理
    当前的canal支持源端MySQL版本包括5.1.x,5.5.x,5.6.x,5.7.x,8.0.x

1.1 canal工作原理

MySQL主备复制原理

  • MySQL master将数据变更写入二进制日志(binary log,其中记录叫做二进制日志事件binary log events,可以通过show binlog events 进行查看)
  • MySQL slave将master的binary log events 拷贝到它的中继日志中(relay log)
  • MySQL slave重放relay log 中的事件,将数据变更反映到它自己的数据库中

canal的工作原理类似mysql主从同步原理:

  • canal模拟MySQL slave的交互协议,伪装自己为MySQL slave,向MySQL master发送dump协议
  • MySQL master收到dump协议请求,开始推送binary log 给canal
  • canal解析binary log对象(原始为byte流)

1.2 canal应用场景

该技术在某些平台职位搜索业务中得到了采用,场景:在企业HR发布、更新或删除职位时,我们需要及时更新职位索引,便于求职者能快速的搜索到。

想了解更多cannal工具详情,可参考官网文档:https://github.com/alibaba/canal

2. DataX

2.1 Datax简介

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

设计理念
为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接DataX,便能跟已有的数据源做到无缝数据同步。

当前使用现状
DataX在阿里巴巴集团内被广泛使用,承担了所有大数据的离线同步业务,并已持续稳定运行了多年。当年每天完成同步8w多道作业,每日传输数据量超过300TB。

2.2 Datax框架设计

DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。

  • Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
  • Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
  • Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流
    控,并发,数据转换等核心技术问题。

2.3 Datax插件体系

DataX Framework提供了简单的接口与插件交互,提供简单的插件接入机制,只需要任意加上一种插
件,就能无缝对接其他数据源。经过几年积累,DataX目前已经有了比较全面的插件体系,主流的
RDBMS数据库、NOSQL、大数据计算系统都已经接入。DataX目前支持数据如下:

2.4 Datax核心架构

DataX 3.0 开源版本支持单机多线程模式完成同步作业运行,本小节按一个DataX作业生命周期的时序
图,从整体架构设计非常简要说明DataX各个模块相互关系。

  • DataX完成单个数据同步的作业,我们称之为Job,DataX接受到一个Job之后,将启动一个进程来
    完成整个作业同步过程。DataX Job模块是单个作业的中枢管理节点,承担了数据清理、子任务切
    分(将单一作业计算转化为多个子Task)、TaskGroup管理等功能。
  • DataXJob启动后,会根据不同的源端切分策略,将Job切分成多个小的Task(子任务),以便于并发
    执行。Task便是DataX作业的最小单元,每一个Task都会负责一部分数据的同步工作。
  • 切分多个Task之后,DataX Job会调用Scheduler模块,根据配置的并发数据量,将拆分成的Task
    重新组合,组装成TaskGroup(任务组)。每一个TaskGroup负责以一定的并发运行完毕分配好的所
    有Task,默认单个任务组的并发数量为5。
  • 每一个Task都由TaskGroup负责启动,Task启动后,会固定启动Reader—>Channel—>Writer的
    线程来完成任务同步工作。
  • DataX作业运行起来之后, Job监控并等待多个TaskGroup模块任务完成,等待所有TaskGroup任
    务完成后Job成功退出。否则,异常退出,进程退出值非0

想了解更多DataX工具详情,可参考官网文档:https://github.com/alibaba/DataX

3. MySQLMTOP

3.1 MySQLMTOP简介

MySQLMTOP 是一个由Python+PHP开发的开源MySQL企业监控系统。该系统由Python实现多进程数
据采集和告警,PHP实现Web展示和管理,优点如下:

  • MySQL服务器无需安装任何Agent,只需在监控WEB界面配置相关数据库信息
  • 启动监控进程后,即可对上百台MySQL数据库的状态、连接数、QTS、TPS、数据库流量、复制、
    性能慢查询等进行实时监控。
  • 可以在数据库偏离设定的正常运行阀值(如连接异常,复制异常,复制延迟) 时发送告警邮件通知到
    DBA进行处理。
  • 可以对历史数据归档,通过图表展示数据库近期状态,以便DBA和开发人员能对遇到的问题进行分
    析和诊断。

    MySQLMTOP 发展历史如下:
    2014年01月,开源MySQLMTOP企业MySQL监控系统正式上线并开源
    2014年06月,MySQLMTOP进行重构,加入了Oracle、Mongodb、Redis的支持,正式更名为Lepus
    2014年08月,Lepus 成功取得商业软件著作权
    2015年01月,开源MySQLMTOP被评为2014优秀开源软件
    2015年01月,Lepus正式开源,并建立官方网站向大家免费提供服务
    2015年06月,Lepus网站软件下载总数量统计超过10000+,并广泛应用于各大互联网企业生产数据库的
    监控
    2017年01月,Lepus代码托管至github,网站软件下载总数量统计超过30000+

3.2 MySQLMTOP功能

MySQLMTOP主要功能如下:

  • 实时 MySQL 状态监控和警报
    MySQLMTOP 持续监视 MySQL 的基本状态和性能信息,包括数据库连接状态,启动时间,数据
    库版本,总连接数,活动进程,QPS,TPS,进出MySQL数据库的流量信息。在数据库状态异常或
    偏离正常基准水平时发出报警邮件通知。
  • 实时 MySQL复制监控
    MySQLMTOP自动发现 MySQL 复制拓扑结构,自动监视数据库的延时和binlog信息,可以了解所
    有 MySQL 主服务器和从服务器的性能、可用性和运行状况。并在问题(如从服务器延迟)导致停
    机前向管理员提供改正建议。
  • 远程监控云中的 MySQL
    适合于云和虚拟机的设计,能远程监视MySQL服务器不需要任何远程代理器。
  • 直观管理所有 MySQL
    MySQLMTOP提供一个基于 Web 的界面,可令全面深入地了解数据库性能、可用性、关键活动
    等;直观地查看一台服务器、自定义的应用组或所有服务器。一组丰富的实时图形和历史图形将帮
    助您深入了解详细的服务器统计信息。
  • 可视化MySQL慢查询分析
    监视实时查询性能,查看执行统计信息,筛选和定位导致性能下降的 SQL 代码。结合使用
    Information Schema 可直接从 MySQL 服务器收集数据,无需额外的软件或配置。
  • 性能监控
    监视影响 MySQL 性能的主要指标。如Key_buffer_read_hits、Key_buffer_write_hits、
    Thread_cache_hits、Key_blocks_used_rate、Created_tmp_disk_tables_rate等信息,根据相关
    性能指标可以对服务器核心参数进行调整优化。

想了解更多MySQLMTOP工具详情,可参考官网文档:http://www.lepus.cc/

Canal与DataX等工具的区别相关推荐

  1. PS海绵工具加深工具简单工具的区别

    PS海绵工具加深工具简单工具的区别 先来简单概述一下3个工具的作用,再讲述区别 1.海绵工具 主要是用来突出图片主体部分,调整局部饱和度主要吸取黑白以外的部分 分为去色和加色两种模式(即降低饱和度.增 ...

  2. 苹果字体怎么改_苹果手机:普及:此次Filzajailed ROOT和越狱工具的区别

    如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多知识的,这些知识很多小伙伴一般都是不知道的,就好比最近就有很多小伙伴们想要知道普及:此次Filzajailed ROOT和越狱工 ...

  3. CANoe与CANalyzer工具的区别

    CANoe与CANalyzer工具的区别 CANoe和CANalyzer都是多总线工具,但是 CANoe的成本却相应的比CANalyzer高出将近一倍的价格,因此,很多厂家希望在了解二者的区别,在一些 ...

  4. ETL工具与调度工具的区别(一)

    ETL工具与调度工具的区别(一) 1.ETL工具:ETL为 Extract-Transform-Load 的缩写,三个单词描述了将数据从源端经过抽取(extract).转换(transform).加载 ...

  5. ETL工具大全:Kettle、DataCleaner、canal、DataX

    数据仓库 传统数据库 数据仓库 特征 用于操作处理,面向OLTP 用于信息处理,面向OLAP 用户 DBA.开发 经理.主管.数据分析人员 功能 日常操作 长期信息需求.决策支持 DB设计 基于ER模 ...

  6. pmp直方图与帕累托图的区别_PMP之质量管理工具图表区别

    质量管理 8理念 1.项目经理应就执行组织的标准.政策和程序推荐改进措施:此举深受管理层欢迎. 2. 对"制约三要素"的任何变更都考虑质量. 3. 在活动或工作包完成时应检查质量. ...

  7. flink ETL和ETL工具啥区别

    常见的ETL工具有sqoop,nifi,kettle 等等,那么有了这些ETL工具,为什么还需要flink来做etl工作呢? 这是因为ETL工具只能做数据传输, flink则可以通过api或者udf/ ...

  8. datax的工具配置oracle,完全小白级DataX安装配置过程详解

    apt-get install openjdk-7-jdk Linux小白,创建和删除文件夹都现问度娘学会的小白,最近被勒令研究一下DataX,当时一脸蒙X,根本木有听过吖,但是领导吩咐了就得办吖,问 ...

  9. 自动化测试和性能测试工具的区别

    selenium  和  qtp这类自动化测试工具无法生成负载,而loadrunner性能测试工具就能实现 取决于对象识别技术决定 协议模拟是性能测试的核心技术

最新文章

  1. R语言字符串处理函数
  2. 如何找回被create or replace覆盖的PL/SQL对象
  3. java实现迷宫算法--转
  4. QSlider QLCDNumber 最常用的函数和 信号槽 (以后用到在加)
  5. CSS之media Query
  6. 面向对象的关系数据库设计
  7. 利用Glibc库-ORIGIN-提权
  8. pandas Dataframe/Series 设置保留小数位数
  9. wine运行软件检测不到u盘_PE吧“U盘助理”——启动U盘制作图文教程-
  10. ps安装 Photoshop CC2017 安装,cutterman下载安装,ps简单设置
  11. 一、Spark安装与部署
  12. yolov3原理解析及代码流程
  13. DCT 离散余弦变换及蝶形算法
  14. 2022全新车型汽车配置参数数据库大全
  15. 运营书籍:从零开始做
  16. uni-app自定义全屏切换组件
  17. 单片机继电器控制实验程序C语言,继电器控制实验
  18. Rust 学习3, 枚举,集合
  19. 【后厂村】打工人的愿望
  20. 解决layui的table数据重载reload where参数会保留上次条件的问题

热门文章

  1. 唯样商城:ROHM——反向恢复时间trr的影响逆变器电路的优化
  2. win10自带的截屏和录屏
  3. 图片或文件Blob、File、Base64之间的相互转换
  4. 共模雷击不过问题分析
  5. 大疆 M300RTK无人机 Android开发 避障功能
  6. 如何成为web前端大神以及进阶之路
  7. 基于遗传算法的电动汽车有序充电优化调度 利用遗传算法对电动汽车有序充电进行优化;优化目标包括充电费用最低,电动汽车充到足够的电,负荷峰谷差最小
  8. 运营商数据分析:2018年一季度财务及运营数据比拼
  9. 报错解决:Ubuntu插入硬盘不能挂载,Error mounting /dev/sdb1 at /media/×××/×××: unknown filesystem type ‘exfat’
  10. 6.2.5图的基本操作