- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux公社( LinuxIDC.com)于2006年9月25日注册并开通网站,Linux现在已经成为一种广受关注和支持的一种操作系统,IDC是互联网数据中心,LinuxIDC就是关于Linux的数据中心。
LinuxIDC.com提供包括Ubuntu,Fedora,SUSE技术,以及最新IT资讯等Linux专业类网站。
DataX插件开发指南
版本号
修改内容
修改日期
修改人
V0.1
创建
2011-09-08
何健超
目录
TOC \o 1-3 \h \z \u HYPERLINK 一、 概述 4
HYPERLINK 二、 Reader插件开发(以httpreader为例) 5
HYPERLINK 1、 确定插件所需配置的参数 5
HYPERLINK 2、 构建相应包和类结构 5
HYPERLINK 3、 实现重载方法 7
HYPERLINK 4、 自定义split方法 10
HYPERLINK 三、 Writer插件开发(以streamwriter为例) 13
HYPERLINK 1、 确定插件参数、构建相应包和类结构 13
HYPERLINK 2、 实现重载方法 14
HYPERLINK 四、 插件运行配置(以httpreader为例) 16
HYPERLINK 1、 注册插件 16
HYPERLINK 2、 修改build.xml文件,打包 16
概述
DataX是一个在不同类型的数据库(文件系统)之间交换数据的工具,采用“框架+插件”的结构,框架相当于一个数据中转平台,而插件则为访问不同类型的数据库(文件系统)提供实现。
DataX插件分为Reader和Writer两类。Reader负责从数据源端读取数据到Storage(交换空间),Writer负责将Storage中的数据写入到数据目的端。Storage可以适配不同种类的Reader和Writer,从而实现数据同步。目前DataX版本已经提供的Reader插件如下:
hdfsreader : 支持从hdfs文件系统获取数据。
mysqlreader: 支持从mysql数据库获取数据。
sqlserverreader: 支持从sqlserver数据库获取数据。
oraclereader : 支持从oracle数据库获取数据。
streamreader: 支持从stream流获取数据(常用于测试)
httpreader : 支持从http URL获取数据。
提供的Writer插件如下:
hdfswriter :支持向hdbf写入数据。
mysqlwriter :支持向mysql写入数据。
sqlserverwriter:支持向sqlserver写入数据。
oraclewriter :支持向oracle写入数据。
streamwriter :支持向stream流写入数据。(常用于测试)
用户可以根据需要开发自己的Reader Writer插件。现在以HttpReader 和StreamWriter插件为例,使用eclipse分别说明Reader和Writer插件开发过程。
Reader插件开发(以httpreader为例)
确定插件所需配置的参数
确定插件参数,并在common.plugin.ParamsKey.java中,创建静态类HttpReader,尤其注意对参数的注释尽量参照源码规范,DataX运行时,会根据此处声明的参数和注释生成对应的模板Job_xml.此处参数设置非常重要,如图:
图 1
构建相应包和类结构
在源码文件的plugins.reader包下构建httpreader包,再在httpreader包下创建类HttpReader,并让之继承common.plugin.Reader.
图 2
图 3
实现重载方法
获得图3所示效果:现在开始分别实现init( ), connectToDb( ), startRead(LineSender sender), finish( ) 四个方法。
Init( ):通过从Reader间接继承自DefaultPlugin的PluginParam类型的参数param获取配置httpreader插件的参数(此处可以对参数进行检查和格式处理等操作),如图:
图 4
connectToDb( ): 本插件不需要此操作,函数为空实现。(在数据库相关插件中,主要操作是通过DbSource.getConnection(keyId)获取connection),如在mysqlreader中,该函数为:
图 5
startRead(LineSender sender):根据init( )初始化的参数,连接相应的http URL, 获取其中数据并用Bu
原创力文档


文档评论(0)