大数据的弄潮儿:阿里产品dataX和ODPS的使用方法
2017-09-28 09:32
405 查看
众所周知,原始的数据仓库存在着“存不了,装不下,算不动”的三大严重问题,为了解决越来越多的数据量和越来越繁杂的数据关系,大数据应运而生。在大数据云时代来临之际,掌握了完美的数据处理工具,譬如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文件
# python datax.py ./xxxx.json
实际情况,很多数据库的表会非常多,一个表一个表的配json会非常麻烦和不实用,所以可以使用shell脚本批量生成,这个shell脚本大家可以找程序大牛去按照这个json配置文件去写,此外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的原理和使用我后续再传上来
相关文章推荐
- 使用简单的方法进行批量删除数据
- 使用TcpListener的AcceptSocket()方法和AcceptTcpClient()方法接受远端数据时,程序总是好像死机一样!请问如何解决?
- ado多次按条件使用一个记录集中的数据的方法
- 使用mysqldump导入数据和mysqldump增量备份(mysqldump使用方法)
- 使用xmlhttp.send()方法的参数来传递大容量的数据
- 数据绑定技术—如何使用DataBinder.Eval()方法进行数据绑定
- 使用创建数据文件的方法修复数据库(9201)
- 在JBossPortal中使用MySQL5出现数据截断问题的解决方法
- 如何解决FormView中实现DropDownList连动选择时出现 "Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用" 的错误
- 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法
- 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法
- 关于使用sql删除数据库重复的数据的方法整理:
- 解决Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用
- ORACLE用户常用数据字典的查询使用方法
- 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法。
- 使用JDBC4.0操作XML类型的字段(保存获取xml数据)的方法
- 使用Excel“自动化”功能将数据输出到Excel的三种高效方法对比实验
- 如何使用DataBinder.Eval()方法进行数据绑定
- 使用标准数据绑定语法代替 DataBinder.Eval 方法以提高性能
- 一种使用递归从数据库读取数据来动态建立菜单的方法