云萌主云应用官方论坛
标题:
【转载】[ETL实践指南]基于Kettle的MaxCompute插件实现数据...
[打印本页]
作者:
粉萌心愿
时间:
2017-1-19 14:54
标题:
【转载】[ETL实践指南]基于Kettle的MaxCompute插件实现数据...
简介
Kettle是一款开源的ETL工具,纯java实现,可以运行于Windows, Unix, Linux上运行,提供图形化的操作界面,可以通过拖拽控件的方式,方便地定义数据传输的拓扑。Kettle支持丰富的数据输入输出源,数据库支持Oracle,MySql,DB2等,也支持业界各种开源的大数据系统,例如HDFS, HBase, Cassandra, MongoDB等。本文将介绍如何利用MaxCompute的插件无缝对接阿里云的大数据计算平台——MaxCompute。
环境要求
JDK (1.6以上,推荐1.7)
Kettle(建议5.4.0以后的版本)
Apache Maven 3.x
插件部署
下载MaxCompute的Kettle插件包
$ wget
http://repo.aliyun.com/download/ ... plugin-1.0.0.tar.gz
部署Kettle MaxCompute插件
将kettle-odps-plugin安装到Kettle plugins目录下
$ cp aliyun-kettle-odps-plugin-1.0.0.tar.gz {YOUR_KETTLE_DIRECTORY}/plugins
$ cd {YOUR_KETTLE_DIRECTORY}/plugins
$ tar zxvf aliyun-kettle-odps-plugin-1.0.0.tar.gz && rm aliyun-kettle-odps-plugin-1.0.0.tar.gz
安装完成后,重启Kettle,重启后新建一个转换(Transformation),然后可以在Big Data这个大类中找到Aliyun MaxCompute Input/Output,如下图所示。
屏幕快照 2016-11-30 下午5.36.29.png
使用场景
这里举几个简单的示例演示一下如何利用Kettle的MaxCompute插件将数据导入或导出。
MySQL数据导入MaxCompute
安装MySQL JDBC Connector
kettle默认是没有MySQL的JDBC Connector的,需要先下载MySQL 的JDBC Connector,将Connector的jar包放至kettle的lib目录下,重启kettle即可。
Steps配置
新建mysql的DB连接
mysql connect.png
添加mysql的表输入
表输入配置需要提供一个sql,本例是要将Mysql数据库的words表导入MaxCompute中,如下图所示,运行“select * from words;”这样一条SQL即可,其中words表的schema为“(id int, line varchar(1000))”。
mysql input.png
添加Aliyun MaxCompute Output
首先需要要MaxCompute中创建与Mysql数据源相对应的数据表,本例中建表语句如下:
create table testoyz (a bigint, b string);
然后,如下图所示,配置好endpoint, accessId, accessKey, projectName, tableName等必要的参数。
粘贴图片0.png
运行转换,查看结果
运行已经建立好的转换Steps,运行成功后,可以在MaxCompute的相应数据表中查询到传输过来的数据。
odps@ xxx_project_name>read testoyz;
+------------+------------+
| a | b |
+------------+------------+
| 1 | hello world |
| 2 | hello maxcompute |
| 3 | test test test |
+------------+------------+
将MaxCompute表导出到Excel文件
可以使用Aliyun MaxCompute Input组件下载MaxCompute中的表数据到Excel文件中,下图的配置是将上个例子中的表导出为Excel文件。
粘贴图片1.png
配置好后运行转换,表中的数据会被下载保存在excel文件中。
作者:冶善
转载链接:
https://yq.aliyun.com/articles/6 ... ;utm_content=m_9533
欢迎光临 云萌主云应用官方论坛 (https://yunmengzhu.com/)
Powered by Discuz! X3.4