.
目录
01-datax 安装
02-添加插件
03-kylin插件
04-配置运行任务
05-同步结果
“ 路漫漫其修远兮,吾将上下而求索”
如何基于Datax 3.x实现 kylin数据同步到ES的操作,具体可以分为如下几步。对于不熟悉datax的,可以去https://github.com/alibaba/DataX
查阅关于datax的介绍或者是去baidu上搜索了解下。
01-datax 安装
去https://github.com/alibaba/DataX下载解压并安装好datax。
如有不会的,可以去google。datax的运行基于python,版本最好是:2.7+ ,所以要想很快速的运行datax 最好在相应的机器上安装上python,当然java运行环境必须有,不多说。
02-添加插件
默认datax是没有elasticsearch的运行插件的,需要去下载源码,进行手动编译插件,在 https://github.com/alibaba/DataX 上下载 datax-master,使用IDE工具打开源码,执行maven命令:
mvn clean install -Dmaven.test.skip=true
复制/elasticsearchwriter/target/datax/plugin/writer/elasticsearchwriter
目录到datax的plugin目录下,并其放入到writer文件夹里面。如下图所示:
这里面都是datax 的plugin下的wrtier目录下的写插件集合。
03-kylin插件
原始的datax是不能够操作kylin数据源的,这个可以在datax的开源地址可以查看的到: https://github.com/alibaba/DataX ,但是kylin是支持使用标准jdbc 方式来访问的,所以就可以使用datax提供的rdbmsreader 和 rdbmswriter 来往kylin里面灌入数据。
既然是使用标准的jdbc方式操作kylin,那么必须要有相应的jdbc的jar文件才可以,去 https://mvnrepository.com/ 搜索kylin-jdbc,就可以找到目前最新的版本。
在datax的源码上,找到 rdbmsreader 和 rdbmswriter , 添加上kylin-jdbc的
maven配置,因为是要打jar文件,最好的办法就是把依赖的jar一并打过去,所以配置文件如下所示:
同理,writer的也是一样的,这就不过多复述。
在配置好这些之后,执行 maven 插件的打包命令,进行rdbmsreader 和
rdbmswriter 的插件打包操作:mvn clean install -Dmaven.test.skip=true
复制/rdbmswriter/target/datax/plugin/writer/rdbmswriter
目录到datax的plugin目录下,并其放入到writer文件夹里面。如下图所示:
同理,rdbmsreader 的插件获取和writer 是一样的,只是需要注意把位置都放正确就是了。在此不做复述。
04-配置运行任务
在es插件和rdbms的插件都配置好之后, 接下来就需要将同步kylin到es的同步任务配置好,既:使用 datax 做数据同步的json文件配置好,配置文件的具体信息如下图所示:
由于屏幕的关系,截图截成了两张,但是意思很明确,就是要做把可执行的json构建出来。
05-同步结果
使用xxl-job做任务定制,将执行同步的任务和json关联起来,执行完成,查看执行的结果,结果如下图所示:
如图,datax做了同步任务的日子记录和同步结果,可以去kibana上查看同步数据的具体细节,如下图:
如此五步骤,就可以将datax同步kylin数据到es的操作完成。虽然看似就这几步,但是在通向成功的道路上遇到了很多错误和问题,这就不一一列出。只要按照这几步来操作,就可以将数据同步到es中去。
同理,如果是其他的,符合jdbc操作的数据同步,也可以使用rdbms来操作,只是同样需要添加所依赖,并注意其中的细节。
ES同步可以参考:https://www.jianshu.com/p/7d08f91fc0be