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