数据同步是一项非常重要的工作,举例来说,mysql之间的跨库同步表数据相对简单,只要我们把表结构和数据导出,再导入到另一个库即可。但是不同数据库直接的数据迁移就比较复杂了。
datax和dataxweb介绍
datax是阿里开发出的异构数据源离线同步工具,它能够支持市场上主流的数据库包括mysql、Oracle、Hive、ODPS、HBase等等各种异构数据源之间稳定高效的数据同步功能。
dataxdatax具体如何下载安装这里就不介绍了,大家可以自行百度。
DataXWeb是针对datax开发的分布式数据同步工具,它提供了一个简单易用的操作界面,可以降低我们使用datax的学习成本,可视化界面更简单上手更快。
datax3datax和DataXWeb的安装使用这里就不介绍了,下面我们直接开始如何将MongoDB的数据同步到mysql教程。
准备MongoDB数据,新建mysql表
首先我们准备MongoDB的数据,前2篇文章我都在使用mongo_demo这张表,关于MongoDB的增删改查也有详细介绍。
MongoDB数据新建一张mysql表,然后我们使用dataxweb将MongoDB的数据同步到这张表中,可以选择字段。
mysql新表dataxweb添加数据源
datax和dataxweb安装配置成功,环境配好之后,登录dataxweb,在项目管理中新建一个项目,然后点击数据源管理,新增MongoDB和mysql。
添加数据源新增DataX任务模板
点击任务管理下的DataX任务模板,新增模板,执行器我选择了默认,也可以自己重新添加,任务类型选择DataX任务,选择新建的项目,其它设置根据自己实际情况即可。
新增模板需要注意的是Cron定时任务的设置,具体可以打开页面设置,可以设置为触发一次,也可以设置为循环触发,比如30秒触发一次等等,我这里设置了定时定点触发一次。
定时任务任务构建
任务模板建好之后,就是任务构建了,步骤1构建reader,就是我们需要读取的数据源,这里我们选择MongoDB,过滤掉了最后一个字段。
数据源MongoDB点击下一步,步骤2构建writer,设置写入的mysql,连接成功如下:
连接mysql字段映射这里我们选择了全部,如图:
字段映射点击下一步,选择“1.构建”,看到生成json串,然后点击“2.选择模板”,选择我们上面创建的任务模板,点击最下方的下一步,右侧弹窗出现success表示成功。
构建json串然后在任务管理页面就会看到生成好的任务。
任务管理查看日志
最后我们打开开关,等到Cron设置的时间一到,任务执行完之后,可以选择右侧的操作,查看日志。
打开开关日志管理在日志管理中可以看到我们的日志信息,点击右侧的日志查看,在弹出框中查询导入成功数据的条数等等信息。
插入成功通过日志我们看到成功插入13条数据,打开mysql表发现数据也已经在里面了。
输入写入成功需要注意的是,我们的数据源和cron一定要配置正确,不然会导致执行任务失败,如果失败了可以查看日志信息进行调整,另外我在用mysql8.0的时候也会导致报错,不得已改为了5.7,不知道大家测试时会不会报错。