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

news2024/11/25 11:53:38

文章目录

  • 一、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.coloradmin.cn/o/1009533.html

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

相关文章

定制化图标——Element UI 组件图标替换指南

本篇博客将介绍如何在使用 Element UI 组件时对原生图标进行定制化替换,提供了适用于满足个性化需求的方法和技巧。 引言 Element UI 是一款基于 Vue.js 的流行 UI 组件库,在前端开发中得到广泛应用。然而,在使用 Element UI 的组件时&#…

java内存泄漏和内存溢出oom排查思路

1、可能出现 2、如何去进行排查 3、visualvm分析 4、Jprofile分析 案例

使用C#开发163邮件发送功能

创建SMTP服务器(发送邮件需要SMTP服务器代发) 这里介绍创建网易SMTP(SMTP是邮件通讯格式)服务器: 1.先注册一个163网易邮箱 2.注册成功后登陆该邮箱 3.在该邮箱中找到设置>POP3/SMTP/IMAP点击进入,如下…

【LeetCode-简单题】541. 反转字符串 II

文章目录 题目方法一:双指针 题目 方法一:双指针 题目的意思: 通俗一点说,每隔k个反转k个,末尾不够k个时全部反转; 需要注意右边界的取值 int r Math.min(l k -1,n-1);//取右边界与n-1的最小值 确定边界…

抖店什么类目容易起店?新开通的抖店,最好是从这几个类目做起

我是王路飞。 做抖店之前,你需要先考虑好自己要做什么类目,适合做什么类目。 如果你什么都不了解,单凭自己的个人喜好去确定类目,大概率是做不起来的。 因为你作为一个没有电商经验的新手,并没有足够的能力判断抖音…

2020南京站ICPC F Firworks - 概率 + 三分

几何分布:每次时间发生的概率互不影响 每次成功的概率是1 - (1 - p)^ k,所以期望就为1 / (1 - (1 - p)^ k)。 期望再乘以该次花费的时间就是在第k轮放烟花的答案,然后让我们求最小…

celery app control inspect python后台控制

i tasks.app.control.inspect() # 创建inspect对象,可以操作tasks的队列管理 i.active(safeNone) # Return list of tasks currently executed by workers. i.reserved(safeNone) # Return list of currently reserved tasks, not including scheduled/active c…

2023年华为杯研究生数学建模竞赛辅导

2023年华为杯研究生数学建模竞赛辅导 各研究生培养单位: 中国研究生数学建模竞赛作为教育部学位管理与研究生教育司指导,中国学位与研究生教育学会、中国科协青少年科技中心主办的“中国研究生创新实践系列大赛”主题赛事之一,是一项面向在校…

【SpringBoot】生成二维码、在图片中嵌入二维码

背景 说明:本文章是介绍,在一张背景图片中嵌入生成的二维码和中文文字。 用处:比如活动分享二维码的时候,提供一张背景图,然后在背景图中嵌入二维码等。 注意:二维码和文字的位置需要你自行调整。 一、依赖…

el-dialog__body的border-radius属性失效解决思路

我的代码 .select-page :deep(.el-dialog__body) {padding: 0;width: 39.35vw;height: 60.03vh;background: #FFFFFF;border-radius: 3.78vh; }我查到的解决方案: 1、设置border:none; 去掉边框; 2、设置border-radius:40px; ; 3…

电工-实验图解二极管伏安特性曲线和主要参数

实验图解二极管伏安特性曲线和主要参数 晶体二极管主要是由一个PN结构成,因此它应该与PN结具有相同的特性,即具有单向导电性。下面介绍加在二极管两端的电压和流过二极管的电流之间的关系。即二极管的伏安特性及二极管主要参数。 二极管伏安特性曲线 …

Java高级: 反射

目录 反射反射概述反射获取类的字节码反射获取类的构造器反射获取构造器的作用反射获取成员变量&使用反射获取成员方法反射获取成员方法的作用 反射的应用案例 接下来我们学习的反射、动态代理、注解等知识点,在以后开发中极少用到,这些技术都是以后…

李佳琦掉粉,国货品牌却从“商战大剧”走向“情景喜剧”

李佳琦直播间带货怼网友,“哪里贵了,国货很难的”“这么多年工资没涨,有没有认真工作?”本人事后垂泪道歉仍掉粉百万,但是闻风而来的国货品牌却迎来了一场流量盛宴。 从蜂花蹲点“捡”粉丝,上架三款79元洗…

多元函数的偏导数

目录 偏导数的定义 二元函数偏导数的几何意义 高阶偏导数 全微分 偏导数的定义 偏导数是一种特殊的数学概念,它是针对一个多变量的函数在某个自变量上的导数。 具体来说,对于一个有多个自变量的函数yf(x0, x1, xj, ..., xn),在自变量xk固…

TCP特性的滑动窗口,流量控制

目录 一、TCP特性滑动窗口 二、TCP特性流量控制(作为滑动窗口的补充) 一、TCP特性滑动窗口 提高传输效率(更准确的说,让TCP在可靠传输的前提下,效率不太拉跨)💛 当然你要是想让TCP媲美UDP&…

清水模板是什么材质?

清水模板是建筑施工中常用的一种模板,用于浇筑混凝土结构的形成和支撑。它是指没有进行任何装饰和涂层处理的模板,通常由木材制成,如胶合板、钢模板等。下面是关于清水模板的详细介绍。 清水模板的材质多样,其中最常见的是胶合板。…

ASEMI二极管1N4148(T4)的用途和使用建议

编辑-Z 二极管是一种常见的电子元件,其中1N4148(T4)是一款广泛使用的快恢复二极管。它具有快速的开关特性和高反向阻挡能力,适用于多种电子应用。本文将介绍1N4148(T4)的特点、用途和如何正确使用该二极管…

《PostgreSQL中的JSON处理:技巧与应用》

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🐅🐾猫头虎建议程序员必备技术栈一览表📖: 🛠️ 全栈技术 Full Stack: &#x1f4da…

centos7更新podman到最新版

实验环境:centos7.7.1908 1.安装podman并查看版本 $ yum install podman -y $ podman -v [rootd7cb4574cd89 /]# podman -v podman version 1.6.4 centos7默认安装的podman版本是1.6.4,现在我们要把podman升级到最新版。 2.删除现有podman $ yum remo…

C语言编程题(三)整型和浮点型混合运算

C语言——整型和浮点型混合运算_int与float的混合计算__好好学习的博客-CSDN博客 请写出165.25(10进制)使用float型存储在计算机中的形式。 在计算机中,浮点数使用IEEE 754标准来表示。根据IEEE 754标准,32位的单精度浮点数(float类型&#…