一、DataX安装

官网描述很详细,很简单---->DataX安装

二、使用示例:从Oracle数据库导数据到Mysql数据库

事先准备:

Oracle数据库的ORDER_INFO表,MySQL数据库的order_info表,表结构相同

2.1使用Python启动

生成模板文件

打开安装目录的bin,使用命令python datax.py -r {YOUR_READER} -w {YOUR_WRITER}生成模板文件,由于我是要从Oracle读数据到MySQL,所以我的生成模板命令如下:(DataX支持的reader和writer )

$ cd {YOUR_DATAX_DIR_BIN}

$ python datax.py -r oraclereader -w mysqlwriter

根据生成的模板文件,填充自己的json文件

我按照实际情况填充后如下:

{

"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

同步结束,显示如下日志:

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

任务启动时刻 : 2018-09-18 14:31:02

任务结束时刻 : 2018-09-18 14:31:15

任务总计耗时 : 12s

任务平均流量 : 228.64KB/s

记录写入速度 : 495rec/s

读出记录总数 : 4953

读写失败总数 : 0

2.2使用Java启动

从github上将DataX的源码clone到本地,DataX的入口类是core包下面的alibaba.datax.core.Engine.main()方法。

根据datax.py文件的以下几行配置项目的参数

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参数如下

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

配置环境变量

-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

配置启动项

从Engine类的第124行到126行可以看出,启动项需要配置三个参数:mode、jobid和job,jobid如果不配置的话默认为-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项目

直接在idea里面运行项目,控制台最后输出一下日志:

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

任务启动时刻 : 2018-09-18 15:20:36

任务结束时刻 : 2018-09-18 15:21:08

任务总计耗时 : 31s

任务平均流量 : 76.27KB/s

记录写入速度 : 165rec/s

读出记录总数 : 4956

读写失败总数 : 0

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

  1. 风变编程有c语言吗,风变编程Python小课初体验:用有趣好玩的方式学编程

    原标题:风变编程Python小课初体验:用有趣好玩的方式学编程 经过约一个月时间的学习,今天,我终于学完风变编程Python小课的Python基础语法课程啦!从零基础的"小白"到现 ...

  2. 人机对战初体验:Python基于Pygame实现四子棋游戏

    人机对战初体验-四子棋游戏 继去年3月人机大战引发全球瞩目以来,围棋AI(人工智能)再度引发跨领域的关注:一个叫Master的围棋AI,几天时间,面对中日韩顶尖职业围棋选手,已取得60胜0败的恐怖战绩 ...

  3. python利器怎么用-UliPad 初体验----python 开发利器

    学习python有段时间,最近博客更新比较慢了,空闲时间在零零碎碎的学python,难成文,也就没整理成博客. 学习python最苦恼的就是没有趁手IDE,之前学java时Eclipse肯定是不二之选 ...

  4. UliPad 初体验----python 开发利器

    学习python 有段时间,最近博客更新比较慢了,空闲时间在零零碎碎的学python ,难成文,也就没整理成博客. 学习python 最苦恼的就是没有趁手IDE ,之前学java 时 Eclipse  ...

  5. 从入门到入土:python爬虫|scrapy初体验|安装教程|爬取豆瓣电影短评相关信息(昵称,内容,时间和评分)

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  6. ChromeDriver/Selenium/Python浏览器自动化初体验

    目录 ChromeDriver安装 Selenium安装 Python脚本 ChromeDriver安装 在浏览器地址栏输入,查看chrome当前版本: chrome://version 在浏览器地址 ...

  7. python打开是什么样的-Python程序的执行过程是什么样的?

    我们都知道,使用CC++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言,经过链接器链接之后形成了二进制可执行文件.运行该程序的时候,就可以二进制程序从硬盘载入到内存中并运行. 但 ...

  8. Python:masonite初体验TodoList

    文档:https://docs.masoniteproject.com/ 初次体验框架,感觉里边提供了丰富的命令行工具可以快速开发, 主要是ORM很棒,区别于Python生态Django等的ORM,和 ...

  9. python open api_OpenAPI初体验

    问题的一开始源于客户和服务部门抱怨我的REST API文档写得不好,然后又了解到 django rest framework 利用 coreapi 能自动生成文档,再就是看到 swagger.io 上 ...

最新文章

  1. gcc for Windows 开发环境介绍
  2. i基准指令集 mips_mips addiu
  3. LINUX设备驱动程序的注意事项(两)建设和执行模块
  4. vue如何获取年月日_好程序员web前端教程分享Vue相关面试题
  5. MySQL 5.7--多源复制(非GTID模式)
  6. html 自动滚动到底部,Javascript实现DIV滚动自动滚动到底部的代码
  7. 软件基本功:数组赋值,一定要对齐
  8. 什么是网络爬虫?有什么用?怎么爬?终于有人讲明白了
  9. 高效能人士的七个习惯
  10. uc投屏按钮不见了_网页投屏,网页视频怎么投屏到电视,
  11. iOS TouchID和FaceID登录验证 简单使用
  12. 几种数据增强:Mixup,Cutout,CutMix 和yolov4中的 Mosaic
  13. 详解Unity中的粒子系统Particle System (四)
  14. WireShark 不能正常解析 Radius 包,提示 Malformed Packet .
  15. svchost.exe 占用 21 端口,无法开启FTP服务(已解决)
  16. 联想台式机计算机接口,接口篇:四款产品接口配置横向对比_联想ThinkCentre台式电脑_台式电脑评测-中关村在线...
  17. IOS(iPad、iPhone)删除已下载系统更新
  18. 贝叶斯网络python实战(以泰坦尼克号数据集为例,pgmpy库)
  19. [转]信息安全相关理论题(二)
  20. 测试(生命周期阶段)

热门文章

  1. jvm能识别什么字符集_识别JVM –比预期要难
  2. Spring Boot微服务,Docker和Kubernetes研讨会–第一部分
  3. 使用Azure Blob存储托管Maven工件
  4. java 8 lambda_Java 8 Lambda演练
  5. restful web_泽西岛的RESTful Web服务
  6. 带有AWS Lambda和Java的无服务器FaaS
  7. 何时使用JavaFX代替HTML
  8. netbeans7.4_NetBeans 7.2引入了TestNG
  9. Hibernate READ_ONLY CacheConcurrencyStrategy如何工作
  10. 书评:精通Lambda:多核世界中的Java编程