MySQL数据同步&归档使用工具总结

2023-09-13 19:00:06

数据迁移方式&工具总结

kettel的使用

1、中文网:http://www.kettle.org.cn/
在这里插入图片描述
2、下载地址
在这里插入图片描述
3、使用kettle进行数据迁移
3.1 打开文件夹,运行spoon.bat
在这里插入图片描述
3.2 点击文件,新建转换
在这里插入图片描述
3.3 新建数据库连接,一个为源数据库,另一个为目的数据库
在这里插入图片描述
3.4 建立表输入和表输出(表输入为源数据表,表输出为要写入的表)
在这里插入图片描述
3.5 点击运行转换,即可进行数据迁移
在这里插入图片描述
注:运行过程中出现问题可查看下方控制台中的日志。

dataX的使用

1、datax下载
相关文档:https://developer.aliyun.com/article/59373

github地址:https://github.com/alibaba/DataX.git

安装包快速下载:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz

# 解压安装包至Linux目录
tar -zxvf datax.tar.gz -C /usr/local/

在这里插入图片描述

2、使用dataX进行增量同步

# 进入job目录下
cd job

vim trans.job
# 文件内容如下
{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "root",
                        "password": "pass",
                        "column": [  
                                "*"    #表示进行所有字段的同步
                        ],
                        "where": "order_date = '${order_date}' and com_code in ('103','104','205','176','178','118')",      #定义同步的数据条件
                        "connection": [
                            {
                                "jdbcUrl": [
                                    "jdbc:mysql://10.106.17*..2*5:3306/my_db?useUnicode=true&characterEncoding=utf8"
                                ],
                                "table": [
                                    "my_order"   #数据源表
                                ]
                            }
                        ]
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "column": [
                                "*"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://10.106.2*5.6*:3306/my_db?useUnicode=true&characterEncoding=utf8",
                                "table": [
                                    "my_order"
                                ]
                            }
                        ],
                        "password": "pass",
                        "username": "root",
                        "writeMode": "replace"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "5"
            }
        }
    }
}



执行一次同步,就会将where条件查询出来的数据同步到目标表中,注意参数的传递${order_date}

python /usr/local/datax/bin/datax.py /usr/local/datax/job/trans.json -p "-Dorder_date=$order_date"

以上为使用dataX进行增量同步的简单描述,如果每日都需要根据日志进行增量同步,可以添加Linux定时任务完成。

vim my_trans.sh

#!/bin/bash
. /etc/profile   #定时任务若初始执行不成功,可以添加此行
order_date="$(date +%Y-%m-%d)"
cd /usr/local/datax/log
logfile=datax_$order_date.log

# 同步测试数据
nohup python /usr/local/datax/bin/datax.py /usr/local/datax/job/trans.json -p "-Dorder_date=$order_date" >> $logfile
nohup python /usr/local/datax/bin/datax.py /usr/local/datax/job/trans2.json -p "-Dorder_date=$order_date" >> $logfile

注:Linux定时任务五个*的意思,从左到右分别是[分钟,小时,几号,月份,星期几]
在这里插入图片描述
比如,每天8点38分执行一次同步

38 8 * * * /bin/bash /usr/local/datax/job/my_trans.sh

pt-archiver的使用

1、安装下载
下载地址:https://www.percona.com/downloads
在这里插入图片描述

# 安装相关
tar xvf percona-toolkit-3.3.1_x86_64.tar.gz
cd percona-toolkit-3.3.1
yum install perl-ExtUtils-MakeMaker perl-DBD-MySQL perl-Digest-MD5
perl Makefile.PL
make
make install

2、进行数据归档

pt-archiver --source h=192.168.253.128,P=3306,u=root,p=VWVqlLvS4kfONYRG,D=my_slaughter_logistics,t=my_city --dest h=192.168.253.129,P=3306,u=test,p=VWVqlLvS4kfONYRG,D=my_slaughter_logistics,t=my_city --where "1=1"

执行完之后会发现,源数据表已被清空,因为使用pt-archiver进行同步的步骤如下:

(1)源库查询记录。

(2)目标库插入记录。

(3)源库删除记录。

(4)目标库 COMMIT。

(5)源库 COMMIT。

当进行大表归档的时候,可以采用批量归档的方式,需要增加以下几个参数:
在这里插入图片描述

–bulk-delete:批量删除。

–limit:每批归档的记录数。

–commit-each:对于每一批记录,只会 COMMIT 一次。

–bulk-insert:归档数据以 LOAD DATA INFILE 的方式导入到归档库中。

更多推荐

《向量数据库指南》——Milvus Cloud当初为什么选择向量数据库这个赛道呢?

