【测试入门序列】如何用 DataX 导数据
来源:互联网 发布:网络最有名的改编歌曲 编辑:程序博客网 时间:2024/05/16 01:33
测试中有这样一种需求:为了测试更有针对性,需要拿业务数据来测试。所以需要把业务的数据复制一份出来,加载到自己本地的测试库中。
对于小数据量的情况,直接用 mysqldump 把数据表全部转换成 SQL 语句,然后导入到新库即可。
对于大数据量的情况, mysqldump 搞不定(?仅直观感觉,数据膨胀太大了,文件会超级大,导出过程中任何异常都可能导致导出中断),需要用新工具,例如阿里巴巴的 DataX
DataX 的使用非常简单,基本按照教程操作即可:
安装
tar zxvf datax.tar.gzchmod -R 755 datax
运行
cd datax/binpython datax.py ../job/job.json
其中,job.json是自带的一个例子配置文件,没什么具体用途。如果希望将一个库的数据复制到另外一个库,可以用下面的配置文件 db2db.json
运行方法不变
python datax.py ../job/db2db.json
db2db.json 只是一个例子,更多详细的配置参见 DataX 的文档
- https://github.com/alibaba/DataX/blob/master/mysqlreader/doc/mysqlreader.md
- https://github.com/alibaba/DataX/blob/master/mysqlwriter/doc/mysqlwriter.md
重点关注channel, splitPk,column 这几个参数。
注意
需要注意的是,并发复制模式下,DataX 并不保证源和目的数据的严格一致。
针对多线程的一致性快照需求,在技术上目前无法实现,只能从工程角度解决,工程化的方式存在取舍,我们提供几个解决思路给用户,用户可以自行选择:
使用单线程同步,即不再进行数据切片。缺点是速度比较慢,但是能够很好保证一致性。
关闭其他数据写入方,保证当前数据为静态数据,例如,锁表、关闭备库同步等等。缺点是可能影响在线业务。
附:db2db.json
{ "job": { "content": [ { "reader": { "name": "mysqlreader", "parameter": { "column": ['*'], "connection": [ { "jdbcUrl": ["jdbc:mysql://127.0.0.1:20833/blue?user=test1&password=test1"], "table": ['t6'] } ], "username": "test1", "password": "test1", "where": "" } }, "writer": { "name": "mysqlwriter", "parameter": { "writeMode": "insert", "username": "test1", "password": "test1", "column": ['*'], "splitPk": "c2", "session": [ ], "preSql": [ "delete from t6" ], "connection": [ { "jdbcUrl": "jdbc:mysql://127.0.0.1:20833/test?user=test1&password=test1", "table": ['t6'] } ] } } } ], "setting": { "speed": { "channel": "1" } } }}
0 0
- 【测试入门序列】如何用 DataX 导数据
- 如何用 Pytbull 测试 suricata?
- 如何用monkey测试IOS
- ab测试是什么?如何用ab测试
- 如何用ping 命令简单测试网速
- 如何用ping测试网络连接
- 如何用ping 命令简单测试网速
- 如何用QUnit来测试JavaScript代码
- 如何用QUnit来测试JavaScript代码
- 如何用QUnit来测试JavaScript代码
- 如何用SpringData连接Redis简单测试
- 如何用Jmeter做压力测试
- 如何用JUnit4测试spring service
- 如何用Jmeter做压力测试
- 如何用Jmeter做压力测试
- 如何用QUnit来测试JavaScript代码
- 如何用Moco-runner搭建测试服务器?
- 如何用Selenium做自动化测试
- __attribute__ 详解
- Android apk瘦身之使用TinyPng压缩图片
- MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建
- OpenSSL基础
- 学习Git
- 【测试入门序列】如何用 DataX 导数据
- Spring常用注解
- CSS3 Flexbox布局
- 心理学定律第三篇
- windows下 composer常见问题及处理
- xml / json解析
- su和sudo命令的区别
- android studio中新建assets,用webview加载本地图片
- 批量导入(单文件的文件上传 + 解析上传的csv文件 ,导入至数据库 ,反馈信息)