阿里开源插件-DataX数据批量迁移

一、环境准备
具体环境搭建请参考DataXGitHub仓库
二、将源库表结构导入目标库
建议使用Navicat工具导出源库表结构,然后执行sql到目标库
三、准备需要的文件

  • 批量执行脚本 xxx.sh
#!/bin/bash
#function:
#version:1.0
#author:hongle
#time:2022-08-26

#定义文件与命令执行路径
v_table_list=' xxxxxxxx/datax/job/tableName.txt'
v_exec_command=' xxxxxx/datax/bin/datax.py'
v_path_json=' xxxxxxxxx/datax/job/xxxx.json'

#定义参数
v_source_table_name=''
v_target_table_name=''

#从table_name.txt获取表名、表记录数并计算分片
for table_name in `cat $v_table_list`
do
		#get table_name
        	v_source_table_name=`echo $table_name|awk -F ":" '{print $1}'`
			v_target_table_name=`echo $table_name|awk -F ":" '{print $2}'`
		
			$v_exec_command -p "\
			-Dsource_table_name=${v_source_table_name} \
			-Dtarget_table_name=${v_target_table_name} \
			" $v_path_json
done
  • Json文件 xxx.json(例:oracle迁移oracle)
{
    "job": {
        "setting": {
            "speed": {
                "byte": 1048576
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [
            {
                // 读数据库
                "reader": {
                    "name": "oraclereader",
                    "parameter": {
                        // 数据库连接用户名
                        "username": "xxxx",
                        // 数据库连接密码
                        "password": "xxxx",
						"column": ["*"],            //*代表所有字段
                        "connection": [
                            {
                                "table": [
                                    "$source_table_name"  		//变量
                                ],                                
                                "jdbcUrl": [
                                    "jdbc:oracle:thin:@[HOST_NAME]:PORT:[DATABASE_NAME]"
                                ]
                            }
                        ],
                        "fetchSize": 1024
                    }
                },
                // 写数据库
				"writer": {
                    "name": "oraclereader",
                    "parameter": {
                        // 数据库连接用户名
                        "username": "xxxx",
                        // 数据库连接密码
                        "password": "xxxx",
                        "column": ["*"],
                        "connection": [
                            {
                                "table": [
                                    "$target_table_name"		//变量
                                ],
								"jdbcUrl": [
                                    "jdbc:oracle:thin:@[HOST_NAME]:PORT:[DATABASE_NAME]"
                                ]
                            }
                        ]
                    }
                }
            }
        ]
    }
}
  • table_name.txt(需要迁移表名称集合)
数据源表名称:目标源表名称
数据源表名称:目标源表名称
数据源表名称:目标源表名称
数据源表名称:目标源表名称
数据源表名称:目标源表名称
...

二、将文件放入对应文件夹下
1、将xxx.sh放/datax/script下
2、将xxx.json放在/datax/job下
3、将table_name.txt放在/datax/job下

三、进入/datax/script目录下执行命令

sh xxx.sh
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值