windows免秘传文件linux,千万级数据迁移工具DataX实践和geom类型扩展

DataX快速入门参考

环境要求

> Linux

JDK(1.8以上,推荐1.8)

Python(推荐Python2.6.X)

Apache Maven 3.x (Compile DataX)

打包

mvn -U clean package assembly:assembly -Dmaven.test.skip=true

本地idea调用

> D:\pm\DataX\datax-core\src\main\job为测试脚本文件夹

1、job.json 为通过streamreader生成模拟数据,streamwriter用于输出

2、job_mysql_read_to_print.json 通过查询mysql数据,streamwriter用于输出

3、job_postgresql_to_mysql_read_write.json 通过查询postgresql数据,写入mysql

4、job_postgresql_to_postgresql_read_write.json 通过查询postgresql数据,写入postgresql

5、job_postgresql_to_postgresql_read_write_geom.json 通过查询postgresql数据,包含地理空间geometry类型数据,写入postgresql

数据包含geometry迁移

> DataX本身不满足迁移地理空间geometry类型数据迁移

geometry类型数据迁移请移步 geometry

在idea的Teminal执行以下脚本

D:\pm\DataX\datax-core\target\datax\bin>python datax.py ../job/job.json -m standalone

cd D:\pm\DataX\

python D:\pm\DataX\datax-core\target\datax\bin\datax.py D:\pm\DataX\datax-core\target\datax\job\job_pg_to_pg_xianzhuangjianzhu_geom_read_write.json -m standalone

linux环境python 安装

下载

安装依赖

yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y

解压

tar -zxvf Python-3.8.0.tgz

切换目录

cd Python-3.8.0

编译安装

1.释放编译文件makefile,这makefile就是用来编译且安装的

./configure --prefix=/usr/local/soft/python380/ 注释:--prefix 指定软件的安装路径

2.开始编译

make

3.编译且安装

make install

配置环境变量

1.vi /etc/profile

2.写在最后

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/soft/python380/bin

保存退出 :wq!

3.生效

source /etc/profile

如有必要更新pip

pip3 install --upgrade pip

window环境python 安装

> python以及idea插件安装请自行百度

JDK1.8安装

yum install java-1.8.0-openjdk\* -y

DataX 使用

方法一

> cd {YOUR_DATAX_HOME}/bin python datax.py {YOUR_JOB.json}

> 自检脚本:

python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json

方法二

> 下载DataX源码,自己编译

(1)、下载DataX源码: > git clone git@github.com:alibaba/DataX.git

通过maven打包: > $ cd {DataX_source_code_home} $ mvn -U clean package assembly:assembly -Dmaven.test.skip=true

打包成功后的DataX包位于 {DataX_source_code_home}/target/datax/datax/

第二步:启动DataX > $ cd {YOUR_DATAX_DIR_BIN}

$ python datax.py ./stream2stream.json

问题

字段类型问题

> postgresql "geom" "public"."geometry"

因为DataX 不支持数据库读取这种字段类型. 字段名:[geom], 字段名称:[1111], 字段Java类型:[java.lang.Object]. 请尝试使用数据库函数将其转换datax支持的类型 或者不同步该字段

因为DataX 不支持数据库写入这种字段类型. 字段名:[geom], 字段类型:[1111], 字段Java类型:[geometry]. 请修改表中该字段的类型或者不同步该字段

> 您的配置文件中的列配置信息有误. 因为DataX 不支持数据库读取这种字段类型. 字段名:[%s], 字段名称:[%s], 字段Java类型:[%s]. 请尝试使用数据库函数将其转换datax支持的类型 或者不同步该字段 .

geometry类型数据迁移请移步 geometry

##效果对比

通过DataX本地运行,迁移postgresql 包含geometry空间类型数据1088270条,用时1111s

通道数量 : 8

任务启动时刻 : 2019-12-09 12:52:02 任务结束时刻 : 2019-12-09 13:10:34 任务总计耗时 : 1111s 任务平均流量 : 517.35KB/s 记录写入速度 : 980rec/s 读出记录总数 : 1088270 读写失败总数 : 0

通过Navacat复制数据表,迁移postgresql 包含geometry空间类型数据1088270条,用时1917.623s

geometry类型数据迁移

geometry类型数据迁移请移步 geometry

> 本文由作者pm1024:JAVA实验手册 发布,交流:583284584!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值