DataX实现Mysql与ElasticSearch(ES)数据同步

文章目录

  • 一、Linux环境要求
  • 二、准备工作
    • 2.1 Linux安装jdk
    • 2.2 linux安装python
    • 2.3 下载DataX:
  • 三、DataX压缩包导入,解压缩
  • 四、编写同步Job
  • 五、执行Job
  • 六、定时更新
    • 6.1 创建定时任务
    • 6.2 提交定时任务
    • 6.3 查看定时任务
  • 七、增量更新思路

一、Linux环境要求

jdk1.8及以上
python2

二、准备工作

2.1 Linux安装jdk

 yum install -y java-1.8.0-openjdk.x86_64

查看是否安装成功

java -version

2.2 linux安装python

 yum install -y python

查看python版本号,判断是否安装成功

python --version

2.3 下载DataX:

三、DataX压缩包导入,解压缩

tar -zxvf datax.tar.gz 

四、编写同步Job

在datax/job下,json格式,具体内容及主要配置含义如下

mysqlreader为读取mysql数据部分,配置mysql相关信息
username,password为数据库账号密码
querySql:需要查询数据的sql,也可通过colums指定需要查找的字段(querySql优先级高)
elasticsearchwriter部分为数据写入ES部分,配置ES相关信息,
endpoint为ES地址,index为索引,columns为需要写入列的信息,其余配置选填

坑!:若运行时提示mysql连接失败,且账号密码,ip,端口号都没问题的情况下,需要像文中一样在jdbcUrl的内容后面加上useSSL=false"

vim /opt/software/datax/job/job.json

将内容换成以下内容

{"job": {"setting": { "speed": {"channel": 1},"errorLimit": {"percentage": 0}},"content": [{"reader": {"name": "mysqlreader","parameter": {"username": "root","password": "123456","connection": [{"querySql": ["select * from user_t"],"jdbcUrl": ["jdbc:mysql://数据库地址:3306/mysql?useSSL=false"]}]}},"writer": {"name": "elasticsearchwriter","parameter": {"endpoint":"http://ES地址:9200","accessId":"","accessKey":"","index": "user-demo","cleanup": false,"discovery":false,"column": [{"name": "id","type": "id"},{"name": "userName","type": "text"},{"name": "address","type": "text"}]}}}]}}

五、执行Job

配置好之后执行命令:

 python /opt/software/datax/bin/datax.py /opt/software/datax/job/job.json 

注意换成自己的datax路径

正常情况下输出一大堆之后会是这样,由于我在mysql表中插了三条测试数据,,所以读出记录总数为3
在这里插入图片描述完成操作

六、定时更新

6.1 创建定时任务

vim crondatax
内容:
5 13 * * * python /opt/software/datax/bin/datax.py /opt/software/datax/job/job.json

/opt/software/datax/log.date +\%Y\%m\%d\%H\%M\%S 2>&1
含义为每天13:05执行python /opt/software/datax/bin/datax.py /opt/software/datax/job/job.json 命令,日志输出地址为/opt/software/datax,命名为“log.时间”
crontab格式可参考下图:

6.2 提交定时任务

crontab crondatax

/sbin/service crond restart

6.3 查看定时任务

crontab -l

七、增量更新思路

数据库表设计时加入最后操作时间字段,新增,修改数据都会记录最新时间
Datax的json中,mysql查询语句中按照定时任务规律,查询此字段时间大于定时任务时间间隔之前的时间的数据。

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

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

相关文章

加密算法发展简介

1:对称加密算法 客户端加密数据和服务端解密数据,使用的相同的秘钥: 固定秘钥:双方约定好一个固定秘钥; 随机秘钥:双方约定每次建立连接的时候,某固定BYTE为秘钥; 缺点&#xff1a…

JK405R-SOP16录音芯片ic方案的功能简介,可以内置录音30秒-高采样率

一、简介 JK405R是一颗SOP16封装的录音芯片,专用于录音的应用,芯片内置了30秒的录音空间,同时还支持外扩 spiflash方便不同录音时长的应用需求。芯片内置MIC的放大器,并且增益可调 同时芯片还具备超低功耗,待机2uA。…

2023/9/17周报

摘要 本周阅读了两篇论文,其一为一种基于空气质量时频域特征提取的hybrid预测方法,另一篇为基于烛台与视觉几何群模型的 PM2.5 变化趋势特征提取与分类预测方法。在第一篇文章中,通过小波变化,对数据进行分频,并设计了…

Linux界的老古董

Slackware 是由 Patrick Volkerding 制作的 Linux 发行版,从 1993 年发布至今也一直在 Patrick 带领下进行维护。7 月 17 日,Slackware 才刚刚过完它 24 岁的生日,看似年纪轻轻的它,已然是 Linux 最古老的发行版。 Slackware 的发…

[vue问题]开发中问题集合

“TypeError: Cannot read property ‘Request’ of undefined” 这是测试文件的报错,最后发现是因为项目启动的时候就报错了,是其它错误导致的,所以测试文件才会提示这种错误,当启动报错修复后,该问题没有了 热加载…

[计组03]进程详解2

目录 应用程序 系统调用 驱动 软件 再看进程 进程管理 如何管理 ? 创建一个进程 注意 PCB 文件描述表 进程相关重点 为什么有进程调度 虚拟空间地址 这次我们从更加详细全面的角度看一下进程在计算机中体系中的展现 应用程序 应用程序 调动 系…

