千万级数据迁移工具DataX实践和geom类型扩展
## DataX快速入门参考
> 官方https://github.com/alibaba/DataX/blob/master/userGuid.md
## 环境要求
> 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](https://t.zsxq.com/7MFqJIm)
* 在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 安装
### 下载
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
### 安装依赖
~~~ shell
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
~~~
### 解压
~~~ shell
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 使用
### 方法一
> 下载 http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
> 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](https://t.zsxq.com/7MFqJIm)
##效果对比
* 通过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](https://t.zsxq.com/7MFqJIm)

> 本文由作者pm1280415703:JAVA实验手册 发布,交流群:583284584!
千万级数据迁移工具DataX实践和geom类型扩展的更多相关文章
- mysql 千万级数据查询效率实践,分析 mysql查询优化实践--本文只做了一部分,仅供参考
数据量, 1300万的表加上112万的表 注意: 本文只做了部分优化,并不全面,仅供参考, 欢迎指点. 请移步tim查看,因为写的时候在tim写的,粘贴过来截图有问题,就直接上链接了. https ...
- 转载自lanceyan: 一致性hash和solr千万级数据分布式搜索引擎中的应用
一致性hash和solr千万级数据分布式搜索引擎中的应用 互联网创业中大部分人都是草根创业,这个时候没有强劲的服务器,也没有钱去买很昂贵的海量数据库.在这样严峻的条件下,一批又一批的创业者从创业中获得 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试 系列目录 我想测试EF在一百万条数据下的显示时间! ...
- mysql千万级数据量查询出所有重复的记录
查询重复的字段需要创建索引,多个条件则创建组合索引,各个条件的索引都存在则不必须创建组合索引 有些情况直接使用GROUP BY HAVING则能直接解决:但是有些情况下查询缓慢,则需要使用下面其他的方 ...
- MySQL百万级、千万级数据多表关联SQL语句调优
本文不涉及复杂的底层数据结构,通过explain解释SQL,并根据可能出现的情况,来做具体的优化,使百万级.千万级数据表关联查询第一页结果能在2秒内完成(真实业务告警系统优化结果).希望读者能够理解S ...
- 如何优化Mysql千万级快速分页,limit优化快速分页,MySQL处理千万级数据查询的优化方案
如何优化Mysql千万级快速分页,limit优化快速分页,MySQL处理千万级数据查询的优化方案
- MySQL千万级数据分区存储及查询优化
作为传统的关系型数据库,MySQL因其体积小.速度快.总体拥有成本低受到中小企业的热捧,但是对于大数据量(百万级以上)的操作显得有些力不从心,这里我结合之前开发的一个web系统来介绍一下MySQL数据 ...
- Mysql千万级数据删除实操-企业案例
某天,在生产环节中,发现一个定时任务表,由于每次服务区查询这个表就会造成慢查询,给mysql服务器带来不少压力,经过分析,该表中绝对部分数据是垃圾数据 需要删除,约1050万行,由于缺乏处理大数据的额 ...
- 完全用nosql轻松打造千万级数据量的微博系统(转)
原文:http://www.cnblogs.com/imxiu/p/3505213.html 其实微博是一个结构相对简单,但数据量却是很庞大的一种产品.标题所说的是千万级数据量 也并不是一千万条微博信 ...
随机推荐
- Zabbix 监控PHP-FTPM、Tomcat、Redis应用
一.zabbix 监控 PHP-FPM应用实战Nginx+PHP-FPM是目前最流行的LNMP架构,在基于PHP开发的系统下,对这些系统性能的监控,主要是关注PHP-FPM的运行状态,那么什么是PHP ...
- 【JS】308- 深入理解ESLint
点击上方"前端自习课"关注,学习起来~ 本文来自于"自然醒"投稿至[前端早读课]. 小沈是一个刚刚开始工作的前端实习生,第一次进行团队开发,难免有些紧张.在导师 ...
- [权限管理系统(四)]-spring boot +spring security短信认证+redis整合
[权限管理系统]spring boot +spring security短信认证+redis整合 现在主流的登录方式主要有 3 种:账号密码登录.短信验证码登录和第三方授权登录,前面一节Sprin ...
- 2019年Spring核心知识点整理,看看你掌握了多少?
前言 如今做Java尤其是web几乎是避免不了和Spring打交道了,但是Spring是这样的大而全,新鲜名词不断产生,学起来给人一种凌乱的感觉,在这里总结一下,理顺头绪. Spring 概述 Spr ...
- EFK的搭建(未完成)
EFK 是ELK 日志分析的一个变种,能够更好的来实现日志分析. 首先我们先准备3台 centos7的服务器,在给他们调成2核2G的状态打开. 软件 版本号 zookeeper 3.4.14 Kafk ...
- Windows10 中的字母映射表
有很多朋友为寻找特殊字符串而感到烦恼, windows10中的字符映射表有所有字体 包含的特殊符号 windows键 + R键 输入 charmap 点击确定 即可出现 字母映射表 可在字符的下拉按钮 ...
- 《Java练习题》习题集四
编程合集: https://www.cnblogs.com/jssj/p/12002760.html Java总结:https://www.cnblogs.com/jssj/p/11146205.ht ...
- LeetCode刷题总结-树篇(中)
本篇接着<LeetCode刷题总结-树篇(上)>,讲解有关树的类型相关考点的习题,本期共收录17道题,1道简单题,10道中等题,6道困难题. 在LeetCode题库中,考察到的不同种类的树 ...
- Python 分支、循环、条件与枚举
单行注释:# 注释内容多行注释:''' 注释内容 ''' Python 中有三种控制流语句: if for while 注:Python 中没有 Switch 这种开关语句 if 语句检测条件真, ...
- 松软科技Web课堂:JavaScript Break 和 Continue
break 语句“跳出”循环. continue 语句“跳过”循环中的一个迭代. Break 语句 在本教程稍早的章节中,您已见到了 break 语句.它被用于“跳出” switch 语句. brea ...