本人在导数据的时候发生了很多问题,比如千百万的数据量的表导了N久都没导完,要么就是导完了有一部分失败,又或者是表明对不上号,字段对不上,然后导出来的sql文件过大导致想打开文件修改一下sql文件的表明数据库名都打不开,很是难受,在别人的推荐下发现了这款工具,真的速度很快(没开车哦~)

接下来附上DataX的使用方式:

首先附上官方文档的位置:Github地址

java使用xstream 大疆_java使用xstream 大疆

注意环境 需要JDK1.8,mavaen Python 一定要使用2.6的 不要3+的 一定要配置好环境变量

接着配置我们的 json 文件,该 json 文件用来指定我们需要进行导入的数据源,数据写入的地点,以及连接信息等

接下来放上本人在用的配置文件,重要信息做了隐藏处理,大家可以根据自己的场景进行修改即可

{
    "job":{
        "setting":{
            "speed":{
                "channel":6
            },
            "errorLimit":{
                "record":0,
                "percentage":0.02
            }
        },
        "content":[
            {
                "reader":{
                    "name": "mysqlreader",
                    "parameter":{
                        "username":"填入你自己的账号密码",
                        "password":"填入你自己的账号密码",
                        "column":[  //列明
                            "ID",
                            "AMOUNT"
                        ],
                        "splitPk":"ID",  //主键
                        "connection":[
                            {
                                "table":[
                                    "填入你的表明"
                                ],
                                "jdbcUrl":[
                                    "jdbc:mysql://localhost:3306/xxxx"  //填入你的数据源连接的url
                                ]
                            }
                        ]
                    }
                },
                "writer":{
                    "name": "mysqlwriter",
                    "parameter":{
                        "writeMode":"insert",  // 这是进行插入操作
                        "username":"填入你自己的账号密码",
                        "password":"填入你自己的账号密码",
                        "column":[  //列明
                            "ID",
                            "AMOUNT"   
                        ],
                        "session":[
                            "set session sql_mode='ANSI'"
                        ],
                        "preSql":[
                            "truncate 输入你需要清空数据的表名"  // 指的是执行插入语句 如果你需要清空该表的数据可以执行这个方法
                        ],
                        "connection":[
                            {
                                "jdbcUrl":"jdbc:mysql://xxxxxx/xxxxxxx?&serverTimezone=Asia/Shanghai",   //填入你的数据输出的地址的连接的url
                                "table":[
                                    "xxxxxxx" // 指的是你需要导入进库的表的表名
                                ]
                            }
                        ]
                    }
                }
            }
        ]
    }
}

解压好下载后的DataX压缩包后,将我们配置好的 json文件 放在bin目录下,接着执行指令

python datax.py (你的json文件名字)

java使用xstream 大疆_bc_02

接着稍作等待即可,控制台是有日志的

java使用xstream 大疆_bc_03

可以看到260w条数据只用了两分钟!

对了,稍提一嘴,如果控制台乱码了,可以在cmd下面输入如下指定:

CHCP 65001

之后就能够解决DataX的乱码问题了!

如果有其他问题可以参考这篇文档:DataX常见问题

顺带提一嘴,DataX导入的时候暂时不支持MySQL8+的,所以如果大家的数据库版本过高的话,导数据的时候得自己手动去替换一下DataX的数据库的驱动~