日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python打开.data_DataX初体验-python命令启动以及纯java启动

發(fā)布時間:2023/12/2 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python打开.data_DataX初体验-python命令启动以及纯java启动 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、DataX安裝

官網(wǎng)描述很詳細(xì),很簡單---->DataX安裝

二、使用示例:從Oracle數(shù)據(jù)庫導(dǎo)數(shù)據(jù)到Mysql數(shù)據(jù)庫

事先準(zhǔn)備:

Oracle數(shù)據(jù)庫的ORDER_INFO表,MySQL數(shù)據(jù)庫的order_info表,表結(jié)構(gòu)相同

2.1使用Python啟動

生成模板文件

打開安裝目錄的bin,使用命令python datax.py -r {YOUR_READER} -w {YOUR_WRITER}生成模板文件,由于我是要從Oracle讀數(shù)據(jù)到MySQL,所以我的生成模板命令如下:(DataX支持的reader和writer )

$ cd {YOUR_DATAX_DIR_BIN}

$ python datax.py -r oraclereader -w mysqlwriter

根據(jù)生成的模板文件,填充自己的json文件

我按照實(shí)際情況填充后如下:

{

"job": {

"content": [

{

"reader": {

"name": "oraclereader",

"parameter": {

"column": ["*"],

"connection": [

{

"jdbcUrl": ["jdbc:oracle:thin:@192.168.123.34:1521:ocm"],

"table": ["ORDER_INFO"]

}

],

"password": "admin",

"username": "***"

}

},

"writer": {

"name": "mysqlwriter",

"parameter": {

"column": ["*"],

"connection": [

{

"jdbcUrl": "jdbc:mysql://192.168.211.56:3306/test_datax?characterEncoding=utf8",

"table": ["order_info"]

}

],

"password": "datax01",

"preSql": [],

"session": [],

"username": "datax01",

"writeMode": "insert"

}

}

}

],

"setting": {

"speed": {

"channel": "5"

}

}

}

}

保存為oracle2mysql.json文件于{YOUR_DATAX_DIR_BIN}目錄

啟動DataX,開始傳輸

$ cd {YOUR_DATAX_DIR_BIN}

$ python datax.py ./oracle2mysql.json

同步結(jié)束,顯示如下日志:

2018-09-18 14:31:15.200 [job-0] INFO JobContainer -

任務(wù)啟動時刻 : 2018-09-18 14:31:02

任務(wù)結(jié)束時刻 : 2018-09-18 14:31:15

任務(wù)總計(jì)耗時 : 12s

任務(wù)平均流量 : 228.64KB/s

記錄寫入速度 : 495rec/s

讀出記錄總數(shù) : 4953

讀寫失敗總數(shù) : 0

2.2使用Java啟動

從github上將DataX的源碼clone到本地,DataX的入口類是core包下面的alibaba.datax.core.Engine.main()方法。

根據(jù)datax.py文件的以下幾行配置項(xiàng)目的參數(shù)

DEFAULT_JVM = "-Xms1g -Xmx1g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%s/log" % (DATAX_HOME)

DEFAULT_PROPERTY_CONF = "-Dfile.encoding=UTF-8 -Dlogback.statusListenerClass=ch.qos.logback.core.status.NopStatusListener -Djava.security.egd=file:///dev/urandom -Ddatax.home=%s -Dlogback.configurationFile=%s" % (

DATAX_HOME, LOGBACK_FILE)

ENGINE_COMMAND = "java -server ${jvm} %s -classpath %s ${params} com.alibaba.datax.core.Engine -mode ${mode} -jobid ${jobid} -job ${job}" % (

DEFAULT_PROPERTY_CONF, CLASS_PATH)

配置JVM參數(shù)如下

-Xms1g -Xmx1g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath={DATAX_HOME}/log

配置環(huán)境變量

-Dfile.encoding=UTF-8 -Dlogback.statusListenerClass=ch.qos.logback.core.status.NopStatusListener -Djava.security.egd=file:///dev/urandom -Ddatax.home=%s -Dlogback.configurationFile=%s"

去掉-D,配置在

image.png

配置啟動項(xiàng)

從Engine類的第124行到126行可以看出,啟動項(xiàng)需要配置三個參數(shù):mode、jobid和job,jobid如果不配置的話默認(rèn)為-1,但是只有mode是standalone模式時,jobid才能取-1的值,job配置了json文件位置

options.addOption("job", true, "Job config.");

options.addOption("jobid", true, "Job unique id.");

options.addOption("mode", true, "Job runtime mode.");

以我的情況為例:

-mode standalone -jobid -1 -job \...\oracle2mysql.json

啟動java項(xiàng)目

直接在idea里面運(yùn)行項(xiàng)目,控制臺最后輸出一下日志:

15:21:08.806 [job-0] INFO c.a.datax.core.job.JobContainer -

任務(wù)啟動時刻 : 2018-09-18 15:20:36

任務(wù)結(jié)束時刻 : 2018-09-18 15:21:08

任務(wù)總計(jì)耗時 : 31s

任務(wù)平均流量 : 76.27KB/s

記錄寫入速度 : 165rec/s

讀出記錄總數(shù) : 4956

讀寫失敗總數(shù) : 0

總結(jié)

以上是生活随笔為你收集整理的python打开.data_DataX初体验-python命令启动以及纯java启动的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。