Canal与DataX等工具的区别
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等工具的区别相关推荐
- PS海绵工具加深工具简单工具的区别
PS海绵工具加深工具简单工具的区别 先来简单概述一下3个工具的作用,再讲述区别 1.海绵工具 主要是用来突出图片主体部分,调整局部饱和度主要吸取黑白以外的部分 分为去色和加色两种模式(即降低饱和度.增 ...
- 苹果字体怎么改_苹果手机:普及:此次Filzajailed ROOT和越狱工具的区别
如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多知识的,这些知识很多小伙伴一般都是不知道的,就好比最近就有很多小伙伴们想要知道普及:此次Filzajailed ROOT和越狱工 ...
- CANoe与CANalyzer工具的区别
CANoe与CANalyzer工具的区别 CANoe和CANalyzer都是多总线工具,但是 CANoe的成本却相应的比CANalyzer高出将近一倍的价格,因此,很多厂家希望在了解二者的区别,在一些 ...
- ETL工具与调度工具的区别(一)
ETL工具与调度工具的区别(一) 1.ETL工具:ETL为 Extract-Transform-Load 的缩写,三个单词描述了将数据从源端经过抽取(extract).转换(transform).加载 ...
- ETL工具大全:Kettle、DataCleaner、canal、DataX
数据仓库 传统数据库 数据仓库 特征 用于操作处理,面向OLTP 用于信息处理,面向OLAP 用户 DBA.开发 经理.主管.数据分析人员 功能 日常操作 长期信息需求.决策支持 DB设计 基于ER模 ...
- pmp直方图与帕累托图的区别_PMP之质量管理工具图表区别
质量管理 8理念 1.项目经理应就执行组织的标准.政策和程序推荐改进措施:此举深受管理层欢迎. 2. 对"制约三要素"的任何变更都考虑质量. 3. 在活动或工作包完成时应检查质量. ...
- flink ETL和ETL工具啥区别
常见的ETL工具有sqoop,nifi,kettle 等等,那么有了这些ETL工具,为什么还需要flink来做etl工作呢? 这是因为ETL工具只能做数据传输, flink则可以通过api或者udf/ ...
- datax的工具配置oracle,完全小白级DataX安装配置过程详解
apt-get install openjdk-7-jdk Linux小白,创建和删除文件夹都现问度娘学会的小白,最近被勒令研究一下DataX,当时一脸蒙X,根本木有听过吖,但是领导吩咐了就得办吖,问 ...
- 自动化测试和性能测试工具的区别
selenium 和 qtp这类自动化测试工具无法生成负载,而loadrunner性能测试工具就能实现 取决于对象识别技术决定 协议模拟是性能测试的核心技术
最新文章
- R语言字符串处理函数
- 如何找回被create or replace覆盖的PL/SQL对象
- java实现迷宫算法--转
- QSlider QLCDNumber 最常用的函数和 信号槽 (以后用到在加)
- CSS之media Query
- 面向对象的关系数据库设计
- 利用Glibc库-ORIGIN-提权
- pandas Dataframe/Series 设置保留小数位数
- wine运行软件检测不到u盘_PE吧“U盘助理”——启动U盘制作图文教程-
- ps安装 Photoshop CC2017 安装,cutterman下载安装,ps简单设置
- 一、Spark安装与部署
- yolov3原理解析及代码流程
- DCT 离散余弦变换及蝶形算法
- 2022全新车型汽车配置参数数据库大全
- 运营书籍:从零开始做
- uni-app自定义全屏切换组件
- 单片机继电器控制实验程序C语言,继电器控制实验
- Rust 学习3, 枚举,集合
- 【后厂村】打工人的愿望
- 解决layui的table数据重载reload where参数会保留上次条件的问题
热门文章
- 唯样商城:ROHM——反向恢复时间trr的影响逆变器电路的优化
- win10自带的截屏和录屏
- 图片或文件Blob、File、Base64之间的相互转换
- 共模雷击不过问题分析
- 大疆 M300RTK无人机 Android开发 避障功能
- 如何成为web前端大神以及进阶之路
- 基于遗传算法的电动汽车有序充电优化调度 利用遗传算法对电动汽车有序充电进行优化;优化目标包括充电费用最低,电动汽车充到足够的电,负荷峰谷差最小
- 运营商数据分析:2018年一季度财务及运营数据比拼
- 报错解决:Ubuntu插入硬盘不能挂载,Error mounting /dev/sdb1 at /media/×××/×××: unknown filesystem type ‘exfat’
- 6.2.5图的基本操作