初识DataX3.0

目前接到任务,让同步表数据。市面很多同步工具不一一尝试了,信赖阿里,所以调研了一下阿里的dataX,一点点来吧,学习为主

环境准备:linux6.8

python自带的2.7

MySQL 5.7.1

1.先下载: wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz

2.解压:tar -zxvf datax.tar.gz -C /usr/local/

3.授权: chmod -R 755 datax/*

4.进入目录# cd datax/

5.启动脚本:python datax.py ../job/job.json

展示如下

DataX (DATAX-OPENSOURCE-3.0), From Alibaba !
Copyright (C) 2010-2017, Alibaba Group. All Rights Reserved.2019-05-17 02:40:26.101 [main] INFO  VMInfo - VMInfo# operatingSystem class => sun.management.OperatingSystemImpl
2019-05-17 02:40:26.138 [main] INFO  Engine - the machine info  => osInfo:	Oracle Corporation 1.8 25.91-b14jvmInfo:	Linux amd64 2.6.32-642.el6.x86_64cpu num:	2totalPhysicalMemory:	-0.00GfreePhysicalMemory:	-0.00GmaxFileDescriptorCount:	-1currentOpenFileDescriptorCount:	-1GC Names	[PS MarkSweep, PS Scavenge]MEMORY_NAME                    | allocation_size                | init_size                      PS Eden Space                  | 256.00MB                       | 256.00MB                       Code Cache                     | 240.00MB                       | 2.44MB                         Compressed Class Space         | 1,024.00MB                     | 0.00MB                         PS Survivor Space              | 42.50MB                        | 42.50MB                        PS Old Gen                     | 683.00MB                       | 683.00MB                       Metaspace                      | -0.00MB                        | 0.00MB                         2019-05-17 02:40:26.204 [main] INFO  Engine - 
{"content":[{"reader":{"name":"streamreader","parameter":{"column":[{"type":"string","value":"DataX"},{"type":"long","value":19890604},{"type":"date","value":"1989-06-04 00:00:00"},{"type":"bool","value":true},{"type":"bytes","value":"test"}],"sliceRecordCount":100000}},"writer":{"name":"streamwriter","parameter":{"encoding":"UTF-8","print":false}}}],"setting":{"errorLimit":{"percentage":0.02,"record":0},"speed":{"byte":10485760}}
}2019-05-17 02:40:26.254 [main] WARN  Engine - prioriy set to 0, because NumberFormatException, the value is: null
2019-05-17 02:40:26.257 [main] INFO  PerfTrace - PerfTrace traceId=job_-1, isEnable=false, priority=0
2019-05-17 02:40:26.257 [main] INFO  JobContainer - DataX jobContainer starts job.
2019-05-17 02:40:26.271 [main] INFO  JobContainer - Set jobId = 0
2019-05-17 02:40:26.321 [job-0] INFO  JobContainer - jobContainer starts to do prepare ...
2019-05-17 02:40:26.325 [job-0] INFO  JobContainer - DataX Reader.Job [streamreader] do prepare work .
2019-05-17 02:40:26.327 [job-0] INFO  JobContainer - DataX Writer.Job [streamwriter] do prepare work .
2019-05-17 02:40:26.327 [job-0] INFO  JobContainer - jobContainer starts to do split ...
2019-05-17 02:40:26.332 [job-0] INFO  JobContainer - Job set Max-Byte-Speed to 10485760 bytes.
2019-05-17 02:40:26.335 [job-0] INFO  JobContainer - DataX Reader.Job [streamreader] splits to [1] tasks.
2019-05-17 02:40:26.340 [job-0] INFO  JobContainer - DataX Writer.Job [streamwriter] splits to [1] tasks.
2019-05-17 02:40:26.393 [job-0] INFO  JobContainer - jobContainer starts to do schedule ...
2019-05-17 02:40:26.401 [job-0] INFO  JobContainer - Scheduler starts [1] taskGroups.
2019-05-17 02:40:26.408 [job-0] INFO  JobContainer - Running by standalone Mode.
2019-05-17 02:40:26.462 [taskGroup-0] INFO  TaskGroupContainer - taskGroupId=[0] start [1] channels for [1] tasks.
2019-05-17 02:40:26.468 [taskGroup-0] INFO  Channel - Channel set byte_speed_limit to -1, No bps activated.
2019-05-17 02:40:26.474 [taskGroup-0] INFO  Channel - Channel set record_speed_limit to -1, No tps activated.
2019-05-17 02:40:26.535 [taskGroup-0] INFO  TaskGroupContainer - taskGroup[0] taskId[0] attemptCount[1] is started
2019-05-17 02:40:27.036 [taskGroup-0] INFO  TaskGroupContainer - taskGroup[0] taskId[0] is successed, used[521]ms
2019-05-17 02:40:27.037 [taskGroup-0] INFO  TaskGroupContainer - taskGroup[0] completed it's tasks.
2019-05-17 02:40:36.474 [job-0] INFO  StandAloneJobContainerCommunicator - Total 100000 records, 2600000 bytes | Speed 253.91KB/s, 10000 records/s | Error 0 records, 0 bytes |  All Task WaitWriterTime 0.021s |  All Task WaitReaderTime 0.185s | Percentage 100.00%
2019-05-17 02:40:36.474 [job-0] INFO  AbstractScheduler - Scheduler accomplished all tasks.
2019-05-17 02:40:36.475 [job-0] INFO  JobContainer - DataX Writer.Job [streamwriter] do post work.
2019-05-17 02:40:36.475 [job-0] INFO  JobContainer - DataX Reader.Job [streamreader] do post work.
2019-05-17 02:40:36.475 [job-0] INFO  JobContainer - DataX jobId [0] completed successfully.
2019-05-17 02:40:36.477 [job-0] INFO  HookInvoker - No hook invoked, because base dir not exists or is a file: /usr/local/datax/hook
2019-05-17 02:40:36.478 [job-0] INFO  JobContainer - [total cpu info] => averageCpu                     | maxDeltaCpu                    | minDeltaCpu                    -1.00%                         | -1.00%                         | -1.00%[total gc info] => NAME                 | totalGCCount       | maxDeltaGCCount    | minDeltaGCCount    | totalGCTime        | maxDeltaGCTime     | minDeltaGCTime     PS MarkSweep         | 0                  | 0                  | 0                  | 0.000s             | 0.000s             | 0.000s             PS Scavenge          | 0                  | 0                  | 0                  | 0.000s             | 0.000s             | 0.000s             2019-05-17 02:40:36.478 [job-0] INFO  JobContainer - PerfTrace not enable!
2019-05-17 02:40:36.479 [job-0] INFO  StandAloneJobContainerCommunicator - Total 100000 records, 2600000 bytes | Speed 253.91KB/s, 10000 records/s | Error 0 records, 0 bytes |  All Task WaitWriterTime 0.021s |  All Task WaitReaderTime 0.185s | Percentage 100.00%
2019-05-17 02:40:36.480 [job-0] INFO  JobContainer - 
任务启动时刻                    : 2019-05-17 02:40:26
任务结束时刻                    : 2019-05-17 02:40:36
任务总计耗时                    :                 10s
任务平均流量                    :          253.91KB/s
记录写入速度                    :          10000rec/s
读出记录总数                    :              100000
读写失败总数                    :                   0

这样就可以进入job中编辑自己的同步表的json了

{"job": {"setting": {"speed": {              "byte": 1048576,"channel":"5",                 }},"content": [{"reader": {//name不能随便改"name": "mysqlreader","parameter": {                       "username": "root",                       "password": "123456","column": ["*"],                      "connection": [{"table": ["sys_user"],"jdbcUrl": ["jdbc:mysql://ip:3306/bdc_asis?useUnicode=true&characterEncoding=utf8"]}]}},"writer": {//测试了一下name不能随便改"name": "mysqlwriter","parameter": {"writeMode": "replace into","username": "root","password": "1111","column":["*"],"connection": [{"table": ["sys_user"],"jdbcUrl": "jdbc:mysql://ip:3306/bdc_asis?useUnicode=true&characterEncoding=utf8"                                }]}}}]}
}

 有几点需要注意:1.账户密码不能错。2.这个是mysql到mysql,不需要引用其他的插件,如果你是sqlserver或者oracle需要自己下载一下插件或者查一下资料。sqlsercer插件sqljdbc_6.0.8112.100_enu.tar.gz驱动:wget https://download.microsoft.com/download/0/2/A/02AAE597-3865-456C-AE7F-613F99F850A8/enu/sqljdbc_6.0.8112.100_enu.tar.gz

解压并把sqljdbc42.jar文件移至/usr/local/datax/lib目录下,并授权#tar -xf sqljdbc_6.0.8112.100_enu.tar.gz 
#mv /sqljdbc_6.0/enu/jre8/sqljdbc42.jar  /usr/local/datax/lib/
#chmod 755 /usr/local/datax/lib/sqljdbc42.jar

还需要注意:数据库授权可以远程访问。如果遇到java.sql.SQLException:null, message from server: "Host 'xxxxx' is not allowed to connect.基本即使没授权。

进入mysql

use mysql; 回车,在输入 : show tables;

输入: select host from user;  在输入: update user set host ='%' where user ='root';

千万不要忘记刷新授权!千万不要忘记刷新授权!千万不要忘记刷新授权!
 

刷新权限

FLUSH PRIVILEGES

定时脚本编写需要注意,我们可能要好多json需要操作这样就会写好多的定时脚本,这样有点笨。我们可以采用写一个shell然后启动多个json,这样比较方便一些

#!/bin/bash
#一定要写这个,声明你的环境变量
source /etc/profile/usr/local/datax/bin/datax.py /usr/local/jobs/sys_user1.json " >>/usr/local/datax_log/sys_user1.`date +%Y%m%d`  2>&1 &
/usr/local/datax/bin/datax.py /usr/local/jobs/sys_user2.json " >>/usr/local/datax_log/sys_user2.`date +%Y%m%d`  2>&1 &
/usr/local/datax/bin/datax.py /usr/local/jobs/sys_user3.json " >>/usr/local/datax_log/sys_user3.`date +%Y%m%d`  2>&1 &

然后写个定时任务

$ crontab -e
#一分钟执行一次脚本
*/1 * * * * /user/local/dataX3.0.sh >/dev/null 2>&1
  • 我是定时每分钟跑一次脚本,注意一定要处理输入文件,因为cron会见执行情况通过mail发给用户,时间长系统会爆炸掉的哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/13886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

