[JDBC] Kettle on MaxCompute 使用指南

简介: Kettle是一款开源的ETL工具,纯Java实现,可以在Windows、Unix和Linux上运行,提供图形化的操作界面,可以通过拖拽控件的方式,方便地定义数据传输的拓扑 (www.shouLiao.com.cn)。基本讲介绍基于Kettle的MaxCompute插件实现数据上云。

Kettle版本:8.2.0.0-342

MaxCompute JDBC driver版本:3.2.8

Setup

  1. 下载并安装Kettle
  2. 下载MaxCompute JDBC driver
  3. 将MaxCompute JDBC driver置于Kettle安装目录下的lib子目录(data-integration/lib)
  4. 下载并编译MaxCompute Kettle plugin:https://github.com/aliyun/aliyun-maxcompute-data-collectors
  5. 将编译后的MaxCompute Kettle plugin置于Kettle安装目录下的lib子目录(data-integration/lib)
  6. 启动spoon

Job

我们可以通过Kettle + MaxCompute JDBC driver来实现对MaxCompute中任务的组织和执行。

首先需要执行以下操作:

  1. 新建Job
  2. 新建Database Connection
  3. JDBC连接串格式为:jdbc:odps:?project=
  4. JDBC driver class为:com.aliyun.odps.jdbc.OdpsDriver
  5. Username为阿里云AccessKey Id
  6. Password为阿里云AccessKey Secret
  7. JDBC更多配置见:https://help.aliyun.com/document_detail/161246.html

之后,可以根据业务需要,通过SQL节点访问MaxCompute。下面我们以一个简单的ETL过程为例:

Create table节点的配置如下:

需要注意:

  1. 这里Connection需要选择我们配置好的
  2. 不要勾选Send SQL as single statement

Load from OSS节点配置如下:

需要注意的点同Create table节点。有关更多Load的用法,见:https://help.aliyun.com/document_detail/157418.html

Processing节点配置如下:

需要注意的点同Create table节点。

Transformation

我们可以通过MaxCompute Kettle plugin实现数据流出或流入MaxCompute。

首先新建Transformation,之后新建Aliyun MaxCompute Input节点,配置如下:

在MaxCompute中新建一张空表,schema与test_partition_table一致。

新建Aliyun MaxCompute Output节点,配置如下:

执行Transformation,数据便从test_partition_table被下载,后被上传至test_partition_table_2。

其他

置MaxCompute flags设

如图,在执行DDL/DML/SQL之前,可以通过set key=value;的方式配置flags。

Script模式

暂时无法支持

本文为阿里云原创内容,未经允许不得转载。

主营产品:打码机、喷码机,激光加工