首页 > 数据库 >DataX在Windows上实现Mysql到Mysql同步数据以及配置多个job/多个表同步定时执行bat

DataX在Windows上实现Mysql到Mysql同步数据以及配置多个job/多个表同步定时执行bat

时间:2023-06-18 21:32:33浏览次数:80  
标签:同步 多个 0.1 Mysql 表名 json mysql id


场景

DataX-阿里开源离线同步工具在Windows上实现Sqlserver到Mysql全量同步和增量同步:

DataX-阿里开源离线同步工具在Windows上实现Sqlserver到Mysql全量同步和增量同步_sqlserver数据同步工具_霸道流

DataX-在Windows上实现postgresql同步数据到mysql:

DataX-在Windows上实现postgresql同步数据到mysql_postgresql 数据同步到mysql_霸道流氓气

在上面的基础上如何进行多个Mysql到Mysql之间的数据同步。

注:

博客:
霸道流氓气质的博

实现

多个数据同步job就新建多个json文件,每个json文件中执行一次的job

比如第一个同步的json文件内容:

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "column": [
						"station_id",
						"station_number",
						"group_id",
						"mine_id",
						],
                        "connection": [
                            {
                                "jdbcUrl": [
								"jdbc:mysql://127.0.0.1:3306/数据库名?useUnicode=true&characterEncoding=gbk"
								],
                                "table": [
								"表名"
								]
                            }
                        ],
                        "password": "密码",
                        "username": "用户名",
                        "where": ""
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "column": [
						"station_id",
						"station_number",
						"group_id",
						"mine_id",
						],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://127.0.0.1:3306/数据库名?useUnicode=true&characterEncoding=gbk",
                                "table": [
								"表名"
								]
                            }
                        ],
                        "password": "密码",
                        "preSql": [
						"delete from 表名"
						],
                        "session": [],
                        "username": "root",
                        "writeMode": "insert"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "5"
            }
        }
    }
}

注意将数据库地址、名称、表名、列名、用户名、密码等改成自己对应。

然后再新建第二个数据同步的json文件

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "column": [
						"id",
						"location_number",
						"car_num",
						],
                        "connection": [
                            {
                                "jdbcUrl": [
								"jdbc:mysql://127.0.0.1:3306/数据库名?useUnicode=true&characterEncoding=gbk"
								],
                                "table": [
								"表名"
								]
                            }
                        ],
                        "password": "密码",
                        "username": "用户名",
                        "where": ""
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "column": [
						"id",
						"location_number",
						"car_num",
						],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://127.0.0.1:3306/数据库名?useUnicode=true&characterEncoding=gbk",
                                "table": [
								"表名"
								]
                            }
                        ],
                        "password": "密码",
                        "preSql": [
						"delete from 表名"
						],
                        "session": [],
                        "username": "用户名",
                        "writeMode": "insert"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "5"
            }
        }
    }
}

将此两个json文件放在datax的bin目录下

并在此目录下新建bat文件

#设置编码
chcp 65001
@echo off
title "自定义标题"
set INTERVAL=3600
timeout %INTERVAL%
 
:Again

python datax.py  ./busCarInfoViewMysql2Mysql.json

ping 127.0.0.1 -n 5

python datax.py  ./tBaseStationMysql2Mysql.json

echo %date% %time:~0,8%
 
timeout %INTERVAL%
 
goto Again

这里的3600就代表每3600秒执行一次。

ping 127.0.0.1 -n 5 目的是为了中间停顿5秒。

标签:同步,多个,0.1,Mysql,表名,json,mysql,id
From: https://blog.51cto.com/BADAOLIUMANGQZ/6509629

相关文章

  • 【mysql】1378. 使用唯一标识码替换员工ID
    题目:Employees表:±--------------±--------+|ColumnName|Type|±--------------±--------+|id|int||name|varchar|±--------------±--------+id是这张表的主键。这张表的每一行分别代表了某公司其中一位员工的名字和ID。EmployeeUNI表:±--------......
  • 在医疗保健领域利用生成式人工智能:创新解决方案的 60 多个机会
    预计生成式AI在医疗保健领域的增长速度将超过任何其他行业。在医疗技术领域,AI可带来更高效流程、个性化客户互动、更大的创新和更高价值。为了帮助领导者理解这些机会,BCG最近研究了医疗技术中生成式AI的60多个应用场景:从产研和软件开发到业务运营、营销和销售、售后客户支持到公......
  • 必知必会:MySQL
    复制表结构和其数据:createtabletable_name_newasselect*fromtable_name_old表结构相同,复制表数据:insertintotable_name_newselect*fromtable_name_old表结构不同,复制表数据:insertintotable_name_new(column1,column2...)selectcolumn1,column2........
  • MySQL 优化
    SQL优化是提高MySQL数据库性能和查询效率的过程。下面是一些常见的SQL优化技巧:优化表结构:合理的表结构设计有助于提高性能。特别是,列是否具有正确的数据类型,每个表是否具有符合业务需求的列?例如,执行频繁更新的业务通常表比较多,列很少,而分析大量数据的业务通常表比较少,列很......
  • 【Python】在同一图形中更加优雅地绘制多个子图
    1.引言数据可视化非常重要,有一句俗语叫做一图顶千言,我相信好多小伙伴应该都听说过这句话;即使是有人第一次听到,我想应该也会觉得赞成,这足以说明数据可视化的重要性。我们在前一篇博客中,介绍了如何利用subplot来在一张子图里绘制多个子图,最近我又发现了一种更加优雅地实现,迫不及待地......
  • Redisson分布式锁和同步器详解-官方原版
    一、锁定基于Redis的Java分布式可重入锁对象,并实现了锁接口。如果获取锁的Redisson实例崩溃,则此类锁可能会在获取状态下永久挂起。为了避免这种Redisson维护锁watchdog,当锁持有者Redisson实例处于活动状态时,它会延长锁的到期时间。默认情况下,lockwatchdog超时为30秒,可以通过Config......
  • MySQL数据库主从搭建(详细图文)
    文章目录前言一、主从搭建准备二、Master1.修改mysql配置文件2.创建授权用户3.查看日志和宿主机master的状态三、slave操作1.修改宿主机的server-id2.进入mysql执行相关命令3.UUID的相关配置四、测试前言主从原理:MySQL之间数据复制的基础是二进制日志文......
  • mysql记录多行结果的小实验
    通过#保存多个记录,比如,下线开始时间#下线多少天,下线结束时间如果想要做数据计算可以通过SUBSTRING_INDEX(offline_record,'#',3)拿到对应的结果。比如我要对比获取第三个的所有数据,现在时间是2023-06-1814:20:21超过这个时间的就要离线了。我要查询到所有的数据。SELECT*......
  • Linux安装mysql登录问题-适用root强制登录
    安装mysql后,常规方法登录出现错误提示。直接:/etc/my.cnf添加以下加粗的三句:#cacheinMySQL.Startat70%oftotalRAMfordedicatedserver,else10%.#innodb_buffer_pool_size=128M##Removeleading#toturnonaveryimportantdataintegrityoption:loggi......
  • mysql -- 根据变量a的不同值设置变量b(case when + set)
    需求:根据变量 @period_endtime的不同值,设置相对应的@end_type@period_endtime@end_type03311063020930312314 实现:set@i_period='20230331';SET@period_endtime=RIGHT(@i_period,4);SET@end_type=CASE@period_endtime......