dolphinscheduler添加hana支持

虚幻大学 xuhss 163℃ 0评论

? 优质资源分享 ?

学习路线指引(点击解锁) 知识定位 人群定位
? Python实战微信订餐小程序 ? 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
?Python量化交易实战? 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

dolphinscheduler添加hana支持

转载请注明出处: https://blog.csdn.net/funnyzpc/p/16395092.html

前面

上一节有讲dataxhana的支持,同时也讲了dolphinscheduler下的datax的配置( ),唯一的缺陷是dolphinscheduler默认只对常规数据库厂商的db做了支持,比如:mysqloraclesqlserverpostgresql...等等,所以必须要扩展,以提供hana选项,不然仅仅datax支持了hana仍旧无法在dolphinscheduler中使用哈(~ ̄(OO) ̄)ブ
本篇博客仅讲个人对hana添加支持的改造过程,具体代码不大会提到,有需要参考的,可以访问https://github.com/funnyzpc/dolphinscheduler-2.0.5以获取源码,同时,若您有啥建议请底下留言哈?,好了,现在开始~

一.整体的项目结构

(项目结构)
e20de9badfb194af0b0fec7d87791424 - dolphinscheduler添加hana支持

上图是dolphinscheduler整体代码结构,里面dolphinscheduler-ui是前端页面模块,其下方均为脚本或文档之类,其上方有daocommon非独立部署模块,以及standalone以及service等独立部署模块,本次需要改造的部分基本均以高亮色显示
同时本人也补充了下文档,主要涉及到独立打包以及启动等命令,具体请见项目内的 MY.md ,ok,下面先从ui开始说起~

二.ui部分修改

(数据源)
a1d0ff07c16ddc8a05267fe46d36a06d - dolphinscheduler添加hana支持
(datax任务)
e4a9cdce619c7c5029a431c4fc95cc21 - dolphinscheduler添加hana支持
(procedure任务)
1137f502aac763391d6ed8cad01326d2 - dolphinscheduler添加hana支持
(sql任务)
758bff4147a9900f8fec3c568433b8f5 - dolphinscheduler添加hana支持
(sqoop任务)
9a79a71245ad21ea88a99bbb6b2dd1c0 - dolphinscheduler添加hana支持

sqoop任务这个任务类型如果没用到着实没得改造的必要,毕竟比较偏门,当然啦,如果真的用大数据相关的东东还是建议的,本人就没有改哈??
以上只是呈现出来的页面,具体代码在dolphinscheduler-ui这个模块内(建议使用webstormvscode等前端ide打开并编辑),具体对应的代码有这几个:
c40ac054e4a416efec7d8776bf8326c6 - dolphinscheduler添加hana支持
因为只需要在选项内添加hana支持,所以就很简单,这里若参考,请参考我的github上的(开头有提)代码哈?

如果修改完成,通过下面代码编译dolphinscheduler-ui模块,将生成的dist内的文件拷贝到服务器的dolphinscheduler目录下ui目录中,覆盖即可,不过建议还是先备份哈~


|  | npm run build:release |

具体命令也在代码的MY.md文档内。

三.后端部分修改

先总结下,对后端的修改无非就是添加hanajdbc包以及 hana数据源模块及相关的参数配置,其它的真的就没啥了。

3.1 添加hanajdbc依赖

添加依赖大概有三个地方:

  • 1.dolphinscheduler-2.0.5中主目录下pom文件,建议添加版本以及依赖
  • 2.dolphinscheduler-dao模块下的pom文件
  • 3.dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-saphana模块下的pom文件(这个模块需要创建)

具体位置如下方截图:
66f5a84928b39ed7515cb1cd848886c2 - dolphinscheduler添加hana支持

3.2修改dolphinscheduler-spi

这个地方主要添加hanadriver地址以及验证语句jdbc前缀这些,如果有其它的还是根据实际情况进行添加即可~
0e3998eb245c06d49d0935aec92c68b6 - dolphinscheduler添加hana支持

3.3修改dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api

此处建议是加一个包,在包内添加这三个文件: SapHanaConnectionParam、SapHanaDatasourceParamDTO、SapHanaDatasourceProcessor ,当然啦,如果需要扩展其它厂商的db,也可可以找找相邻包内的代码参考即可~
a745f75a58ed7bc7d31556b5e2526b11 - dolphinscheduler添加hana支持

3.4创建dolphinscheduler-datasource-saphana模块

模块的具体位置在 dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-saphana ,仅包含三个文件: SapHanaDataSourceChannel、SapHanaDataSourceChannelFactory、SapHanaDataSourceClient 如有不大妥当的地方,建议根据您的实际情况进行修改,不是很难~
5757609f2b0a1ca4b94115d59e2c2e1d - dolphinscheduler添加hana支持

四.打包上传

因为项目使用的是maven,所以打包较慢,所以本人采用以下语句打包:


|  | mvn clean -Dmaven.test.skip=true package -Prelease -pl dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api -am |
|  | mvn clean -Dmaven.test.skip=true package -Prelease -pl dolphinscheduler-api -am |

将打包好的两个文件上传至服务器,同时别忘了还有添加的jdbc依赖:ngdbc-2.12.7.jar 也一同上传至服务器上的dolphinscheduler下的lib目录,上传完成需要重启才可生效!

最后

好了,本章即到此,因为dolphinscheduler模块数量过于繁多,而具体使用 不少也是单机使用,所以有做单机化改造,具体则是围绕着 standalone-server 做代码简化及调整,期待哟~ ?

转载请注明:xuhss » dolphinscheduler添加hana支持

喜欢 (0)

您必须 登录 才能发表评论!