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