dolphinscheduler添加hana支持

dolphinscheduler添加hana支持

轉載請註明出處: https://www.cnblogs.com/funnyzpc/p/16395092.html

前面

上一節有講dataxhana的支持,同時也講了dolphinscheduler下的datax的配置( ),唯一的缺陷是dolphinscheduler默認只對常規數據庫廠商的db做了支持,比如:mysqloraclesqlserverpostgresql...等等,所以必須要擴展,以提供hana選項,不然僅僅datax支持了hana仍舊無法在dolphinscheduler中使用哈(~ ̄(OO) ̄)ブ
本篇博客僅講個人對hana添加支持的改造過程,具體代碼不大會提到,有需要參考的,可以訪問https://github.com/funnyzpc/dolphinscheduler-2.0.5以獲取源碼,同時,若您有啥建議請底下留言哈😁,好了,現在開始~

一.整體的項目結構

(項目結構)

上圖是dolphinscheduler整體代碼結構,裏面dolphinscheduler-ui是前端頁面模塊,其下方均爲腳本或文檔之類,其上方有daocommon非獨立部署模塊,以及standalone以及service等獨立部署模塊,本次需要改造的部分基本均以高亮色顯示
同時本人也補充了下文檔,主要涉及到獨立打包以及啓動等命令,具體請見項目內的 MY.md ,ok,下面先從ui開始說起~

二.ui部分修改

(數據源)

(datax任務)

(procedure任務)

(sql任務)

(sqoop任務)

sqoop任務這個任務類型如果沒用到着實沒得改造的必要,畢竟比較偏門,當然啦,如果真的用大數據相關的東東還是建議的,本人就沒有改哈😅😅
以上只是呈現出來的頁面,具體代碼在dolphinscheduler-ui這個模塊內(建議使用webstormvscode等前端ide打開並編輯),具體對應的代碼有這幾個:

因爲只需要在選項內添加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文件(這個模塊需要創建)

具體位置如下方截圖:

3.2修改dolphinscheduler-spi

這個地方主要添加hanadriver地址以及驗證語句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 做代碼簡化及調整,期待喲~ 😎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章