1、官網下載地址:https://github.com/alibaba/DataX
DataX 是阿里巴巴集團內被廣泛使用的離線數據同步工具/平台,實現包括MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各種異構數據源之間高效的數據同步功能。
DataX本身作為數據同步框架,將不同數據源的同步抽象為從源頭數據源讀取數據的Reader插件,以及向目標端寫入數據的Writer插件,理論上DataX框架可以支持任意數據源類型的數據同步工作。同時DataX插件體係作為一套生態系統, 每接入一套新數據源該新加入的數據源即可實現和現有的數據源互通。
2、在頁面中【Quick Start】===》【Download DataX下載地址】進行下載。下載後的包名:datax.tar.gz。這個壓縮包還是有點大的,我下載的有790.95MB大小。
3、DataX目前已經有了比較全面的插件體系,主流的RDBMS數據庫、NOSQL、大數據計算系統都已經接入,目前支持數據如下圖:
類型 | 數據源 | Reader(讀) | Writer(寫) | 文檔 |
---|---|---|---|---|
RDBMS 關係型數據庫 | 的MySQL | √ | √ | 讀、寫 |
甲骨文 | √ | √ | 讀、寫 | |
SQL服務器 | √ | √ | 讀、寫 | |
PostgreSQL的 | √ | √ | 讀、寫 | |
DRDS | √ | √ | 讀、寫 | |
通用RDBMS(支持所有关系型数据库) | √ | √ | 读 、写 | |
阿里云数仓数据存储 | ODPS | √ | √ | 读 、写 |
ADS | √ | 写 | ||
OSS | √ | √ | 读 、写 | |
OCS | √ | √ | 读 、写 | |
NoSQL数据存储 | OTS | √ | √ | 读 、写 |
Hbase0.94 | √ | √ | 读 、写 | |
Hbase1.1 | √ | √ | 读 、写 | |
Phoenix4.x | √ | √ | 读 、写 | |
Phoenix5.x | √ | √ | 读 、写 | |
MongoDB | √ | √ | 读 、写 | |
Hive | √ | √ | 读 、写 | |
Cassandra | √ | √ | 读 、写 | |
无结构化数据存储 | TxtFile | √ | √ | 读 、写 |
FTP | √ | √ | 读 、写 | |
HDFS | √ | √ | 读 、写 | |
Elasticsearch | √ | 写 | ||
时间序列数据库 | OpenTSDB | √ | 读 | |
TSDB | √ | √ | 读 、写 |
4、将下载好的datax.tar.gz包上传到服务器,并进行解压缩操作,如下所示:
官网安装地址:https://github.com/alibaba/DataX/blob/master/userGuid.md
1 [root @ slaver1軟件包]#ll datax.tar.gz 2 -rw-r--r--。1根根829372407 7月 17 14:50 datax.tar.gz 3 [根@ slaver1包]#焦油-zxvf datax.tar.gz -C /家/ hadoop的/軟/ 4 5 [根@ slaver1包]#CD ../soft/ 6 [根@ slaver1軟]#LS 7 cerebro- 0.7。2個 datax elasticsearch- 6.7。0 filebeat- 6.7。0 -linux-x86_64 kibana- 6.7。0 -linux-x86_64 logstash-6.7。0 8 [root @ slaver1 soft]#cd datax / 9 [root @ slaver1 datax]#ls 10 bin conf job lib插件腳本tmp 11 [root @ slaver1 datax]#ll 12總用量4 13 drwxr-xr-x。2 62265用戶 59 10月12 2019 bin 14 drwxr-xr-x。2 62265用戶 68 10月12 2019 conf 15 drwxr-xr-x。2 62265用戶 22 10月12 2019作業 16 drwxr-xr-x。2 62265用戶4096 10月12 2019 lib 17 drwxr-xr-x。4 62265用戶 34 2019年 10月12日 插件 18 drwxr-xr-x。2 62265用戶 23 10月12 2019 腳本 19 drwxr-XR-X。2 62265用戶 24 10月12 2019 tmp 20 [root @ slaver1 datax]#
5、將下載後的datax.tar.gz壓縮包直接解壓後就可以使用了,但是前提是要安裝好java、python的環境。
1)、由於此服務器之前已經安裝過Jdk1.8了,所以這裡就忽略了,jdk通常需要自己安裝的哦,如下所示:
1 [root @ slaver1 datax]#java- 版本 2 openjdk版本“ 1.8.0_232 ” 3 OpenJDK運行時環境(內部版本1.8 .0_232- b09) 4 OpenJDK 64位服務器VM(內部版本25.232 - b09,混合模式) 5 [root @ slaver1 datax]#
2)、Python(推薦Python2.7.X)一定要為Python2,因為後面執行datax.py的時候,裡面的P ython的print會執行不了,導致運行不成功,會提示你print語法要加括號, Python2中加不加都行,Python3中必須要加,否則報語法錯。python版本查看(通常系統自帶2.x版本)。
1 [root @ slaver1 datax]#python- V 2 Python 2.7。5 3 [root @ slaver1 datax]#
3)、Apache Maven 3.x (Compile DataX),通常需要自己安裝的哦。
下載Maven安裝包,然後進行解壓縮操作,可以自己改下名稱方便操作。
1 [root@slaver1 package]# wget http: // mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz 2 -- 2020 - 07 - 17 15 : 10 : 29 -- http: // mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9 -bin.tar.gz 3正在解析主機mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6 . 8.193 , 2402 :f000: 1 : 408 : 8100 :: 1 4正在連接mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)| 101.6 . 8.193 |: 80 ...已連接。 5已發出HTTP請求,正在等待回應... 200 OK 6長度:8491533 ( 8.1M ) [application/x- gzip] 7正在保存至: “apache-maven- 3.3 . 9 - bin.tar.gz” 8 9 100 %[============================================== ================================================== ================================================== ====================================>] 8 , 491 , 533 6 .32MB/s用時1 .3s 10 11 2020 - 07 - 17 15 : 10 : 31 ( 6.32 MB/s) -已保存“apache-maven- 3.3 . 9 -bin.tar.gz” [ 8491533 / 8491533 ] ) 12 13 [root@slaver1 package]# tar -zxvf apache-maven- 3.3 . 9 -bin.tar.gz -C /home/hadoop/soft/
配置Maven的環境變量[root@slaver1 soft]# vim /etc/profile,如下所示:
1 M2_HOME = / home / hadoop / soft / apache-maven- 3.3。9 2導出PATH = $ {M2_HOME} / bin:$ {PATH}
重新加載此配置文件,如下所示:
1 [root @ slaver1 soft]#源/ etc / 配置文件 2 [root @ slaver1 soft]#
最後檢查Maven安裝是否成功,如下所示:
1 [根@ slaver1軟]#MVN - v 2其中:無javac的在(/家/ hadoop的/軟/阿帕奇-maven- 3.3。9的/ usr / local / sbin中:在/ usr / local / bin中:/ bin中/ usr / sbin目錄:在/ usr / bin中:/根/ 箱) 3警告:JAVA_HOME環境變量是未設置。 4 Apache Maven 3.3。9(bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015 - 11 -11T00:41:47 + 08:00 ) 5 Maven的家:/家庭/ hadoop的/軟/阿帕奇-maven- 3.3。9 6 Java版本:1.8 .0_232,供應商:Oracle Corporation 7 Java主頁:/ usr / lib / jvm / java- 1.8。0 -openjdk- 1.8。0.232 .b09- 0 .el7_7.x86_64 / JRE 8默認語言區域:zh_CN的,平台編碼:UTF- 8 9 OS名:“ linux的”,版本:“ 3.10.0-957.el7.x86_64 ”,拱:“ AMD64 ”,家庭:“ unix ” 10 [root @ slaver1 soft]#
6、Jdk、Python、Maven都安裝成功了,datax解壓縮成功了,開始自檢,進入bin目錄,開始自檢,如下所示:
1 [root @ slaver1 bin]#python datax.py ../job/ job.json 2 3 DataX(DATAX-OPENSOURCE- 3.0),來自阿里巴巴! 4版權所有(C)2010年 - 2017年,阿里巴巴集團。版權所有。 5 6 7 2020 - 07 - 17 15:33:06.296 [主要] INFO VMINFO - VMINFO#OperatingSystem的類 => sun.management.OperatingSystemImpl 8 2020 - 07 - 17 15:33:06.322 [main] INFO引擎-計算機信息=> 9 10 osInfo:Oracle Corporation 1.8 25.232 - b09 11 jvmInfo:Linux amd64 3.10。0 - 957 .el7.x86_64 12 CPU民: 2 13 14 totalPhysicalMemory: - 0 .00G 15 freePhysicalMemory: - 0 .00G 16 maxFileDescriptorCount: - 1 17 currentOpenFileDescriptorCount: - 1 18 19 GC名稱[PS MarkSweep,PS Scavenge] 20 21 MEMORY_NAME | 分配大小| init_size 22 PS伊甸園空間| 256 .00MB | 256 .00MB 23 代碼緩存| 240 .00MB | 2 .44MB 24 壓縮類空間| 1,024 .00MB | 0 .00MB 25 PS倖存者空間| 42 .50MB | 42 .50MB 26 PS Old Gen | 683 .00MB | 683 .00MB 27元 空間| - 0 .00MB | 0 .00MB 28 29 30 2020 - 07 - 17 15:33:06.379 [主要] INFO引擎- 31 { 32 “ 的內容“ :[ 33 { 34 ” reader “ :{ 35 ” name “:” streamreader “ , 36 ” parameter “ :{ 37 ” column “ :[ 38 { 39 ” type “:” string “ , 40 ” value “:” DataX “ 41 }, 42 { 43 “ type ”:“ long ” , 44 “ value ”:19890604 45 }, 46 { 47 “ type ”:“ date ” , 48 “ value ”:“ 1989-06-04 00:00:00 ” 49 }, 50 { 51 “ 類型”:”bool “ , 52 ” 值“:true 53 }, 54 { 55 ” type “:” 字節“ , 56 ” value “:” 測試“ 57 } 58 ], 59 ” sliceRecordCount “:100000 60 } 61 }, 62 ”作家“ :{ 63 ” name “:” streamwriter “ , 64 ” parameter “ :{ 65 ” encoding “:” UTF-8 “ , 66 ” print “:false 67 } 68 } 69 } 70 ], 71 ” setting “ :{ 72 “ errorLimit ” : { 73 “百分比“:0.02 , 74 ” 記錄“:0 75 }, 76 ” 速度“ :{ 77 ” 字節“:10485760 78 } 79 } 80 } 81 82 2020 - 07 - 17 15:33:06.475 [主要] WARN引擎- prioriy 集到0,因為NumberFormatException異常,該值是:空 83 2020 - 07 - 17 15:33:06.480 [主要] INFO PerfTrace - PerfTrace traceId = job_- 1,isEnable = 假,優先權= 0 84 2020 - 07 - 17 15:33:06.481 [主要] INFO JobContainer - DATAX jobContainer開始工作。 85 2020 - 07 - 17 15:33:06.495 [主要] INFO JobContainer -設置的jobId = 0 86 2020 - 07 - 17 15:33:06.591 [求職0 ] INFO JobContainer - jobContainer開始做準備... 87 2020 - 07 - 17 15:33:06.593 [求職0 ] INFO JobContainer - DATAX Reader.Job [ streamreader] 做準備工作。 88 2020 - 07 - 17 15:33:06.594 [求職0] INFO JobContainer-DataX Writer.Job [streamwriter] 做準備工作。 89 2020 - 07 - 17 15:33:06.594 [求職0 ] INFO JobContainer - jobContainer開始做分割... 90 2020 - 07 - 17 15:33:06.598 [求職0 ] INFO JobContainer -作業設置 MAX-字節速度到10485760 字節 91 2020 - 07 - 17 15:33:06.604 [ job- 0 ]信息JobContainer-DataX Reader.Job [streamreader]拆分為[ 1 ]個任務。 92 2020 - 07 - 17 15:33:06.606 [求職0 ] INFO JobContainer - DATAX Writer.Job [的StreamWriter]分割至[ 1 ]的任務。 93 2020 - 07 - 17 15:33:06.678 [求職0 ] INFO JobContainer - jobContainer開始做時間表... 94 2020 - 07 - 17 15:33:06.709 [求職0 ] INFO JobContainer -調度器開始[ 1 ] taskGroups。 95 2020 - 07 - 17 15:33:06.720 [求職0 ] INFO JobContainer - 通過獨立模式下運行。 96 2020 - 07 - 17 15:33:06.806 [taskGroup- 0 ] INFO TaskGroupContainer - taskGroupId = [ 0 ]開始[1個用於 [ 1 ]個任務的通道。 97 2020 - 07 - 17 15:33:06.830 [taskGroup- 0 ] INFO通道-通道組 byte_speed_limit到- 1 ,無BPS激活。 98 2020 - 07 - 17 15:33:06.831 [taskGroup- 0 ] INFO通道-通道組 record_speed_limit到- 1 ,無TPS激活。 99 2020 - 07- 17 15:33:06.882 [taskGroup- 0 ] INFO TaskGroupContainer -任務組[ 0 ]的TaskID [ 0 ] attemptCount [ 1 ] 被啟動 100 2020 - 07 - 17 15:33:07.087 [taskGroup- 0 ] INFO TaskGroupContainer -任務組[ 0 ]的TaskID [ 0 ] 被 successed,使用[ 215 ] MS 101 2020 - 07 - 17 15:33:07.088 [taskGroup- 0 ] INFO TaskGroupContainer -任務組[ 0 ]已完成它“ 小號任務。 102 2020 - 07 - 17 15:33:16.841 [求職0 ] INFO StandAloneJobContainerCommunicator -總100000記載,2600000字節| 速度253 .91KB / s,10000條記錄/ s | 錯誤0條記錄,0個字節| 所有任務WaitWriterTime 0 .148s | 所有任務WaitReaderTime 0.161s | 百分比100.00% 103 2020 - 07 - 17 15:33:16.842 [求職0 ] INFO AbstractScheduler - 調度器來完成的所有任務。 104 2020 - 07 - 17 15:33:16.843 [求職0 ] INFO JobContainer - DATAX Writer.Job [StreamWriter的] 做後的工作。 105 2020 - 07 - 17 15:33:16.844 [求職0 ] INFO JobContainer-DataX Reader.Job [streamreader] 完成發布工作。 106 2020 - 07 - 17 15:33:16.845 [求職0 ] INFO JobContainer - DATAX作業ID [ 0 ]成功完成。 107 2020 - 07 - 17 15:33:16.846 [求職0 ] INFO HookInvoker -無鉤調用,因為基目錄不存在,或者是一個文件:/家庭/ hadoop的/軟/ DATAX / 鉤 108 2020- 07 - 17 15:33:16.851 [求職0 ] INFO JobContainer - 109 [總的CPU信息] => 110 averageCpu | maxDeltaCpu | minDeltaCpu 111 - 1.00%| - 1.00%| - 1.00% 112 113 114 [總GC信息] => 115 NAME | totalGCCount | maxDeltaGCCount | minDeltaGCCount | totalGCTime | maxDeltaGCTime |minDeltaGCTime 116 PS MarkSweep | 0 | 0 | 0 | 0 .000秒| 0 .000秒| 0 .000s 117 PS清道夫| 0 | 0 | 0 | 0 .000秒| 0 .000秒| 0 .000s 118 119 2020 - 07 - 17 15:33:16.852 [ job- 0 ]信息JobContainer-PerfTrace無法啟用! 120 2020 - 07 - 17 15:33:16.854 [求職0 ] INFO StandAloneJobContainerCommunicator -總100000記載,2600000字節| 速度253 .91KB / s,10000條記錄/ s | 錯誤0條記錄,0個字節| 所有任務WaitWriterTime 0 .148s | 所有任務WaitReaderTime 0 .161s | 比例100.00% 121 2020- 07 - 17 15 : 33 : 16.861 [job- 0 ] INFO JobContainer - 122任務啟動時刻: 2020 - 07 - 17 15 : 33 : 06 123任務結束時刻: 2020 - 07 - 17 15 : 33 : 16 124 任務總計耗時: 10s 125任務平均流量: 253 .91KB/ s 126記錄寫入速度: 10000rec/ s 127讀出記錄總數: 100000 128讀寫失敗總數: 0 129 130 [root@slaver1 bin]#
7、如何實現mysql數據庫的數據表向mysql的數據庫的數據表傳輸數據呢,如下所示:
1 [根@ slaver1作業]#貓mysql2mysql.json 2 { 3 “ 作業” :{ 4 “ 設置” :{ 5 “ 速度” :{ 6 “ 字節”:1048576 , 7 “ 信道”:“ 4 ” 8 } 9 }, 10 “ 內容” :[ 11 { 12 ” 閱讀器” : { 13 “ 名稱”:“ mysqlreader ” , 14 “ 參數” :{ 15 “ 用戶名”:“ 根” , 16 “ 密碼”:“ 123456 ” , 17 “ 連接” :[ 18 { 19 “ querySql ” :[ 20 “SELECT id,table_name,part,source,start_time,next_time,target,start_batch,next_batch來自data_exchange_table_time “ 21 ”, 22 “ jdbcUrl ”:[ “ jdbc:mysql://192.168.110.133:3306 / book ” ] 23 } 24 ] 25 } 26 }, 27 “ writer ” :{ 28 “ name ”:“ mysqlwriter ” , 29 “參數“ :{ 30 ” writeMode “:” 插入“ , 31 ” 列“ :[ 32 ” id “ , 33 ” table_name “ , 34 ” part “ , 35 ” source “ , 36 ” start_time “ , 37 ” next_time “ , 38 ” 目標” , 39 英寸start_batch“ , 40 ” next_batch “ 41 ”, 42 “ 連接” :[ 43 { 44 45 “ jdbcUrl ”:“ jdbc:mysql://192.168.110.133:3306 / biehl ” , 46 “ 表”:[ “ data_exchange_table_time ” ] 47 } 48 ], 49 “ 用戶名”:“ 根“ , 50 ” 密碼“:” 123456 “ , 51 ” postSql “ :[], 52 ” preSql “ :[], 53 } 54 } 55 } 56 ], 57 } 58 } 59 [root @ slaver1 job]#
執行命令,切記首先數據源數據表必須存在,然後目標數據庫的數據表結構一定要提前創建好,如下所示:
1 [root @ slaver1 job]#python /home/hadoop/soft/datax/bin/datax.py / home / hadoop / soft / datax / job / mysql2mysql.json 2 3 DataX(DATAX-OPENSOURCE- 3.0),來自阿里巴巴! 4版權所有(C)2010年 - 2017年,阿里巴巴集團。版權所有。 5 6 7 2020 - 07 - 17 17:16:50.886 [主要] INFO VMINFO - VMINFO#OperatingSystem的類 => sun.management.OperatingSystemImpl 8 2020 - 07 - 17 17:16:50.903 [main]信息引擎-機器信息=> 9 10 osInfo:Oracle Corporation 1.8 25.232 - b09 11 jvmInfo:Linux amd64 3.10。0 - 957 .el7.x86_64 12 CPU民: 2 13 14 totalPhysicalMemory: - 0 .00G 15 freePhysicalMemory: - 0 .00G 16 maxFileDescriptorCount: - 1 17 currentOpenFileDescriptorCount: - 1 18 19 GC名稱[PS MarkSweep,PS Scavenge] 20 21 MEMORY_NAME | 分配大小| init_size 22 PS伊甸園空間| 256 .00MB | 256 .00MB 23 代碼緩存| 240 .00MB | 2 .44MB 24 壓縮類空間| 1,024 .00MB | 0 .00MB 25 PS倖存者空間| 42 .50MB | 42 .50MB 26 PS Old Gen | 683 .00MB | 683 .00MB 27元 空間| - 0 .00MB | 0 .00MB 28 29 30 2020 - 07 - 17 17:16:50.954 [主要] INFO引擎- 31 { 32 “ 的內容“ :[ 33 { 34 ” reader “ :{ 35 ” name “:” mysqlreader “ , 36 ” parameter “ :{ 37 ” connection “ :[ 38 { 39 ” jdbcUrl “ :[ 40 ” jdbc:mysql://192.168。 110.133:3306 / book “ 41 ”, 42 “ querySql ” : [ 43 “SELECT id,table_name,part,source,start_time,next_time,target,start_batch,next_batch來自data_exchange_table_time “ 44 ] 45 } 46 ], 47 ” password “:” ****** “ , 48 ” username “:” root “ 49 } 50 }, 51 “ writer ” :{ 52 “ name ”:“mysqlwriter", 53 "parameter":{ 54 "column":[ 55 "id", 56 "table_name", 57 "part", 58 "source", 59 "start_time", 60 "next_time", 61 "target", 62 "start_batch", 63 "next_batch “ 64 ”, 65 “ 連接” :[ 66 { 67 “ jdbcUrl ”:“ jdbc:mysql://192.168.110.133:3306 / biehl ” , 68 “ 表” :[ 69 “ data_exchange_table_time ” 70 ] 71 } 72 ] , 73 “ 密碼”:“****** “, 74 “ postSql ” :[], 75 “ preSql ” :[], 76 “ username ”:“ root ” , 77 “ writeMode ”:“ insert ” 78 } 79 } 80 } 81 ], 82 “ setting ” :{ 83 “ 速度” :{ 84 “ 字節”:1048576 , 85 “ 的信道”:“ 4 ” 86 } 87 } 88 } 89 90 2020 - 07 - 17 17:16:51.011 [主要] WARN引擎- prioriy 集到0,因為NumberFormatException異常,該值是:空 91 2020 - 07 - 17 17:16:51.014[主要] INFO PerfTrace - PerfTrace traceId = job_- 1,isEnable = 假,優先權= 0 92 2020 - 07 - 17 17:16:51.015 [主要] INFO JobContainer - DATAX jobContainer開始工作。 93 2020 - 07 - 17 17:16:51.018 [主要] INFO JobContainer -設置的jobId = 0 94 2020 - 07 - 17 17:16:51.678 [求職0] INFO OriginalConfPreprocessingUtil-可用的jdbcUrl:jdbc:mysql:// 192.168.110.133:3306/book?yearIsDateType=false&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false&rewriteBatchedStatements=true。 95 2020 - 07 - 17 17:16:52.118 [求職0 ] INFO OriginalConfPretreatmentUtil - 表:[data_exchange_table_time]所有列:[ 96 的ID,表名,部分,源,START_TIME,NEXT_TIME,目標,start_batch,next_batch 97 ]。 98 2020 - 07 - 17 17:16:52.142[job- 0 ] INFO OriginalConfPreprocessingUtil- 寫入數據[ 99插入INTO%s(id,表名,部分,源,start_time,next_time,target,start_batch,next_batch)VALUES(?,?,?,?,?,?,? ,?,? ) 100 ],它JDBCURL等:[JDBC:MySQL的:// 192.168.110.133:3306/biehl?yearIsDateType=false&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false&rewriteBatchedStatements=true] 101 2020 - 07 - 17 17:16:52.144 [作業- 0 ] INFO JobContainer - jobContainer開始做準備... 102 2020 -07 - 17 17:16:52.146 [求職0 ] INFO JobContainer - DATAX Reader.Job [mysqlreader] 做準備工作。 103 2020 - 07 - 17 17:16:52.150 [求職0 ] INFO JobContainer - DATAX Writer.Job [mysqlwriter] 做準備工作。 104 2020 - 07 - 17 17:16:52.152 [求職0 ] INFO JobContainer - jobContainer開始做分裂... 105 2020 - 07 - 17 17:16:52.157 [求職0 ] INFO JobContainer -作業設置最大字節速至1048576 字節。 106 2020 - 07 - 17 17:16:52.169 [求職0 ] INFO JobContainer - DATAX Reader.Job [mysqlreader]分割至[ 1 ]的任務。 107 2020 - 07 - 17 17:16:52.171 [求職0 ] INFO JobContainer-DataX Writer.Job [mysqlwriter]拆分為[ 1 ]個任務。 108 2020 - 07 - 17 17:16:52.221 [求職0 ] INFO JobContainer - jobContainer開始做時間表... 109 2020 - 07 - 17 17:16:52.232 [求職0 ] INFO JobContainer -調度器開始[ 1 ] taskGroups。 110 2020 - 07 - 17 17:16:52.238 [ job- 0 ]信息JobContainer- 以獨立模式運行。 111 2020 - 07 - 17 17:16:52.270 [taskGroup- 0 ] INFO TaskGroupContainer - taskGroupId = [ 0 ]開始[ 1 ]通道為 [ 1 ]的任務。 112 2020 - 07 - 17 17:16:52.294 [taskGroup- 0 ] INFO通道-通道組 byte_speed_limit到-1 ,未激活bps。 113 2020 - 07 - 17 17:16:52.297 [taskGroup- 0 ] INFO通道-通道組 record_speed_limit到- 1 ,無TPS激活。 114 2020 - 07 - 17 17:16:52.332 [taskGroup- 0 ] INFO TaskGroupContainer -任務組[ 0 ]的TaskID [ 0 ] attemptCount [ 1 ] 被啟動 115 2020 - 07- 17 17:16:52.340 [ 0 - 0 - 0 -reader] INFO CommonRdbmsReader $任務- 開始通過SQL讀取記錄:SELECT標識,TABLE_NAME部分,源,START_TIME,NEXT_TIME,目標,start_batch,next_batch FROM data_exchange_table_time 116 ] jdbcUrl:[jdbc:mysql:// 192.168.110.133:3306/book?yearIsDateType=false&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false&rewriteBatchedStatements=true]。 117 2020 - 07 - 17 17:16:56.814 [ 0 - 0 -0-讀取器] INFO CommonRdbmsReader $ Task- 通過Sql完成讀取記錄:[SELECT id,table_name,part,source,start_time,next_time,target,start_batch,next_batch from data_exchange_table_time 118 ] jdbcUrl:[jdbc:mysql:// 192.168.110.133 :3306 / book?yearIsDateType = false&zeroDateTimeBehavior = convertToNull&tinyInt1isBit = false&rewriteBatchedStatements = true]。 119 2020 - 07 - 17 17:16:56.971 [taskGroup- 0 ] INFO TaskGroupContainer -任務組[ 0 ]的TaskID [ 0 ] 被 successed,使用[ 4651 ] MS 120 2020 - 07 - 17 17:16:56.972 [taskGroup- 0 ] INFO TaskGroupContainer -任務組[ 0 ]已完成它“ 小號任務。 121 2020 - 07 - 17 17:17:02.330 [求職0 ] INFO StandAloneJobContainerCommunicator -共計61086個記錄,4112902字節| 速度401 .65KB / s,6108條記錄/ s | 錯誤0條記錄,0個字節| 所有任務WaitWriterTime3 .495秒| 所有任務WaitReaderTime 0 .792s | 百分比100.00% 122 2020 - 07 - 17 17:17:02.332 [求職0 ] INFO AbstractScheduler - 調度器來完成的所有任務。 123 2020 - 07 - 17 17:17:02.333 [求職0 ] INFO JobContainer - DATAX Writer.Job [mysqlwriter] 做後的工作。 124 2020 - 07 - 17 17:17:02.343 [ job- 0 ]信息JobContainer-DataX Reader.Job [mysqlreader] 完成發布工作。 125 2020 - 07 - 17 17:17:02.345 [求職0 ] INFO JobContainer - DATAX作業ID [ 0 ]成功完成。 126 2020 - 07 - 17 17:17:02.348 [求職0 ] INFO HookInvoker -無鉤調用,因為基目錄不存在,或者是一個文件:/家庭/ hadoop的/軟/ DATAX / 鉤 127 2020 - 07 - 17 17:17:02.379 [求職0 ] INFO JobContainer - 128 [總的CPU信息] => 129 averageCpu | maxDeltaCpu | minDeltaCpu 130 - 1.00%| - 1.00%| - 1.00% 131 132 133 [總GC信息] => 134 NAME | totalGCCount | maxDeltaGCCount | minDeltaGCCount | totalGCTime | maxDeltaGCTime | minDeltaGCTime 135 PS MarkSweep | 0 | 0 | 0 | 0 .000秒| 0 .000秒| 0 .000s 136 PS清道夫| 1 | 1 | 1 | 0 .044秒| 0 .044秒| 0.044s 137 138 2020 - 07 - 17 17:17:02.379 [求職0 ] INFO JobContainer - PerfTrace不啟用! 139 2020 - 07 - 17 17:17:02.408 [求職0 ] INFO StandAloneJobContainerCommunicator -共計61086個記錄,4112902字節| 速度401 .65KB / s,6108條記錄/ s | 錯誤0條記錄,0個字節| 所有任務WaitWriterTime 3.495s | All Task WaitReaderTime 0 .792s | Percentage 100.00 % 140 2020 - 07 - 17 17 : 17 : 02.454 [job- 0 ] INFO JobContainer - 141任務啟動時刻: 2020 - 07 - 17 17 : 16 : 51 142任務結束時刻: 2020 - 07 - 17 17 : 17 : 02 143 任務總計耗時: 11s 144任務平均流量: 401 .65KB/ s 145記錄寫入速度: 6108rec/ s 146讀出記錄總數: 61086 147讀寫失敗總數: 0 148 149 [root@slaver1 job]#
2020-08-1913:08:53
使用datax將mysql的數據導入到mysql顯然是很簡單的,但是當我使用datax將postgresql的數據導入到postgresql的時候,發生了一系列的問題,這裡進行了簡單的記錄。
錯誤一:如果報ip、賬號、密碼、端口錯誤,很大可能是你寫錯了或者寫錯位置了(我的就是將密碼寫到賬號位置了,將賬號寫到密碼位置了)。
錯誤二:如果報某個字段不存在,很大概率是這樣的,官方案例是小寫的,但是postgresql大小寫敏感的,如果字段是大寫的,需要進行轉義,不論是表輸入還是表輸出都需要進行轉義的。
錯誤三:如果是報某個表不存在,此時需要將數據庫的schema寫上,寫到數據表的前面,因為postgresql多了一個schema的概念。
1 { 2 “ 作業” :{ 3 “ 設定” :{ 4 “ 速度” :{ 5 “ 字節”:1048576 , 6 “ 信道”:“ 4 ” 7 } 8 }, 9 “ 內容” :[ 10 { 11 “ 讀者“ :{ 12 ” 名稱“:“ postgresqlreader ” , 13 “ 參數” :{ 14 “ 用戶名”:“ 賬號” , 15 “ 密碼”:“ 密碼” , 16 “ ,其中”:“” , 17 “ 連接” :[ 18 { 19 “ querySQL所” :[ 20 “從public.person中選擇\“ ID \”,\“名稱\”,\“年齡\”,其中\“ ID \”> 1; “ 21 ], 22 ” jdbcUrl “ :[ 23 ” jdbc:postgresql://192.168.109.106:5432 / postgres “ 24 ] 25 } 26 ] 27 } 28 }, 29 ” writer “ :{ 30 ” name “:”31 “ 參數” :{ 32 “ 打印”:真, 33 “ 編碼”:“ UTF-8 ” , 34 “ 用戶名”:“ 賬號” , 35 “ 密碼”:“ 密碼” , 36 “ 柱” :[ 37 “ \“ ID \” “ , 38 ” \“名稱\“ ” , 39 “ \” Age \“ ” 40 ], 41 “ 連接” :[ 42 { 43 “ jdbcUrl ”:“ jdbc:postgresql://192.168.109.106:5432 / postgres ” , 44 “ 表”:[ “ public .person_copy ”] 45 } 46 ] 47 } 48 } 49 } 50 ] 51 } 52 }
注意事項:1)、reader > name的值是postgresqlreader,writer > name的值是 postgresqlwriter。
2)、reader/writer > parameter > username和password的值不要寫反了。
3)、reader > parameter > connection的querySql的數據表字段如果是大寫的需要進行轉義的。writer > parameter > column的數據表字段如果是大寫的需要進行轉義的。
4)、reader > parameter > connection的jdbcUrl的jdbc:postgresql://127.0.0.1:5432/postgres後面這個是數據庫的名稱哦,如果數據庫的名稱和schema的名稱不一致記得區分,別搞混了。
5)、reader > parameter > connection的querySql裡面寫的sql語句,數據表前面跟的是schema的名稱,別搞混了。writer > connection > table裡面的數據表前面跟的是schema的名稱,別搞混了。