mysql数据对比工具
导读:笔者最近在采用 trino 代替旧有方案进行媒体接口数据拉取。需通过将 trino 拉取的数据入到测试库,并与旧方案拉取到生产库中的数据进行对比从而验证逻辑准确性。在进行数据对比时为提高效率因此...
2024.11.151. Debezium是一个开源项目
2.为捕获数据更改(change data capture,CDC)提供了一个低延迟的流式处理平台
3.安装并且配置Debezium去监控你的数据库,应用就可以消费对数据库的每一个行级别(row-level)的更改。只有已提交的更改才是可见的,所以不用担心事务(transaction)或者更改被回滚(roll back)。Debezium为所有的数据库更改事件提供了一个统一的模型,所以不用担心每一种数据库管理系统的错综复杂性。另外,由于Debezium用持久化的、有副本备份的日志来记录数据库数据变化的历史,因此,你的应用可以随时停止再重启,而不会错过它停止运行时发生的事件,保证了所有的事件都能被正确地、完全地处理掉。
也就是说应用可以停止,只要是Debezium不停止,那么就不会出现丢数据的地方,Debezium会把数据库的变化在,应用停止的期间给保存到硬盘上,持久化起来,这样就不会丢数据.
4.Debezium可以适用于多种数据库,需要结合Kafka一起使用,在Kafka之上,并提供与Kafka Connect兼容的连接器
5.Debezium使用场景:
a.数据库数据更改后的一些额外工作:
在数据库中的更改被提交后,做一些额外的工作:更新搜索索引,更新缓存,发送通知,运行业务逻辑,等等。这种情况通常称为双写(dual-writes),因为应用没有在一个事务内写多个系统。这样不仅应用逻辑复杂难以维护,而且双写容易丢失数据或者在一些系统更新成功而另一些系统没有更新成功的时候造成不同系统之间的状态不一致。使用捕获更改数据技术(change data capture,CDC),在源数据库的数据更改提交后,这些额外的工作可以被放在独立的线程或者进程(服务)中完成。这种实现方式的容错性更好,不会丢失事件,容易扩展,并且更容易支持升级
b.数据库中多个应用之间贡享:
当多个应用共用同一个数据库的时候,一个应用提交的更改通常要被另一个应用感知到。一种实现方式是使用消息总线,尽管非事务性(non-transactional)的消息总线总会受上面提到的双写(dual-writes)影响。但是,另一种实现方式,即Debezium,变得很直接:每个应用可以直接监控数据库的更改,并且响应更改。
c.保证多个系统的数据同步:
数据通常被存储在多个地方,尤其是当数据被用于不同的目的的时候,会有不同的形式。保持多
系统的同步是很有挑战性的,但是可以通过使用Debezium加上简单的事件处理逻辑来实现简单
的ETL类型的解决方案
6.然后看一下和canal 以及 Maxwell的对比
a.Debezium支持全DDL(create/alter/rename/drop/truncate)和DML(insert/update/delete)的 操作日志同步;
b.Maxwell不支持truncate命令同步c.支持使用数据的主键或唯一键作为消息体的key(可以根据该唯一键做Topic分区进行负载均 衡);d.支持快照模式(snapshot.mode)全量同步;(Canal不支持全量,Maxwell支持bootstrap全量)e.还支持多种数据源(MySQL,Oracle,Postgre,MongoDB,SqlServer,DB2
Cassandra),
f.比Canal,Maxwell功能更强大;社区活跃,与kafka connect配合使用如虎添翼。
缺点:
1.需要kafka connect依赖;2.消息体内容太多,对消息队列压力较大;(可使用transforms 模块进行压缩和定制)3.每张表对应一个topic,管理起来不够方便(canal,maxwell则可以使用正则来处理); (可使用transforms 模块进行压缩和定制)
导读:笔者最近在采用 trino 代替旧有方案进行媒体接口数据拉取。需通过将 trino 拉取的数据入到测试库,并与旧方案拉取到生产库中的数据进行对比从而验证逻辑准确性。在进行数据对比时为提高效率因此...
2024.11.15简单数据查询操作增删改查是数据表操作的重要组成部分,尤其是数据表的查询更是数据库与各类应用交互的频繁操作之一。本文课主要介绍简单数据查询语句。查询语句基本语法查询语句是实现数据查询的SQL语句,用于实...
2024.11.15概述优化SQL,是DBA常见的工作之一。如何高效、快速地优化一条语句,是每个DBA经常要面对的一个问题。在日常的优化工作中,我发现有很多操作是在优化过程中必不可少的步骤。然而这些步骤重复性的执行,又会...
2024.11.151.准备CREATE DATABASE mahaiwuji;USE mahaiwuji;2.创建数据表CREATE TABLE goods1 ( id INT COMMENT ‘编号‘, gname ...
2024.11.15点击文末“了解更多”获取dbForge Studio for MySQL安装包及更多资料本文详细概述了如何使用不同的方法和工具(包括用于MySQL的命令行,工作台和dbForge Studio)在My...
2024.11.15