Linux公社(LinuxlDC.com)于2006年9月25日注册并开通网站,Linux现在已经成为一种
广受关注和支持的一种操作系统,IDC是互联网数据中心,LinuxlDC就是关于Linux的数据
中心。
LinuxIDC.com提供包括 Ubuntu, Fedora,SUSE技术,以及最新 IT资讯等Linux专业类网站。
DataX插件开发指南
版本号修改内容修改日期修改人
V0.1
创建
2011-09-08
何健超
目录
TOC \o "1-5" \h \z \o "Current Document" 一、概述4
\o "Current Document" 二、Reader插件开发(以 httpreader 为例) 5
\o "Current Document" 1、确定插件所需配置的参数 5
\o "Current Document" 2、构建相应包和类结构5
\o "Current Document" 3、实现重载方法7
\o "Current Document" 4、自定义 split方法9
\o "Current Document" 三、Writer插件开发(以streamwriter为例)12
\o "Current Document" 1、确定插件参数、构建相应包和类结构 12
2、实现重载方法 13
\o "Current Document" 四、插件运行配置(以 httpreader为例)15
\o "Current Document" 1、注册插件15
\o "Current Document" 2、修改 build.xml文件,打包 15
一、概述
DataX是一个在不同类型的数据库(文件系统)之间交换数据的工具,采用“框 架+插件”的结构,框架相当于一个数据中转平台,而插件则为访问不同类型的 数据库(文件系统)提供实现。
DataX插件分为Reader和Writer两类。Reader负责从数据源端读取数据到 Storage交换空间),Writer负责将Storage中的数据写入到数据目的端。Storage
可以适配不同种类的Reader和Writer,从而实现数据同步。目前 DataX版本已 经提供的Reader插件如下:
1、hdfsreader :支持从hdfs文件系统获取数据。
2、mysqlreader:支持从mysql数据库获取数据。
3、sqlserverreader:支持从sqlserver数据库获取数据。
4、oraclereader :支持从oracle数据库获取数据。
5、streamreader:支持从stream流获取数据(常用于测试)
6、httpreader :支持从http URL获取数据。
提供的Writer插件如下:
1、hdfswriter :支持向hdbf写入数据。
2、mysqlwriter :支持向mysql写入数据。
3、sqlserverwriter: 支持向 sqlserver写入数据。
4、oraclewriter :支持向 oracle 写入数据。
5、streamwriter :支持向stream流写入数据。(常用于测试)
用户可以根据需要开发自己的 Reader & Writer插件。现在以HttpReader和 StreamWriter插件为例,使用eclipse分别说明Reader和Writer插件开发过程。
Reader插件开发(以httpreader为例)
1、确定插件所需配置的参数
确定插件参数,并在 common.plugin.ParamsKey.javs中,创建静态类 HttpReader,尤其注意对参数的注释尽量参照源码规范, DataX运行时, 会根据此处声明的参数和注释生成对应的模板 Job_xml此处参数设置非 常重要,如图:
public static class HttpReader {
f
@name: fieldSplit
@description:列分隔符
grange:
@mandatory: false
@default:\t
*/
public final static String fieldsplit =
/*
士 @name r encoding
@description:编码
+ grange: UTF-8IGEKIGB2312
Smandatory: false
+ @default: VTF-0
/
public final static String encocJijjg- = T,encoding11;
/*
@name: nullString
+ @de