VR古迹复原——数字化复原圆明园,开创文化遗产保护新方式

圆明园是中国历史上一处重要的文化遗产,曾经被誉为“万园之园”,但在1860年的英法联军侵华战争中被毁。近年来,虚拟现实技术不断发展,广州华锐互动利用VR全景技术复原了圆明园,通过VR设备,人们可以在家中就…

CRM与chatGPT结合的效果

2023年ChatGPT是当之无愧的行业热词,从诞生到爆红短短5天,注册用户数就超过100万,截止到2023年1月底已经有超过1亿用户。在这样的背景下,Zoho CRM系统在业内较早推出集成ChatGPT的相关功能,接下来我们就来分享CRM接入C…

MySQL实现单个字段根据特定字符拆分

1.字段内容 2.想得到的效果 步骤1中,每一条记录的FJ字段,根据分号,拆分成多条,如下图所示: 3.具体实现 说明: SELECT DISTINCTsubstring_index(substring_index(a.要拆分的字段, 分隔字符, b.help_top…

【视觉检测】电源线圈上的导线弯直与否视觉检测系统软硬件方案

 检测内容 线圈上的导线弯直与否检测系统。  检测要求 检测线圈上的导线有无弯曲,弯曲度由客户自己设定。检测速度5K/8H625PCS/H。  视觉可行性分析 对样品进行了光学实验,并进行图像处理,原则上可以使用机器视觉进行测试测量…

基于springboot+vue的企业面试预约管理系统

基于springbootvue的企业面试预约管理系统 预约面试管理系统,可以通过学生,企业角色进行登录 登录后可以查看发布的岗位,发布人,发布时间,面试时间,招聘时间,招聘单位简介等 查看用户管理信息

第十三章总结

一.泛型 1.定义泛型类 泛型机制语法&#xff1a; 类名<T> 其中&#xff0c;T是泛型的名称&#xff0c;代表某一种类型。 【例13.6】创建带泛型的图书类 代码&#xff1a; 结果&#xff1a; 2.泛型的常规用法 (1)定义泛型类时声明多个变量 class MyCla…

9.14 C++作业

仿照vector手动实现自己的myVector&#xff0c;最主要实现二倍扩容功能 #include <iostream>using namespace std;template <typename T> class Myvector {T *data; //存储数据的数组int len; //当前数组的长度int mycapa; //容纳数据的总容量public://…

[春秋云境] CVE-2022-32991

CVE-2022-32991 靶标介绍 该CMS的welcome.php中存在SQL注入攻击。 解题过程 进入主界面&#xff0c;没有明显可以注入的地方&#xff0c;先注册登录。 登录之后的界面 此处有个?q1但是多次测试后&#xff0c;感觉不是注入点。 点击这个按钮&#xff0c;进入新的界面。 多…

完全保密的以太坊交易:Aztec网络的隐私架构

1. 引言 Aztec为隐私优先的以太坊zkRollup&#xff1a;即其为具有完全隐私保护的L2。 为了理解私有交易的范式变化性质&#xff0c;以及为什么将隐私直接构建到网络架构中很重要&#xff0c;必须首先讨论为什么以太坊不是私有的。 2. 以太坊&#xff1a;公有链 以太坊为具有…

elasticsearch1

个人名片&#xff1a; 博主&#xff1a;酒徒ᝰ. 个人简介&#xff1a;沉醉在酒中&#xff0c;借着一股酒劲&#xff0c;去拼搏一个未来。 本篇励志&#xff1a;三人行&#xff0c;必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》&#xff0c;SpringCloud…

翻牌闯关游戏

翻牌闯关游戏 3关&#xff1a;关卡由少至多12格、20格、30格图案&#xff1a;12个玩法&#xff1a;点击两张卡牌&#xff0c;图案一到即可消除掉 记忆时长(毫秒)&#xff1a;memoryDurationTime:5000 可配置&#xff0c;默认5000 提示游戏玩法&#xff1a;showTipsFlag:1 可…

【Redis7】--3.Redis持久化

Redis持久化 Redis持久化(Redis persistence)是指将数据写入持久化存储&#xff0c;如固态硬盘(SSD) Redis提供了一系列持久化选项&#xff0c;这些包括&#xff1a; RDB(redis数据库)&#xff1a;RDB持久化方式能够在指定的时间间隔对数据进行快照存储AOF(追加文件)&#x…

MongoDB-1入门介绍

NoSQL NoSQL(NoSQL Not Only SQL)&#xff0c;意即反SQL运动&#xff0c;指的是非关系型的数据库 优点 1、对数据库高并发读写。 2、对海量数据的高效率存储和访问。 3、对数据库的高可扩展性和高可用性。 弱点&#xff1a; 1、数据库事务一致性需求 2、数据库的写实时性…

性能测试知多少---性能分析与调优的原理

最近一直纠结性能分析与调优如何下手&#xff0c;先从硬件开始&#xff0c;还是先从代码或数据库。从操作系统&#xff08;CPU调度&#xff0c;内存管理&#xff0c;进程调度&#xff0c;磁盘I/O&#xff09;、网络、协议&#xff08;HTTP&#xff0c; TCP/IP &#xff09;&…