大数据的弄潮儿:阿里产品dataX和ODPS的使用方法--dataX篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mochou111/article/details/78119675

众所周知,原始的数据仓库存在着“存不了,装不下,算不动”的三大严重问题,为了解决越来越多的数据量和越来越繁杂的数据关系,大数据应运而生。在大数据云时代来临之际,掌握了完美的数据处理工具,譬如hadoop,oracle,ogg这些必将会给你带来不错的收益,而今天我们着重讲一下阿里的两大产品dataX和ODPS。

********************************************************dataX********************************************************

dataX是阿里数据上云的一个工具,支持本地传本地,本地上云,它完美的连接了各个不同的数据系统,譬如oracle,mysql,sqlserver,甚至本地文件等,它有三个系统组成:读:读取源端数据,处理:把源端的数据进行处理并送到写目标端,写:把源端的数据写到目标端。支持是否写,支持更改读取写入速度,读取写入大小等等

由于它支持从oracle写到mysql,oracle写到云,本地写到oracle等等,但是其原理是相似的,故今天我们只举一个栗子:从oracle上云到odps

工具准备:

1,linux或者windows系统

2,jdk 1.8

3,python 推荐2.0,这里多说一句,目前python是趋势,想学python的小伙伴推荐从3学起,如果你以前从未接触过python的话,东西就学新的嘛!

下载dataX:

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

目前有两种处理方法,一种是直接使用,一种是更改它的源码使用,当然,我们大多数人直接使用就可以了
下载dataX到本地某一目录,并给该目录下的文件都赋予可执行权限。

# tar zxvf datax.tar.gz
# sudo chmod -R 755 {YOUR_DATAX_HOME}

测试下dataX是否可用,进入到bin目录,并执行自带的json文件
# cd  {YOUR_DATAX_HOME}/bin
# python datax.py ../job/job.json

如果显示结果如下面,则证明dataX可用


ok,搞定完之后,现在我们开始配置上云用的json文件
                                          
{
	"job": {
	  "content":[
		{
		  "reader":{
			"name":"${streamreader}",       #这个名字是reader的标识,任意取#
			"parameter":{
			  "column":[  
                         {"value": "DataX",
                          "type": "string" 
                              },
			       {
                          "value": "rq",
                          "type": "datetime"
		          "foramt":"yyyy-mm-dd  hh:mm:ss"
                               },
                           "name" ],                 #列名,可以指定每一个列的类型格式,也可以直接写列名
			   "splitPk": "${splitPk}",  #主键,方便拆分上传,加快效率
			  "connection":[
				{
				  "jdbcUrl":["jdbc:oracle:thin:@[HOST_NAME]:PORT:[DATABASE_NAME]"},
				  "table":["table_name"]
				}
			  ],
			  "fetchSize":1024,
			  "password":"$pass",
			  "username":"$user",
			  "where":"${swhere}",
			  "mandatoryEncoding":"UTF-8"
			}
		  },
		   "writer":{
                "name":"odpswriter",
                "parameter":{
                "accessId":"$odpsaccessId",
                "accessKey":"$odpsaccessKey",
                "accountType":"aliyun",
                "column":[${targetSelect}],  #写的时候列与列之间是一一对应的
                "odpsServer":"${odpsServer}",
                "partition":"rfq=$bizdate",   
                "project":"$project",
                "table":"${odpsTable}",
                "truncate": "true"
                }
            }
		}
	  ],
	  "setting":{
		"errorLimit":{
		"record":0
		 },
		"speed":{
		  "channel":2
		}
	  }
	 }
	}
	
配置好之后,就可以在bin 下,直接运行dataX了,然后上到odps查验。要记住运行之前要保证odps端已经建好的有表,且表结构和字段类型符合odps的转换规则
#   python datax.py  ./xxxx.json

实际情况,很多数据库的表会非常多,一个表一个表的配json会非常麻烦和不实用,所以可以使用shell脚本批量生成,这个shell脚本大家可以找程序大牛去按照这个json配置文件去写,此外odps的原理和使用我后续再传上来

猜你喜欢

转载自blog.csdn.net/mochou111/article/details/78119675