当前位置:网站首页>dolphinscheduler添加hana支持
dolphinscheduler添加hana支持
2022-07-30 12:15:00 【上帝】
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 -am
mvn clean -Dmaven.test.skip=true package -Prelease -pl dolphinscheduler-api -am将打包好的两个文件上传至服务器,同时别忘了还有添加的jdbc依赖:ngdbc-2.12.7.jar 也一同上传至服务器上的dolphinscheduler下的lib目录,上传完成需要重启才可生效!
最后
好了,本章即到此,因为dolphinscheduler模块数量过于繁多,而具体使用 不少也是单机使用,所以有做单机化改造,具体则是围绕着 standalone-server 做代码简化及调整,期待哟~
边栏推荐
- Js - 内置对象
- 基于柔性人机接口的人机协调运动控制方法
- Niuke-TOP101-BM42
- Matlab基础(5)——符号运算
- Reverse linked list - iterative inversion method
- 我又造了个轮子:GrpcGateway
- 概率论的学习整理--番外1:可重复且无次序的计数公式C(n+k-1,k) 的例题 : 同时丢3个骰子,会有多少种情况?答案不是216而是56!
- 概率论的学习整理2:如何对随机实验的对象:“事件” 进行计数呢? 四种计数方法,不只是排列组合
- 历时两月,终拿字节跳动offer,算法面试题分享「带答案」
- OneNote如何修改已有的笔记本为默认的快速笔记?
猜你喜欢

13-GuliMall 基础篇总结

OneNote如何修改已有的笔记本为默认的快速笔记?

刷屏了!!!

Zhou Hongyi: Microsoft copied the 360 security model and became the largest security company in the United States
![[SCTF2019]Flag Shop](/img/26/20e21ec873f41f2633703216453a44.png)
[SCTF2019]Flag Shop

Concepts of cloud-native applications and 15 characteristics of cloud-native applications

JD.com was brutally killed by middleware on two sides. After 30 days of learning this middleware booklet, it advanced to Ali.

Matlab绘图(1)——二维绘图
![[BJDCTF2020]Cookie is so stable-1|SSTI注入](/img/48/34955bbe3460ef09a5b8213c7cc161.png)
[BJDCTF2020]Cookie is so stable-1|SSTI注入

LeetCode_236_Last Common Ancestor of a Binary Tree
随机推荐
CMake library search function does not search LD_LIBRARY_PATH
Scheduling of combined electric-heating system based on multi-objective two-stage stochastic programming method
Matlab基础(4)——矩阵
Based on MySQL database, Redis cache, MQ message middleware, ES high availability scheme of search engine parsing
MySQL中的select,from, join, on where groupby等执行顺序
基于空洞补全的动态SLAM方法
Farmers on the assembly line: I grow vegetables in a factory
[BJDCTF2020]Cookie is so stable-1|SSTI injection
Reverse linked list - recursive inversion method
即时通讯-改变社交与工作状态的新型软件
物理服务器与虚拟机:主要区别和相似之处
Digital input and output module DAM-5088
数字化时代,寻求企业财务转型路径的最优解
[SCTF2019]Flag Shop
C# 时间戳与时间的互相转换
unity初学6——简易的UI制作(血条制作)和音频加入以及NPC的对话气泡(2d)
反转链表-迭代反转法
[ASP.NET Core] Dependency Injection for Option Classes
C#实现软键盘的制作
MySQL【多表查询】