dolphinscheduler添加hana支持 - funnyZpC
source link: https://www.cnblogs.com/funnyzpc/p/16395092.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
dolphinscheduler添加hana支持
转载请注明出处: https://www.cnblogs.com/funnyzpc/p/16395092.html
上一节有讲datax
对hana
的支持,同时也讲了dolphinscheduler
下的datax
的配置( ),唯一的缺陷是dolphinscheduler
默认只对常规数据库厂商的db
做了支持,比如:mysql
、oracle
、sqlserver
、postgresql
...等等,所以必须要扩展,以提供hana
选项,不然仅仅datax
支持了hana
仍旧无法在dolphinscheduler
中使用哈(~ ̄(OO) ̄)ブ
本篇博客仅讲个人对hana
添加支持的改造过程,具体代码不大会提到,有需要参考的,可以访问https://github.com/funnyzpc/dolphinscheduler-2.0.5以获取源码,同时,若您有啥建议请底下留言哈😁,好了,现在开始~
一.整体的项目结构
(项目结构)
上图是dolphinscheduler
整体代码结构,里面dolphinscheduler-ui
是前端页面模块,其下方均为脚本或文档之类,其上方有dao
、common
非独立部署模块,以及standalone
以及service
等独立部署模块,本次需要改造的部分基本均以高亮色显示
同时本人也补充了下文档,主要涉及到独立打包以及启动等命令,具体请见项目内的 MY.md
,ok,下面先从ui
开始说起~
二.ui部分修改
(数据源)
(datax任务)
(procedure任务)
(sql任务)
(sqoop任务)
sqoop任务
这个任务类型如果没用到着实没得改造的必要,毕竟比较偏门,当然啦,如果真的用大数据相关的东东还是建议的,本人就没有改哈😅😅
以上只是呈现出来的页面,具体代码在dolphinscheduler-ui
这个模块内(建议使用webstorm
、vscode
等前端ide
打开并编辑),具体对应的代码有这几个:
因为只需要在选项内添加hana
支持,所以就很简单,这里若参考,请参考我的github
上的(开头有提)代码哈😂
如果修改完成,通过下面代码编译dolphinscheduler-ui
模块,将生成的dist
内的文件拷贝到服务器的dolphinscheduler
目录下ui
目录中,覆盖即可,不过建议还是先备份哈~
npm run build:release
具体命令也在代码的MY.md
文档内。
三.后端部分修改
先总结下,对后端的修改无非就是添加hana
的jdbc
包以及 hana
数据源模块及相关的参数配置,其它的真的就没啥了。
3.1 添加hana
的jdbc
依赖
添加依赖大概有三个地方:
- 1.
dolphinscheduler-2.0.5
中主目录下pom
文件,建议添加版本以及依赖 - 2.
dolphinscheduler-dao
模块下的pom
文件 - 3.
dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-saphana
模块下的pom
文件(这个模块需要创建)
具体位置如下方截图:
3.2修改dolphinscheduler-spi
这个地方主要添加hana
的driver
地址以及验证语句
、jdbc前缀
这些,如果有其它的还是根据实际情况进行添加即可~
3.3修改dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api
此处建议是加一个包,在包内添加这三个文件: SapHanaConnectionParam、SapHanaDatasourceParamDTO、SapHanaDatasourceProcessor ,当然啦,如果需要扩展其它厂商的db,也可可以找找相邻包内的代码参考即可~
3.4创建dolphinscheduler-datasource-saphana
模块
模块的具体位置在 dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-saphana
,仅包含三个文件: SapHanaDataSourceChannel、SapHanaDataSourceChannelFactory、SapHanaDataSourceClient
如有不大妥当的地方,建议根据您的实际情况进行修改,不是很难~
四.打包上传
因为项目使用的是maven
,所以打包较慢,所以本人采用以下语句打包:
mvn clean -Dmaven.test.skip=true package -Prelease -pl dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api -ammvn clean -Dmaven.test.skip=true package -Prelease -pl dolphinscheduler-api -am
将打包好的两个文件上传至服务器,同时别忘了还有添加的jdbc
依赖:ngdbc-2.12.7.jar
也一同上传至服务器上的dolphinscheduler
下的lib
目录,上传完成需要重启才可生效!
好了,本章即到此,因为dolphinscheduler
模块数量过于繁多,而具体使用 不少也是单机使用,所以有做单机化改造,具体则是围绕着 standalone-server
做代码简化及调整,期待哟~ 😎
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK