共计 2617 个字符,预计需要花费 7 分钟才能阅读完成。
一、为什么须要做数据一致性校验
在数据的服务生命周期过程中,常常会因为数据迁徙、主从复制、数据集成等起因产生数据流动及复制。在数据复制过程中,因为人为误操作、软件 bug 或硬件故障等起因,无奈齐全躲避复制数据的准确性。如何无效保障复制数据的一致性变得至关重要。
以后市面上专门用于解决“数据一致性校验”的工具比拟匮乏。很多企业仍然在应用:人工抽检的原始解决方案,数据一致性导致的业务故障频发。
举一个客户遇到 CASE,客户是一个电商 SAAS 服务提供商。如同其余 SAAS 服务,出于老本优化及大租户稳固隔离的业务诉求,常常会波及用户数据的跨机搬迁。以后,客户并没有对应的数据一致性校验工具,所以,每次迁徙实现,都是人工抽外围表进行数据量的检测。正应了“常在河边走, 哪有不湿鞋”的俗语,有一次迁徙一个大商家数据的时候,在没有残缺数据一致性校验的状况下,间接切换商家业务,最终呈现因迁徙数据【订单】不统一,导致的商家业务故障,给大商家造成比拟大的业务影响及品牌影响。
二、一个好的工具应该具备哪些能力
同行们血淋淋的教训通知咱们,领有一个好的数据一致性校验工具是必不可少的【关键时刻能救命~】。那么到底咱们须要怎么样的工具呢。小编认为一款校验工具至多应该具备如下六个特质。
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,即开即用的数据一致性校验服务
正如后面所述的举荐指数来看,NineData 提供的构造比照、数据比照性能的确是综合实力比拟强,也比拟举荐的一款产品。除了根底的全量比照外,NineData 还提供了疾速比照、周期性比照及不统一复检等多种比照状态。
- 疾速比照 ,相较于全量比照,疾速比照次要用以校验窗口期比拟短的状况。疾速比照会对数据量、数据分布进行校验,同时会随机抽样肯定的比例进行校验。
- 周期性比照, 自定义比照频率及比照形式,NineData 会主动周期性调度比照工作进行构造及数据比照。小编了解这个性能应该用于长期数据复制场景的数据比照,例如主从复制、数据容灾、数据多活或数据仓库实时集成等场景。
- 不统一复检, 即针对上一次比照后果中不统一数据进行从新复检。这个性能次要利用于数据勘误、主从复制【主从提早】场景下,进行疾速的复检。
接下来,带大家感触下这个产品的应用体验。
1. 配置比照工作
整个工作配置过程很简略,次要分为三个步骤:
- 抉择数据源,即配置比照的源实例及指标实例;
- 抉择比照对象,即配置须要比照的对象,比照对象能够抉择库、表|非表、列;
- 配置映射关系及过滤条件,即配置比照表的映射关系;或者通过配置 SQL 过滤条件,能够只对要害数据进行比照。
2. 比照后果
NineData 会提供欠缺的比照后果,其会定位不统一内容。针对不统一内容,提供疾速勘误脚本。
五、最初
数据作为企业的外围资产,数据的准确性对于业务可靠性及企业品牌口碑。为此,还是举荐大家在线上主从环境、数据迁徙、数据复制等场景中,配套应用牢靠的数据校验工具。平台工具 NineData 以其欠缺的校验能力、产品体验、校验速度、稳定性及数据源环境的宽泛适配性成为了市面上比拟出彩的校验工具,举荐大家应用。