油猴脚本使用cookie一般是某请求返回的setcookie,一般不是js生成的,直接请求拼接

写完hook脚本 删除页面cooike,打开开发者模式,刷新页面 cookie一般是某请求返回的setcookie,一般不是js生成的,直接请求拼接带cookie请求 看网络里的cookie httponly打钩的是服务器返回的,但不一定对,还是要看保存日…

MPLS VPN

不是公司的产品,是运营商对外提供的一种服务 没咋懂,oh my god

安防监控视频平台EasyNVR级联视频上云系统EasyNVS出现“Login error”报错的原因排查

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力,能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、W…

Milvus的执行引擎Knowhere

前言 本文将会介绍Knowhere这个概念,它是milvus向量执行引擎的核心。 概览 Knowhere是milvus向量咨询引擎的核心,它将好几个向量相似搜索库聚集在一起(包括faiss、hnswlib、annoy)。Knowhere也被设计支持异构计算。它控制在什么…

Java设计模式-观察者模式(19)

Java中的观察者模式(Observer Pattern)是一种行为设计模式,它定义了对象之间的一对多依赖关系,这样一来,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。观察者模式使得你可以独立地改变目标和观察者,让两者之间的耦合度降低。 基本组成部分 …

电商平台api接口:采购比价可用的比价工具推荐