我们公司专注于向量数据库大约可以追溯到2018年左右。当时,向量数据库的概念并不广泛。我们的CEO力排众议,认为这个领域有巨大潜力,因为这与我们的愿景高度契合。我们的公司定位是构建一个能够在云上处理非结构化数据的基础设施产品。经过大量调研,我们意识到向量检索可能是未来处理非结构化数据语义和信息的关键。另外一个重要的因素

关于阻抗不连续的原因

1、连线中的分支结构信号传输到分支结构处,表现出的是两条电路并联的效果,会导致阻抗的不连续问题。典型的就是菊花链结构。2、参考平面的宽度一般情况下参考平面都是很宽且连续的,但有的时候,参考平面会被反焊盘给掏空,这时就有可能会出现参考平面的宽度变化的情况。(a是参考平面左右两侧都被掏空,b是左侧被掏空)。需要注意,参考平

可视化工具Datart踩(避)坑指南(3)——筛选框的疑惑

作为目前国内开源版本最好用的可视化工具,Datart无疑是低成本高效率可供二开的可视化神兵利器。当然,免费的必然要付出一些踩坑的代价。本篇我们来讲一讲可视化工具Datart踩(避)坑指南(3)之筛选框的疑惑版本:1.0.0-rc.2Release筛选框,作为BI可视化工具中的重要交互组件,是可视化工具的手。本篇踩到了关

什么是模型混合模式?

上一篇文章介绍了GLTF编辑器支持一些常见材质纹理的修改以及模型混合模式的概念,本文将具体讲解下模型的混合模式以及各种混合模式之间的不同和使用场景。1、什么是模型的混合模式。"模型混合"是指将不同的模型或元素组合在一起,形成一个整体或复合物的过程。模型混合可以用于各种应用,包括计算机图形学、动画制作、虚拟现实和特效制作

计算机未来-发展趋势和未来方向

计算机未来-发展趋势和未来方向1.人工智能与机器学习近年来,人工智能和机器学习成为了科技领域的热门话题。在CSDN上,与人工智能和机器学习相关的文章和讨论也是不胜枚举。从深度学习到自然语言处理,从计算机视觉到强化学习,这些技术正在不断地改变我们的生活和工作方式。机器学习作为人工智能的一个重要分支,其核心技术包括监督学习

Android使用Jetpack WindowManager来开发可折叠设备的探索

一、背景我们在Google开发者大会上,看到JetpackWindowManager和WindowSizeClass这些技术,如下图。那这里不得不说折叠屏手机了在其中一个显示区域中运行一个应用。同时运行两个应用,各位于一个显示区域中(在multi-window模式下)。可折叠设备还支持不同的折叠状态。折叠状态可用来以不

特殊时间(蓝桥杯)

特殊时间问题描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。2022年2月22日22:20是一个很有意义的时间,年份为2022,由3个2和1个0组成,如果将月和日写成4位,为0222,也是由3个2和1个0组成,如果将时间中的时和分写成4位,还是由3个2和1个0组成。小蓝对这样的时间很感兴趣,

【 Ubuntu】systemd服务自启

要在Ubuntu启动后执行一个守护脚本,您可以使用Shell脚本编写一个systemd服务单元。systemd是Ubuntu中常用的服务管理工具,可以在系统启动时自动启动和管理服务。下面是一个示例的守护脚本和systemd服务单元的步骤:创建守护脚本:创建一个Shell脚本文件,例如mydaemon.sh,并在其中编写

markdown学习笔记

markdown学习笔记1.文字(依靠HTML)1.1文字缩进-空格转义符单字符空:&emsp;半字符空:&ensp;1.2文字对齐「居中:」<center>居中</center>or<palign="center">居中</p>「左对齐:」<palign="left">左对齐</p>「右对齐:」<palign="ri

VUE build:gulp打包:测试、正式环境

目录项目结构GulpVUE使用GulpVue安装GulpVue定义Gulp.jspackage.jsonbuild文件夹config文件夹static-config文件夹项目结构GulpGulp是一个自动化构建工具,可以帮助前端开发者通过自动化任务来管理工作流程。Gulp使用Node.js的代码编写,可以更加灵活地管理

STM32 基础学习——GPIO位结构(江科大老师教程)

一、GPIO内部结构1、GPIO外设名称是由GPIOA、GPIOB、GPIOC等命名,共有16个引脚2、每个GPIO模块内,主要包含了寄存器和驱动器这些东西3、寄存器写1,对应的端口就是高电平。写0,对应的端口就是低电平4、寄存器只负责存储数据这是GPIO结构图,总体来说上半部分是输入部分,下半部分是输出部分这是部分是

热文推荐