版权声明:本文为博主原创文章,未经博主允许不得转载。 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}
# sudo chmod -R 755 {YOUR_DATAX_HOME}
测试下dataX是否可用,进入到bin目录,并执行自带的json文件
# cd {YOUR_DATAX_HOME}/bin
# python datax.py ../job/job.json
# 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的原理和使用我后续再传上来