dolphinscheduler新增hana支援

funnyZpC發表於2022-07-11

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 做程式碼簡化及調整,期待喲~ ?

相關文章