电商平台api接口 目前,许多企业在进行内部采购时都有比价的需求。企业利用比价采购这一方式,能通过对比不同平台上、不同供应商的报价,进而选择最符合其需求和预算的产品或服务。 在比价采购的流程中,最重要的步骤就是企业在明确…

C#Csharp,SharpPcap网络抓包程序及源码(适合网络分析直接使用或源码二次开发)

目录 1.程序简介2.程序截图3.程序源码 1.程序简介 C#Csharp,SharpPcap网络抓包程序及源码(适合网络分析直接使用或源码二次开发) 2.程序截图 3.程序源码 https://download.csdn.net/download/xzzteach/89325817

Linux学习(十四)-- 软件安装:yum命令、apt命令

目录 1. yum命令:基于RPM的软件包管理器 2. apt命令:在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器 apt 常用命令 1. yum命令:基于RPM的软件包管理器 yum命令来自英文词组yellow dog updater modified的缩写。 其功能: 在L…

沃创云外呼系统——能够企业带来什么样的帮助

沃创云外呼系统是一款功能强大的呼叫系统,能够助力企业提升营销效率,实现业绩增长。以下是沃创云外呼系统具体可以为企业带来的帮助 01节约成本 沃创云外呼系统能够自动拨打海量客户电话号码,降低企业成本,提高工作效率。使用沃创…

