记一次开发dataX插件的过程

一、基础知识

        DataX官网,基本的安装、部署、操作,基本的原理;

二、需求

        项目需要通过DataX读取服务器上某文件夹下xml文件作为数据源;

三、问题

       1、已有插件ftpreader、txtfilereader,可以去txt文本,CSV文件,但是不支持读取xml文件;

       2、百度、谷歌网上野生的读取xml文件的插件,no result;

四、自力更生开发一款读取xml文件的插件

        由于属于定制开发的插件,我给这个插件取了一个名字ftpxmlreader,从名字可以看出,其实就是复制了一份ftpreader插件,去掉原生读取txt、csv文件的功能,只增加读取xml文件的的功能;

        因为只增加读取xml功能,那么思路就很明了:读取xml的每个节点的值然后塞进某个对象中去,那么我们获取的值到底塞到哪里去呢?通过源码的阅读,发现不管是txt还是csv,最终的值是放在一个parsesRows的一维数组里面:

然后通过UnstructuredStorageReaderUtil.transportOneRecord方法去转化每一个值所匹配的数据类型,并将数据类型保存在一个recoder中:

 

那么我们就需要读取一个xml节点的数据放入这个parseRows的数组里面,我这里选择的是通过jdom2来读取xml文件,利用SAXBuilder获取输入流中xml数据

 ,这里的inputStream就是从服务器上读取的xml文件流(参考ftpreader插件);

下一步就是获取节点数据然后塞数据到parsesRows:

 该插件开发的大体流程就这样;

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值