本文用到的
阿里雲數加-大數據計算服務MaxCompute產品地址:https://www.aliyun.com/product/odpsjava
簡介
Kettle是一款開源的ETL工具,純java實現,能夠運行於Windows, Unix, Linux上運行,提供圖形化的操做界面,能夠經過拖拽控件的方式,方便地定義數據傳輸的拓撲。Kettle支持豐富的數據輸入輸出源,數據庫支持Oracle,MySql,DB2等,也支持業界各類開源的大數據系統,例如HDFS, HBase, Cassandra, MongoDB等。本文將介紹如何利用MaxCompute的插件無縫對接阿里雲的大數據計算平臺——MaxCompute。mysql
環境要求
- JDK (1.6以上,推薦1.7)
- Kettle(建議5.4.0之後的版本)
- Apache Maven 3.x
插件部署
下載MaxCompute的Kettle插件包
$ wget http://repo.aliyun.com/download/aliyun-kettle-odps-plugin-1.0.0.tar.gz
部署Kettle MaxCompute插件
將kettle-odps-plugin安裝到Kettle plugins目錄下sql
$ 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,以下圖所示。數據庫
使用場景
這裏舉幾個簡單的示例演示一下如何利用Kettle的MaxCompute插件將數據導入或導出。大數據
MySQL數據導入MaxCompute
安裝MySQL JDBC Connector
kettle默認是沒有MySQL的JDBC Connector的,須要先下載MySQL 的JDBC Connector,將Connector的jar包放至kettle的lib目錄下,重啓kettle便可。阿里雲
Steps配置
- 新建mysql的DB鏈接
- 添加mysql的表輸入
表輸入配置須要提供一個sql,本例是要將Mysql數據庫的words表導入MaxCompute中,以下圖所示,運行「select * from words;」這樣一條SQL便可,其中words表的schema爲「(id int, line varchar(1000))」。
url
- 添加Aliyun MaxCompute Output
首先須要要MaxCompute中建立與Mysql數據源相對應的數據表,本例中建表語句以下:spa
create table testoyz (a bigint, b string);
而後,以下圖所示,配置好endpoint, accessId, accessKey, projectName, tableName等必要的參數。.net
- 運行轉換,查看結果
運行已經創建好的轉換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文件。
配置好後運行轉換,表中的數據會被下載保存在excel文件中。