1.golang背景、特点介绍

背景介绍 Go 是 Google 开发的一种编程语言。 它于 2009 年由 Robert Griesemer、Rob Pike 和 Ken Thompson 作为开源项目发布。 从那时起,Go 语言就被用于开发其他众所周知的技术,如 Docker、Kubernetes 和 Terraform。 尽管 Go 语言在服务器端和云软件…

EI会议论文的格式和模板在哪里可以找到?

要找到EI会议论文的格式和模板,首先访问会议的官方网站,这是最直接的途径。会议网站通常在下载中心或投稿指南中提供详细的模板和格式要求。此外,你也可以查阅会议通知邮件、合作出版社平台、往届会议论文,或者直接联系会议组织者…

go语言中的一个特别的语法 //go:embed 可将将静态文件内容读取到string, []byte和 embed.FS 变量并直接打包到exe包中

go语言中的一个特别的语法 //go:embed 看上去像是注释,实则是golang中的一个内置的语法,而且是仅在你的go代码编译时生效的语法, 借助他我们可以将我们的静态资源文件读取到FS直接打包到我们的exe执行文件中。 同时他还支持文件的模式匹配…

计算机网络学习小结_数据链路层

数据链路和帧 帧:数据链路层传输基本单元。链路层将网络层传过来的数据构成帧发到链路上,并将发到链路层的帧取出数据交给网络层 数据报/分组/包:网络层传输基本单元 三个基本问题 即封装成帧、透明传输、差错检测 封装成帧 概念&#…

Docker Portainer使用

Portainer是什么 Docker Portainer是一个轻量级的 Web UI 管理界面,可以用来管理Docker环境。它提供了一个直观的控制台,用户可以通过它来管理Docker主机、容器、网络、卷等Docker资源。 Portainer的主要功能和特点包括: 容器管理:可以查看、启动、停止、删除容器,以及查看容器…

正确解决pymysql.err.InternalError:(1049, Unknown error 1049)异常的有效解决方法

pymysql.err.InternalError: (1049,Unknown error 1049)这个异常通常表示客户端尝试连接到MySQL或 MariaDB服务器时出现了问题。错误代码 1049通常与数据库服务未运行、连接参数错误或数据库不存在有关。 为了解决这个问题,您…

对比解读国际R155法规和GB整车强标要求的差异性

附:汽车整车信息安全技术要求和R155法规文档,文末下载 在早期的汽车软件设计中,汽车本身很少与外界互联,并没有考虑太多的安全性。而随着电子电气架构的发展,大量的软件控制取代了机械控制,带来了ADAS、OT…

VSCODE调试C++(本人是openfoam求解器)时无法显示Vector,map等容器的值

一维数组&#xff1a; 可以在watch内添加表达式&#xff1a;*(type(*)[size])vectorName 例如&#xff1a;想查看vector<int> nums(6), 可以添加*(int(*)[6])nums。 上面是一维数组情况&#xff1a; ((double (*)[1000])&U[1000]) 表示从下标1000开始访问1000-200…

C++实现童年游戏

其中多处坐标的代码是经过运算移项推导出的 #include<easyx.h> #include<conio.h> #include<time.h> #include<stdio.h> bool Timer(int id, int ms)//计时器&#xff0c;过了多少毫秒就会返回真 {static long start[3] { 0 };long last clock();if…

关于linux的防护,以及群集你要知道的有哪些11-搭建Zabbix监控系统

1、zabbix具备功能 主机的性能监控、网络设备性能监控、数据库性能监控、多种警告方式、详细报表图表绘制 2、zabbix的监测对象 Linux服务器、Windows服务器、路由器、交换机等网络设备 3、zabbix的监控架构 server-client架构&#xff1a;适用于网络比较简单&#xff0c…

Qt 科目一考试系统(有源码)

项目源码和资源&#xff1a;科目一考试系统: qt实现科目一考试系统 一.项目概述 该项目是一个基于Qt框架开发的在线考试系统&#xff0c;主要实现了考试题目的随机抽取、考试时间限制、成绩统计等功能。用户可以通过界面操作进行考试&#xff0c;并查看自己的考试成绩。 二.技…