栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

【大数据】数据迁移工具DataX

【大数据】数据迁移工具DataX

简介

DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle 等)、 HDFS、 Hive、 ODPS、 Hbase、 FTP 等各种异构数据源之间稳定高效的数据同步功能 。

github项目地址:https://github.com/alibaba/DataX/

详细信息github上面都有,就不详细介绍了,这篇文章主要介绍一下postgresql到postgresql的数据迁移。

安装

安装条件

  1. JDK(1.8以上,推荐1.8)
  2. Python(推荐Python2.6.X)
  3. Apache maven 3.x(compile datax)

安装jdk

yum install -y java-1.8.0-openjdk-devel

安装Python

yum install -y python

安装maven

转到官方Apache Maven下载页面并获取最新版本或使用以下wget命令将其下载到maven主目录/usr/local/src下

cd /usr/local/src
wget https://dlcdn.apache.org/maven/maven-3/3.8.3/binaries/apache-maven-3.8.3-bin.tar.gz
tar -xf apache-maven-3.8.3-bin.tar.gz
mv apache-maven-3.8.3/ apache-maven/ 

配置Apache Maven环境

cd /etc/profile.d/
vim maven.sh

# Apache Maven Environment Variables
# MAVEN_HOME for Maven 1 - M2_HOME for Maven 2
export M2_HOME=/usr/local/src/apache-maven
export PATH=${M2_HOME}/bin:${PATH}
chmod +x maven.sh
source /etc/profile.d/maven.sh

验证环境

mvn --version

接下来就很简单,直接下载编译好的文件即可

下载地址:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz

环境准备

在A服务器数据库创建数据

创建一个名为test的数据库

create database test;

在test数据库中创建test1表

create table test1(id int primary key,name text,age int);

添加数据

insert into test1 values (1,'zhangsan',20),(2,'lisi',18),(3,'wangwu',21);

查看数据

select * from test1;

在B服务器数据库中创建库和表

创建一个名为test的数据库

create database test;

在test数据库中创建test1表

 create table test1(id int primary key,name text,age int);

数据迁移

查看datax的json配置模板,进入datax的bin目录

python datax.py -r postgresqlreader -w postgresqlwriter 
{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "postgresqlreader",
                    "parameter": {
                        "connection": [
                            {
                                "jdbcUrl": [],
                                "table": []
                            }
                        ],
                        "password": "",
                        "username": ""
                    }
                },
                "writer": {
                    "name": "postgresqlwriter",
                    "parameter": {
                        "column": [],
                        "connection": [
                            {
                                "jdbcUrl": "",
                                "table": []
                            }
                        ],
                        "password": "",
                        "postSql": [],
                        "preSql": [],
                        "username": ""
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": ""
            }
        }
    }
}

对照着github上面的项目文档来配置json文件

配置json文件,每个对应的字段在官方文档中都有说明

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "postgresqlreader",
                    "parameter": {
                        "column":["id","name","age"],
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:postgresql://192.168.1.37:5432/test"],
                                "table": ["test1"]
                            }
                        ],
                        "password": "123456",
                        "username": "postgres"
                    }
                },
                "writer": {
                    "name": "postgresqlwriter",
                    "parameter": {
                        "column": ["id","name","age"],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:postgresql://192.168.1.39:5432/test",
                                "table": ["test1"]
                            }
                        ],
                        "password": "123456",
                        "postSql": [],
                        "preSql": [],
                        "username": "postgres"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}

将配置好的json文件放入datax的job文件夹中,开始迁移

python datax.py ../job/test.json

成功

前往B服务器进行验证

排错

排错参考:https://blog.csdn.net/oscube/article/details/118407931

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/584119.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号