当前位置:网站首页>dolphinscheduler adds hana support
dolphinscheduler adds hana support
2022-07-30 12:52:00 【God】
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
做代码简化及调整,期待哟~
边栏推荐
- nodeJs--fs模块
- dolphinscheduler simple task definition and complex cross-node parameter transfer
- What happened when the computer crashed?
- 开源出来的fuse版pfs文件系统主要就是解决缓存问题吧。nfs挂载参数带sync规避缓存问题是不是
- Dolphinscheduler stand-alone transformation
- OpenHarmony环境搭建报错: ImportError: cannot import name ‘VERSION‘ from ‘hb.__main__‘
- 湖仓一体电商项目(一):项目背景和架构介绍
- EasyNVR更新版本至(V5.3.0)后页面不显示通道配置该如何解决?
- Dry Goods Sharing: Various Implementation Methods of Bean Management Factory with Great Use of Small Skills
- AlphaFold预测了几乎所有已知蛋白质!涵盖100万物种2.14亿结构,数据集开放免费用...
猜你喜欢
【语音识别】基于GMM-HMM的语音识别系统
重建丢失的数据
电脑奔溃的时候,到底发生了什么?
别被隐私计算表象骗了 | 量子位智库报告(附下载)
JD.com was brutally killed by middleware on two sides. After 30 days of learning this middleware booklet, it advanced to Ali.
最基础01/完全背包
关于香港高防IP需要关注的几个问题
Rust from entry to proficient 02-installation
概率论的学习整理5:贝叶斯(bayes)法则和贝叶斯概率
[SCTF2019]Flag Shop
随机推荐
和数集团:让智慧城市更智慧,让现实生活更美好
概率论得学习整理--番外3:二项式定理和 二项式系数
C# 时间戳与时间的互相转换
概率论得学习和整理6:概率的分布
基于DoS攻击能量分级的ICPS综合安全控制与通信协同设计
Why is Prometheus a monitoring artifact sufficient to replace Zabbix?
no matching host key type found. Their offer: ssh-rsa
什么是驱动程序签名,驱动程序如何获取数字签名?
CMake library search function does not search LD_LIBRARY_PATH
OneNote如何修改已有的笔记本为默认的快速笔记?
使用百度EasyDL实现明厨亮灶厨师帽识别
Another blast!Ali's popular MySQL advanced collection is open source, reaching P7
展厅全息投影所具备的三大应用特点
[BJDCTF2020]Cookie is so stable-1|SSTI injection
多表联查的学习
我又造了个轮子:GrpcGateway
【Kaggle:UW-Madison GI Tract Image Segmentation】肠胃分割比赛:赛后复盘+数据再理解
手撕读写锁性能测试
JD.com was brutally killed by middleware on two sides. After 30 days of learning this middleware booklet, it advanced to Ali.
Jackson 的JAR包冲突问题