1. 程式人生 > >使用DATAX3.0將oralce資料遷入elasticsearch6.4

使用DATAX3.0將oralce資料遷入elasticsearch6.4

一、準備datax.tar.gz包,GitHub上下載(下載下來的tar包是沒有elasticsearchwriter的),需要下載原始碼自己編譯;

編譯方式:

通過maven打包:

    $ mvn -U clean package assembly:assembly -Dmaven.test.skip=true

 打包過程中會遇到編譯失敗的問題:

  1、maven  setting.xml檔案新增,阿里私服

 <mirror>
     <id>nexus-aliyun</id>
     <mirrorOf>central</mirrorOf>
     <name>Nexus aliyun</name>
     <url>https://maven.aliyun.com/repository/central</url>
     </mirror>

2.本地編譯報錯無法找到工件com.aliyun.openservices:tablestore-streamclient:jar:1.0.0-SNAPSHOT
解決:

vim $ {DataX_source_code_home} /otsstreamreader/pom.xml
<dependency>
<groupId>com.aliyun.openservices</groupId>
<artifactId>tablestore-streamclient</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
此處把<version>1.0.0-SNAPSHOT</version>改成<version>1.0.0</version>

3、遇到任然有編譯錯誤的解決不了的,可以報錯外掛的將原始碼刪除,繼續編譯

編譯成功後在DataX-master\target目錄下找到datax.tar.gz檔案

二、datax的安裝,編寫reader和writer

  linux環境解壓tar -zxvf datax.tar.gz  ,編寫oracle_to_es.json檔案;

注意:datax要求es是5以上版本,我的elasticsearch是6.x版本,沒有設定使用者名稱和密碼,但是在編寫json指令碼的時候,必須加上accessId和accessKey,且兩者值不能為空,可以為任意值

執行語句:其中Dlasttime為oracle增量抽取資料,

動態傳的引數;

-p "-Dlasttime='2018-10-22 17:05:25'"   

接收引數:${lasttime}

datax命令列:python /opt/datax/bin/datax.py  -p "-Dlasttime='2018-10-22 17:05:25'" /opt/datax/job/oracle_to_es.json