推荐一款好用的数据一致性校验工具

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: NineData 是玖章算术旗下的多云数据管理平台,它是一款即开即用的数据管理 SAAS 服务。当前 NineData 已经支持数十种常见同异构数据源(MySQL、SQLServer、CK 等)之间的结构对比、数据对比及数据订正能力。NineData 结构及数据对比作为独立服务,可以灵活支持 IDC、云主机自建及云托管数据源的数据一致性校验及快速修复。从使用体验、产品能力、稳定性及性能等维度综合来看,NineData 是一款综合实例比较强、比较难得的校验工具。

一、为什么需要做数据一致性校验

在数据的服务生命周期过程中,经常会因为数据迁移、主从复制、数据集成等原因产生数据流动及复制。在数据复制过程中,由于人为误操作、软件bug或硬件故障等原因,无法完全规避复制数据的准确性。如何有效保障复制数据的一致性变得至关重要。

当前市面上专门用于解决“数据一致性校验”的工具比较匮乏。很多企业依然在使用:人工抽检的原始解决方案,数据一致性导致的业务故障频发。

举一个客户遇到CASE,客户是一个电商SAAS服务提供商。如同其他SAAS服务,出于成本优化及大租户稳定隔离的业务诉求,经常会涉及用户数据的跨机搬迁。当前,客户并没有对应的数据一致性校验工具,所以,每次迁移完成,都是人工抽核心表进行数据量的检测。正应了“常在河边走,哪有不湿鞋”的俗语,有一次迁移一个大商家数据的时候,在没有完整数据一致性校验的情况下,直接切换商家业务,最终出现因迁移数据【订单】不一致,导致的商家业务故障,给大商家造成比较大的业务影响及品牌影响。

数据一致性校验的重要性.png

数据一致性校验的重要性

二、一个好的工具应该具备哪些能力

同行们血淋淋的经验告诉我们,拥有一个好的数据一致性校验工具是必不可少的【关键时刻能救命~】。那么究竟我们需要怎么样的工具呢。小编认为一款校验工具至少应该具备如下六个特质。
数据一致性校验工具是必不可少的能力.png

数据一致性校验工具是必不可少的能力

1. 能做结构一致性校验

利用表存储数据,几乎成为大部分数据存储的通用标准。所以表结构能否正确迁移直接影响迁移数据的一致性。同时,数据库提供了诸多非表对象,包括视图、存储过程、函数、触发器等。用户一般基于这些对象实现轻量的业务逻辑,所以非表对象的能否成功迁移也会直接影响业务的迁移。由此,小编认为,具备结构一致性的快速校验是校验工具的基础能力。

2. 完善的数据一致性校验

除了结构,数据无疑是另一关键的校验内容。数据存储支持丰富的数据类型,差异化的数据类型默认值、数据格式、字符集以及时区等。因此,能否支持完善的数据类型,屏蔽源及目标数据源在数据范围、数据格式、字符集及时区上的差异,也成为数据校验工具的核心能力。

3. 快速定义不一致内容

数据校验的目的是为了验证数据一致性,并针对不一致数据进行快速补救。所以,能够定位并提供具体不一致的内容也是数据校验工具的重要特质。

4. 快速订正数据的能力

当数据校验定位到不一致内容后,是否能够提供数据订正脚本帮助用户快速修复不一致数据也是校验工具必不可少的基础能力。

5. 校验速度要快,“天下武功唯快不破”

小编认为校验速度够快也是核心要求。尤其在数据迁移、数据集成场景,在这种场景下,数据校验会影响业务停机时间,或者下游数据生产基线【例如,报表生产时间】,对校验时间要求较苛刻。

6. 对数据库的性能影响要可控

校验工具一般都会高并发读取数据库的数据,此时,数据库同时承担着线上的业务应用。如何有效平衡数据校验速度以及数据库稳定性是校验工具应该解决的重要命题。

三、市面上都有哪些常见的方案

1. NineData

官网地址:https://www.ninedata.cloud/

