大数据同步数据利器-DataX

DataX的使用

在接触datax之前,一直用的是Apache Sqoop这个工具,它是用来在Apache Hadoop 和诸如关系型数据库等结构化数据传输大量数据的工具。但是在实际工作中,不同的公司可能会用到不同的nosql数据库和关系型数据库,不一定是基于hadoop的hive,hbase等这些,所以sqoop也有一定的局限性。在工作处理业务中,公司大佬给我推介了阿里巴巴的datax,用完的感受就是,真特么好用,适用范围广,还简单方便,并且已经在github上开源,下载即可。不多BB,摆上网址:https://github.com/alibaba/DataX
datax是阿里巴巴集团的一款离线数据同步框架,它可以实现各种异构数据源之间高效的的数据同步功能。比如:
RDBMS 关系型数据库:MySQL、Oracle、 SQLServer、PostgreSQL、DRDS等(所有关系型数据库都支持)。
阿里云数仓数据存储:ODPS、ADS、OSS、OCS。
nosql:OTS、Hbase0.94、Hbase1.1、Phoenix4.x 、Phoenix5.x、MongoDB、Hive
无结构化数据库:TxtFile、FTP、HDFS、Elasticsearch
时间序列数据库:OpenTSDB、TSDB

这里开始介绍具体怎么用

首先在使用datax之前需要的准备:
1.java JDK1.8以上(推介使用1.8)配置windows或者linux配置JDK网上一大片,这里不多介绍。
2.Python2.x(推介2.6) 注意这里不能用python的最新版本(目前是3.7),可能不支持。
3.Apache Maven 3.x (这个不需要自己安装,它自带的有)
4.针对windows用户可以下载一个git,用git执行数据传输任务
5.将下载的datax解压到自己需要的目录。(我这里是在D盘建了一个datax文件夹然后解压D:\datax\datax)
完成以上步骤后,接下来就开始配置数据源和目标数据库,在D:\datax\datax\job(找自己的安装目录)下,打开job.json文件,我们只需在reader里配置数据源,在writer里配置目标数据库即可,具体配置规则在https://github.com/alibaba/DataX读或者写的配置点进去看就行。
大数据同步数据利器-DataX_第1张图片
以mysql数据库同步数据到mongodb做示范,(mysql列与mongodb的文档字段必须一一对应,这里本来有五十多列,为了简单示范,删了一部分)
{ "job": { "setting": { "speed": { "channel": 3 }, "errorLimit": { "record": 0, "percentage": 0.02 } }, "content": [{ "reader": { "name": "mysqlreader", "parameter": { "username": "root", "password": "123456", "column": ["*"], "connection": [{ "table": [ "tablename" ], "jdbcUrl": [ "jdbc:mysql://localhost:3306/databsename" ] }] } }, "writer": { "name": "mongodbwriter", "parameter": { "address": [ "localhost:27017" ], "userName": "", "userPassword": "", "dbName": "testdb", "collectionName": "base_people", "column": [ { "name":"guid", "type":"string" }, { "name": "card_type", "type": "string" }, { "name": "card_code", "type": "string" } ], "writeMode": { "isReplace": "false", "replaceKey": "_id" } } } }] } }

然后用我们安装好的git 点击 Git Bash Here
大数据同步数据利器-DataX_第2张图片
进入到我们之前安装好的python目录下:
大数据同步数据利器-DataX_第3张图片
执行命令:(这里写自己datax的安装目录下)我的是在D盘下
./python D:/datax/datax/bin/datax.py D:/datax/datax/job/job.json
在这里插入图片描述
最后如果在前期准备环境没有配错,或者job.json里reader和writer配置都对的话(一般都是reader和writer会不小心配错),就会执行成功,因为是本地操作,所以有点慢,五十多分钟同步了 九百多万条数据。
大数据同步数据利器-DataX_第4张图片

你可能感兴趣的:(大数据)