数据迁移后,验证数据一致性与准确性的测试方法
需求说明
1、数据从mysql8.0通过datax的方式迁移到atomdata数据库(一款OLAP类型数据库,兼容mysql)
2、mysql8.0表cyry、hjry的数据全部迁移到atomdata中,2张表有关联关系(示例:cyry、hjry可通过name关联)
迁移方法
见“datax”迁移数据的方法
- mysql8中创建2张表,并生成要求的数据量行数
- atomdata中创建2张与mysql8相同的表和表结构
- 安装datax,并进行数据同步,且数据均需同步成功
- mysql8和atomdata中分别通过select count(*) from xx验证总表行数
- mysql8和atomdata中验证表结构和表内容均需一致
迁移后验证
相同的SQL语句,分别查询mysql和atomdata上执行,并导出查询的结果数据
验证条件一
测试用例:验证SQL
select cy.cy_id,cy.cy_name,hj.hj_id,hj.hj_name from cyry as cy left join hjry as hj on cy.cy_name=hj.hj_name order by cy.cy_id ;
执行结果,在mysql和atomdata 的结果数据是否一致
测试方法:
(1)通过命令,将如上的SQL,分别在mysql和atomdata数据中执行,并将结果进行下载,保存为csv的文件
【命令解读】mysql -h 数据库IP地址 -P 端口 -u 用户名 -p 库名 -e "执行的SQL" >存放路径/xxx.csv
#atomdata mysql -h 192.168.30.103 -P 3001 -u kepler -p syw_security -e "select cy.cy_id,cy.cy_name,hj.hj_id,hj.hj_name from cyry as cy left join hjry as hj on cy.cy_name=hj.hj_name order by cy.cy_id ; " >/datax/job/atomdata.csv #mysql8.0 mysql -h 192.168.30.103 -P 3306 -u root -p syw_security -e "select cy.cy_id,cy.cy_name,hj.hj_id,hj.hj_name from cyry as cy left join hjry as hj on cy.cy_name=hj.hj_name order by cy.cy_id ; " >/datax/job/mysql.csv
(2)通过如下命令,查看mysql数据库和atomdata数据的数据均要一致
#安装atomdata数据库的服务器上执行 cat atomdata.csv | sort | uniq -c | wc -l
cat atomdata.csv | wc -l
#安装mysql数据的服务器上执行
cat mysql.csv | sort | uniq -c | wc -l
cat mysql.csv | wc -l
#mysql与atomdata的数据库放在同一个服务器上,并执行下面的语句
cat mysql.csv atomdata.csv | sort | uniq -c | wc -l
预期结果:
1、测试结果的数据量均要一致,说明数据在迁移的过程中没有出现丢失数据
2、根据自己的情况,编写一些SQL,同一个SQL分别在两个数据库中运行,来验证两个数据库的查询结果必须一致即可。
1.作者:Syw 2.出处:http://www.cnblogs.com/syw20170419/ 3.本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 4.如果文中有什么错误,欢迎指出。以免更多的人被误导。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2019-05-19 Requests的基础学习
2017-05-19 MYSQL—— 基础入门,select 查询涉及到的关键字组合详解(进阶篇)
2017-05-19 MYSQL—— 基础入门,增、删、改、查(基础篇)