NineData是玖章算术旗下的多云数据管理平台,它是一款即开即用的数据管理SAAS服务。当前NineData 已经支持数十种常见同异构数据源(MySQL、SQLServer、CK等)之间的结构对比、数据对比及数据订正能力。NineData结构及数据对比作为独立服务,可以灵活支持IDC、云主机自建及云托管数据源的数据一致性校验及快速修复。从使用体验、产品能力、稳定性及性能等维度综合来看,NineData是一款综合实例比较强、比较难得的校验工具。

2. Percona-toolkit

percona-toolkit是由数据库厂商percona提供的工具集,其中: pt-table-checksum、 pt-table-sync 提供了MySQL主从复制一致性校验及修复的能力。Pt-table-checksum主要通过在MySQL主中运行checksum query,然后利用MySQL主从复制,query流转到slave中,进行check对比。由于,需要借助MySQL主从复制的能力,percona-toolkit只能应用主从复制场景。其优势在于,当前工具使用比较广泛,成熟度比较高。

3. 云厂商迁移校验工具

配合数据迁移工具,部分云厂商会提供对应的一致性校验能力。当前云厂商提供的校验能力,一般只支持数据校验,不支持结构校验,且数据订正能力比较弱。由于厂商的校验工具是跟迁移工具配合使用,所以,对于不使用迁移工具的数据源,当前不能提供数据校验能力。同时,其对云数据库的迁移支持较好,但是对于云主机上自建数据库以及IDC自建数据库支持不好或不支持。

常见数据一致性方案推荐(NineData).png

常见数据一致性方案推荐(NineData)

四、NineData,即开即用的数据一致性校验服务

正如前面所述的推荐指数来看,NineData提供的结构对比、数据对比功能确实是综合实力比较强,也比较推荐的一款产品。除了基础的全量对比外,NineData还提供了快速对比、周期性对比及不一致复检等多种对比形态。

快速对比,相较于全量对比,快速对比主要用以校验窗口期比较短的情况。快速对比会对数据量、数据分布进行校验,同时会随机抽样一定的比例进行校验。
周期性对比,自定义对比频率及对比方式,NineData会自动周期性调度对比任务进行结构及数据对比。小编理解这个功能应该用于长期数据复制场景的数据对比,例如主从复制、数据容灾、数据多活或数据仓库实时集成等场景。
不一致复检,即针对上一次对比结果中不一致数据进行重新复检。这个功能主要应用于数据订正、主从复制【主从延迟】场景下,进行快速的复检。

接下来,带大家感受下这个产品的使用体验。

1. 配置对比任务

整个任务配置过程很简单,主要分为三个步骤:

选择数据源,即配置对比的源实例及目标实例;
选择对比对象,即配置需要对比的对象,对比对象可以选择库、表|非表、列;
配置映射关系及过滤条件,即配置对比表的映射关系;或者通过配置SQL过滤条件,可以只对关键数据进行对比。
步骤一:配置对比数据源.png

步骤一:配置对比数据源

步骤二:选择对比对象.png

步骤二:选择对比对象

步骤三:映射关系配置.png

步骤三:映射关系配置

2. 对比结果

NineData会提供完善的对比结果,其会定位不一致内容。针对不一致内容,提供快速订正脚本。

结构对比,对比总览.png

结构对比,对比总览


结构对比,展示不一致内容.png

结构对比,展示不一致内容

数据对比,对比结果.png

数据对比,对比结果


数据对比,不一致详情.png

数据对比,不一致详情

五、最后

