dolphinscheduler添加hana支持
dolphinscheduler添加hana支持
轉載請注明出處: http://www.rzrgm.cn/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 做代碼簡化及調整,期待喲~ ??

浙公網安備 33010602011771號