在上篇「1分钟实现Redis数据迁移任务」的文章中,介绍了NineData在Redis迁移场景下的性能和优势。因为数据在主备、多云和多区域环境之间的迁移流动,难免会产生数据一致性的问题,而结构与数据不一致往往是导致故障的原因之一。所以,如何快速准确地完成 Redis 数据对比成为了一个重要的问题。
现在,NineData 在支持业务不中断的前提下,实现了配置简单、高效和安全的数据对比服务,很好地保障了各场景下因数据迁移导致数据不一致的问题。经实测,NineData可在 1 分钟内完成 800 万个key( 2GB,涉及所有类型)的数据对比,平均对比速率为 13万/秒,并且找出不一致的key,生成详细的对比报告,帮助您快速定位和修复不一致的数据。
目前,数据对比主要的方式有:通过解析遍历RDB二进制文件、SCAN遍历实例以及一些开源工具进行数据对比,对于这些方式的对比,会存在一些问题:
兼容性差,不同版本的Redis,RDB文件格式发生变化,对于解析RDB文件方式的对比,需要开发适配。
- 可用性差,对比完成之后,无法自动生成修复操作。
- 可靠性差,对于开源工具,对比异常后,无法断点。
- 运维性差,不能进行进度查看、暂停、告警等操作。
NineData高效的数据对比方案
NineData 在提供了「数据复制」和「可视化管理」的同时,又进一步拓展了Redis对比的能力,很好地满足了Redis对于数据一致性的要求。相较于传统对比,NineData 的Redis数据对比能力有如下优势:
- 简单易用:一分钟即可完成任务配置,并全自动化完成对比任务。
- 强劲性能:通过多线程、队列优化、流式内存管理等核心技术,对比性能达到 13万/秒,有效保障对比效率。
- 完善的功能:支持Redis数据的一致性对比,同时提供了一次性对比、周期性对比、快速对比等适合多种使用场景的对比功能,并且也提供了不一致数据修复的能力。
- 可视化界面:拥有简洁直观的用户界面,无需复杂的设置即可进行数据对比,并且以直观的图表和报告呈现对比结果,使您轻松理解数据差异。
- 安全可靠:NineData 平台通过国家公安部三级网络安全等级保护认证,为企业的信息安全提供高等级的防护。
通过上述优势,保证了 NineData 在Redis对比场景下的领先性。另外,NineData 还提供了对比功能,包含全量、快速和不一致复检的对比方式,并且也支持不同的对比频率。在迁移或复制结束后,通过对比,有效地保障数据的质量。
对比链路的配置
配置任务名称,选择要对比的源数据源和目标数据源。
对比频率,可选择一次性对比或按照需要定期对比。
对比方式,可选择全量数据对比或自定义抽样比例对比。
选择对比对象
选择对比对象:可选择不同DB进行对比。
配置映射对象
配置映射:可以把源实例的多个数据库映射到目标实例指定的1个或多个数据库。
预检查
通过完善的检查项,保证了对比任务的稳定性。到此,我们就完成了一个快速、高效的Redis对比任务的配置,当完成配置并启动任务后,NineData就实现全自动化的数据对比。
同时,为了提供更好的对比体验,NineData针对对比过程提供了完善的观测、干预能力。其不但提供对象对比的详细状态、进展、详情,还通过监控和日志透露后台线程的内部执行情况,帮助用户全方位追踪对比进展。同时,还针对运行过程中可能出现的异常情况,提供告警和对比暂停能力,让用户能够自主快速地诊断并修复异常,保障对比的稳定性。对比期间的信息:
在监控中可以看到对比的RPS,实时了解对比的性能。除了监控外,如果遇到数据不一致的情况,在操作列中则会出现「查看详情」按钮。进去可以看到具体key的不一致信息:
最后,在操作列中可以看到「SQL」按钮,会显示提供修复不一致数据的操作:
总结
NineData 数据对比是一款云原生数据对比产品,具备每秒处理100万笔记录的高效能力。它提供了一站式支持,适用于IDC自建、云主机自建以及云数据库。并支持多种数据库,除了Redis之外,还包括MySQL、SQL Server、PostgreSQL、MongoDB、ClickHouse、Doris等,可进行数据库间的结构对比和数据对比。
此外,NineData还支持同构和异构数据源之间的数据一致性校验。用户可以选择结构对比、全量对比、抽样对比、周期性对比等多种对比方式。NineData能够动态监测数据库负载,自适应调整对比速度,确保数据库的稳定性。丰富的数据源支持使得NineData能够满足不同客户的需求。此外,NineData在结构对比方面拥有业界领先的覆盖度,对象类型及属性覆盖度业界 NO.1。