数据作为企业的核心资产,数据的准确性关于业务可靠性及企业品牌口碑。为此,还是推荐大家在线上主从环境、数据迁移、数据复制等场景中,配套使用可靠的数据校验工具。平台工具 NineData 以其完善的校验能力、产品体验、校验速度、稳定性及数据源环境的广泛适配性成为了市面上比较出彩的校验工具,推荐大家使用。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
存储 监控 算法
确保大文件上传数据完整性和准确性的方法
【10月更文挑战第17天】通过以上多种方法的综合运用,可以有效地确保大文件上传数据的完整性和准确性,为用户提供可靠的上传体验。同时,随着技术的不断发展,还需要不断地探索和创新,以适应不断变化的需求和挑战。
|
2月前
|
canal 缓存 NoSQL
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
根据对一致性的要求程度,提出多种解决方案:同步删除、同步删除+可靠消息、延时双删、异步监听+可靠消息、多重保障方案
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
|
1月前
|
架构师 Java 数据中心
二阶段提交:确保分布式系统中数据一致性的关键协议
【10月更文挑战第16天】在分布式系统中,数据一致性的维护是一个至关重要的挑战。为了应对这一挑战,二阶段提交(Two-Phase Commit,简称2PC)协议应运而生。作为一种经典的分布式事务协议,2PC旨在确保在分布式系统中的所有节点在进行事务提交时保持一致性。
37 0
|
4月前
|
存储 SQL 关系型数据库
数据库事务:确保数据完整性的关键20
【7月更文挑战第20天】事务是数据库操作的基本逻辑单位,确保数据一致性。ACID原则包括:原子性(操作全成或全败),一致性(事务前后数据合法性),隔离性(并发操作互不影响),持久性(提交后更改永久保存)。MySQL的InnoDB引擎支持事务,通过undo log实现回滚,redo log确保数据持久化。开启事务可使用`BEGIN`或`START TRANSACTION`,提交`COMMIT`,回滚`ROLLBACK`。
177 70
|
5月前
|
数据采集 分布式计算 DataWorks
MaxCompute产品使用问题之如何确保数据完整性验证有效
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5月前
|
存储 安全 算法
MD5的日常实践应用:确保数据完整性与基础安全校验
**MD5概览:** 作为过时但仍然流行的散列函数,MD5用于生成数据固定长度的散列,常用于文件完整性校验和非安全密码验证。虽因易受碰撞攻击而不适于安全用途,但在低敏感场景下仍有应用。例如,Python代码展示如何计算文件MD5校验和及模拟MD5密码验证。不过,对于高安全需求,推荐使用SHA-256等更安全的算法。【6月更文挑战第17天】
520 1
|
6月前
|
算法 安全 程序员
揭秘分布式系统:日志复制如何保障数据一致性?
本文介绍了分布式系统中的日志复制技术,这是保证高可用性和数据一致性的重要手段。以Raft算法为例,文章阐述了Leader如何将客户端请求复制到Follower的日志中:Leader首先记录请求,然后通过RPC发送给Follower,等待ACK确认,必要时进行重试。当多数Follower确认后,Leader提交日志并通知Follower。文中还提到了网络分区和日志一致性等挑战,以及应对策略,如超时机制、领导选举、日志匹配和压缩。最后,强调了日志复制在面对故障时确保系统一致性和可用性的作用。
270 4
|
6月前
|
数据库 数据库管理
理解数据库的ACID原则:确保数据完整性与一致性的基石
【5月更文挑战第20天】ACID原则是数据库事务处理的核心,包括原子性、一致性、隔离性和持久性。原子性保证事务操作全完成或全不完成,保持数据完整;一致性确保事务前后数据库保持一致性状态,不破坏完整性约束;隔离性防止并发事务相互影响,通过锁等技术实现;持久性则保证事务提交后的修改永久保存,即使系统故障也能恢复。这些原则确保了数据的可靠性和安全性。
|
5月前
|
canal 缓存 关系型数据库
高并发场景下,6种方案,保证缓存和数据库的最终一致性!
在解决缓存一致性的过程中,有多种途径可以保证缓存的最终一致性,应该根据场景来设计合适的方案,读多写少的场景下,可以选择采用“Cache-Aside结合消费数据库日志做补偿”的方案,写多的场景下,可以选择采用“Write-Through结合分布式锁”的方案,写多的极端场景下,可以选择采用“Write-Behind”的方案。
1308 0
|
6月前
|
监控 NoSQL Redis
RedisShake如何处理数据同步过程中的冲突和一致性问题
RedisShake保障数据同步一致性,支持全量和增量同步,处理并发冲突(利用乐观锁机制),并进行数据校验。遇到故障能自动恢复和重试,保证不间断同步。同时,提供监控和日志功能,便于识别和解决问题,确保数据完整性。
228 0