## DataX快速入門參考 > 官方https://github.com/alibaba/DataX/blob/master/userGuid.md ## 環境要求 > Linux JDK(1.8以上,推薦1.8) Python(推薦Python2.6.X) Apache Maven 3.x (Compile DataX) ## 打包 mvn -U clean package assembly:assembly -Dmaven.test.skip=true ### 本地idea呼叫 > D:\pm\DataX\datax-core\src\main\job為測驗腳本檔案夾 1、job.json 為通過streamreader生成模擬資料,streamwriter用于輸出 2、job_mysql_read_to_print.json 通過查詢mysql資料,streamwriter用于輸出 3、job_postgresql_to_mysql_read_write.json 通過查詢postgresql資料,寫入mysql 4、job_postgresql_to_postgresql_read_write.json 通過查詢postgresql資料,寫入postgresql 5、job_postgresql_to_postgresql_read_write_geom.json 通過查詢postgresql資料,包含地理空間geometry型別資料,寫入postgresql ## 資料包含geometry遷移 > DataX本身不滿足遷移地理空間geometry型別資料遷移 * geometry型別資料遷移請移步 [geometry](https://t.zsxq.com/7MFqJIm) * 在idea的Teminal執行以下腳本 ~~~ D:\pm\DataX\datax-core\target\datax\bin>python datax.py ../job/job.json -m standalone cd D:\pm\DataX\ python D:\pm\DataX\datax-core\target\datax\bin\datax.py D:\pm\DataX\datax-core\target\datax\job\job_pg_to_pg_xianzhuangjianzhu_geom_read_write.json -m standalone ~~~ ## linux環境python 安裝 ### 下載 wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz ### 安裝依賴 ~~~ shell yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y ~~~ ### 解壓 ~~~ shell tar -zxvf Python-3.8.0.tgz ~~~ ### 切換目錄 ~~~ cd Python-3.8.0 ~~~ ### 編譯安裝 ~~~ 1.釋放編譯檔案makefile,這makefile就是用來編譯且安裝的 ./configure --prefix=/usr/local/soft/python380/ 注釋:--prefix 指定軟體的安裝路徑 2.開始編譯 make 3.編譯且安裝 make install ~~~ ### 配置環境變數 ~~~ 1.vi /etc/profile 2.寫在最后 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/soft/python380/bin 保存退出 :wq! 3.生效 source /etc/profile ~~~ ### 如有必要更新pip ~~~ pip3 install --upgrade pip ~~~ ## window環境python 安裝 > python以及idea插件安裝請自行百度 ## JDK1.8安裝 ~~~ yum install java-1.8.0-openjdk\* -y ~~~ ## DataX 使用 ### 方法一 > 下載 http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz > cd {YOUR_DATAX_HOME}/bin python datax.py {YOUR_JOB.json} > 自檢腳本: python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json ### 方法二 > 下載DataX原始碼,自己編譯 * (1)、下載DataX原始碼: > git clone [email protected]:alibaba/DataX.git * 通過maven打包: > $ cd {DataX_source_code_home} $ mvn -U clean package assembly:assembly -Dmaven.test.skip=true 打包成功后的DataX包位于 {DataX_source_code_home}/target/datax/datax/ * 第二步:啟動DataX > $ cd {YOUR_DATAX_DIR_BIN} $ python datax.py ./stream2stream.json ## 問題 ### 欄位型別問題 > postgresql "geom" "public"."geometry" 因為DataX 不支持資料庫讀取這種欄位型別. 欄位名:[geom], 欄位名稱:[1111], 欄位Java型別:[java.lang.Object]. 請嘗試使用資料庫函式將其轉換datax支持的型別 或者不同步該欄位 因為DataX 不支持資料庫寫入這種欄位型別. 欄位名:[geom], 欄位型別:[1111], 欄位Java型別:[geometry]. 請修改表中該欄位的型別或者不同步該欄位 > 您的組態檔中的列配置資訊有誤. 因為DataX 不支持資料庫讀取這種欄位型別. 欄位名:[%s], 欄位名稱:[%s], 欄位Java型別:[%s]. 請嘗試使用資料庫函式將其轉換datax支持的型別 或者不同步該欄位 . * geometry型別資料遷移請移步 [geometry](https://t.zsxq.com/7MFqJIm) ##效果對比 * 通過DataX本地運行,遷移postgresql 包含geometry空間型別資料1088270條,用時1111s 通道數量 : 8 任務啟動時刻 : 2019-12-09 12:52:02 任務結束時刻 : 2019-12-09 13:10:34 任務總計耗時 : 1111s 任務平均流量 : 517.35KB/s 記錄寫入速度 : 980rec/s 讀出記錄總數 : 1088270 讀寫失敗總數 : 0 * 通過Navacat復制資料表,遷移postgresql 包含geometry空間型別資料1088270條,用時1917.623s ## geometry型別資料遷移 * geometry型別資料遷移請移步 [geometry](https://t.zsxq.com/7MFqJIm)  > 本文由作者pm1280415703:JAVA實驗手冊 發布,交流群:583284584!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/2115.html
標籤:其他
上一篇:Elasticsearch系列---增量更新原理及優勢
下一篇:Docker設定鏡像加速
