好記憶不如爛筆頭,能記下點東西,就記下點,有時間拿出來看看,也會發覺不一樣的感受.
目錄
“ 路漫漫其修遠兮,吾將上下而求索”
如何基於Datax 3.x實現 kylin數據同步到ES的操作,具體可以分爲如下幾步。對於不熟悉datax的,可以去https://github.com/alibaba/DataX
查閱關於datax的介紹或者是去baidu上搜索瞭解下。
01-datax 安裝
去https://github.com/alibaba/DataX下載解壓並安裝好datax。
如有不會的,可以去google。datax的運行基於python,版本最好是:2.7+ ,所以要想很快速的運行datax 最好在相應的機器上安裝上python,當然java運行環境必須有,不多說。
02-添加插件
默認datax是沒有elasticsearch的運行插件的,需要去下載源碼,進行手動編譯插件,在 https://github.com/alibaba/DataX 上下載 datax-master,使用IDE工具打開源碼,執行maven命令:
mvn clean install -Dmaven.test.skip=true
複製/elasticsearchwriter/target/datax/plugin/writer/elasticsearchwriter
目錄到datax的plugin目錄下,並其放入到writer文件夾裏面。如下圖所示:
這裏面都是datax 的plugin下的wrtier目錄下的寫插件集合。
03-kylin插件
原始的datax是不能夠操作kylin數據源的,這個可以在datax的開源地址可以查看的到: https://github.com/alibaba/DataX ,但是kylin是支持使用標準jdbc 方式來訪問的,所以就可以使用datax提供的rdbmsreader 和 rdbmswriter 來往kylin裏面灌入數據。
既然是使用標準的jdbc方式操作kylin,那麼必須要有相應的jdbc的jar文件纔可以,去 https://mvnrepository.com/ 搜索kylin-jdbc,就可以找到目前最新的版本。
在datax的源碼上,找到 rdbmsreader 和 rdbmswriter , 添加上kylin-jdbc的
maven配置,因爲是要打jar文件,最好的辦法就是把依賴的jar一併打過去,所以配置文件如下所示:
同理,writer的也是一樣的,這就不過多複述。
在配置好這些之後,執行 maven 插件的打包命令,進行rdbmsreader 和
rdbmswriter 的插件打包操作:mvn clean install -Dmaven.test.skip=true
複製/rdbmswriter/target/datax/plugin/writer/rdbmswriter
目錄到datax的plugin目錄下,並其放入到writer文件夾裏面。如下圖所示:
同理,rdbmsreader 的插件獲取和writer 是一樣的,只是需要注意把位置都放正確就是了。在此不做複述。
04-配置運行任務
在es插件和rdbms的插件都配置好之後, 接下來就需要將同步kylin到es的同步任務配置好,既:使用 datax 做數據同步的json文件配置好,配置文件的具體信息如下圖所示:
由於屏幕的關係,截圖截成了兩張,但是意思很明確,就是要做把可執行的json構建出來。
05-同步結果
使用xxl-job做任務定製,將執行同步的任務和json關聯起來,執行完成,查看執行的結果,結果如下圖所示:
如圖,datax做了同步任務的日子記錄和同步結果,可以去kibana上查看同步數據的具體細節,如下圖:
如此五步驟,就可以將datax同步kylin數據到es的操作完成。雖然看似就這幾步,但是在通向成功的道路上遇到了很多錯誤和問題,這就不一一列出。只要按照這幾步來操作,就可以將數據同步到es中去。
同理,如果是其他的,符合jdbc操作的數據同步,也可以使用rdbms來操作,只是同樣需要添加所依賴,並注意其中的細節。