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

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 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 以其完善的校验能力、产品体验、校验速度、稳定性及数据源环境的广泛适配性成为了市面上比较出彩的校验工具,推荐大家使用。

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
SQL 存储 分布式计算
从0到1介绍一下开源大数据比对平台dataCompare
从0到1介绍一下开源大数据比对平台dataCompare
1179 0
|
数据采集 分布式计算 Hadoop
开源数据质量解决方案——Apache Griffin入门宝典(上)
开源数据质量解决方案——Apache Griffin入门宝典
2526 0
|
SQL 大数据 关系型数据库
开源大数据比对平台(dataCompare)新版本发布
开源大数据比对平台(dataCompare)新版本发布
984 0
|
SQL 存储 数据采集
【技术分享】元数据与数据血缘实现思路
【技术分享】元数据与数据血缘实现思路
7544 0
|
JSON NoSQL Redis
redis-full-check校验工具
redis-full-check是阿里云Redis&MongoDB团队开源的用于校验2个redis数据是否一致的工具,通常用于redis数据迁移后正确性的校验。
26875 0
|
存储 分布式计算 算法
大数据中一致性检查
【10月更文挑战第20天】
1161 2
|
关系型数据库 MySQL 数据库
【MySQL】手把手教你MySQL数据同步
【MySQL】手把手教你MySQL数据同步
|
数据管理 Devops 关系型数据库
NineData社区版正式上线,支持一键本地化部署!
3月10日,玖章算术正式发布NineData社区版,这是一款免费、一键安装的数据管理解决方案,支持本地化部署,保障数据隐私与合规。它包含数据库DevOps、数据复制和数据库对比三大核心功能,适用于MySQL、PostgreSQL和Doris等数据库的数据迁移。基于Docker技术,用户可通过简单命令完成安装,特别适合内网环境及中小企业使用,助力高效的数据管理和成本控制。
935 1
|
消息中间件 弹性计算 固态存储
256变4096:分库分表扩容如何实现平滑数据迁移?
本文作者就一个高德打车弹外订单系统进行了一次扩分库分表和数据库迁移。
256变4096:分库分表扩容如何实现平滑数据迁移?
|
SQL 运维 关系型数据库
阿里云DTS踩坑经验分享系列|数据不一致修复大法
阿里云数据传输服务DTS在帮助用户迁移数据、同步数据时,在某些复杂场景下会出现源库与目标库数据不一致的问题,造成数据错误,给用户带来困扰。由于数据不一致的问题很难完全避免,为了及时修复不一致的数据,DTS产品推出数据订正功能,保障用户在同步\迁移数据时的数据一致性。本文介绍了产生数据不一致的一些典型场景,并重点阐述了如何使用DTS数据订正功能来修复不一致的数据。
1448 4