当前位置: 首页 > article >正文

使用阿里巴巴同步工具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.3 下载DataX:

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

 

四、编写同步Job
在datax/job下,json格式,具体内容及主要配置含义如下

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

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

{
    "job": {
        "setting": {
            "speed": {
                "channel": 1
            },
            "errorLimit": {
                "percentage": 0
            }
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "homestead",
                        "password": "secret",
                        "connection": [{
                            "querySql": ["select id,sku,write_date from good"],
                            "jdbcUrl": ["jdbc:mysql://192.168.33.10:3306/ichub2?useSSL=false"]
                        }]
                    }
                },
                "writer": {
                    "name": "elasticsearchwriter",
                    "parameter": {
                        "endpoint":"http://192.168.33.10:9200",
                        "accessId":"",
                        "accessKey":"",
                        "index": "good-sku",
                        "cleanup": false,
                        "discovery":false,
                        "column": [
                            {
                                "name": "id",
                                "type": "id"
                            },
                            {
                                "name": "sku",
                                "type": "text"
                            },
                            {
                                "name": "write_date",
                                "type": "text"
                            }

                        ]
                    }
                }
            }
        ]
    }
}

五、执行Job

配置好之后执行命令:

python /htdocs/javaproject/datax/bin/datax.py /htdocs/javaproject/datax/job/job.json

 

意换成自己的datax路径

正常情况下输出一大堆之后会是这样:

 

 可以看到完全同步成功:

 实际上这种全量同步我们完全可以放在springboot 的微服务里面去做同步:


http://www.kler.cn/news/161793.html

相关文章:

  • Django回顾【五】
  • 折半查找(数据结构实训)
  • 用PHP和HTML做登录注册操作数据库Mysql
  • Appium获取toast方法封装
  • 套接字通信类的封装
  • 【计算机网络实验】实验三 IP网络规划与路由设计(头歌)
  • MySQL 中Relay Log打满磁盘问题的排查方案
  • 98基于matlab的在MIMO通信系统中功率优化算法的仿真
  • 再识二叉树
  • 第55天:django学习(四)
  • 26.Python 网络爬虫
  • MATLAB - 绘制立体图(平面+水深)
  • 基于Amazon Bedrock介绍大语言模型
  • 分布式训练类的定义以及创建分布式模型
  • QT 重定向qdebug输出到自绘界面
  • 区分node,npm,nvm
  • uni-app实现安卓原生态调用身份证阅读器读卡库读身份证和社保卡、银行卡、IC卡等功能
  • 匹配不包含同时出现两次 “ago“ 的行
  • Redis server启动源码
  • vue 商品列表案例
  • JavaSE基础50题:11. 输出一个整数的每一位
  • CentOS 7.9 安装 k8s(详细教程)
  • Vue.js实现可编辑表格并高亮修改的单元格
  • 基于remix+metamask+ganache的智能合约部署调用
  • 注解 @Autowired 和 @Resource
  • OpenGL ES 帧缓冲对象介绍和使用示例
  • AI烟火识别智能视频分析系统解决方案
  • Dockerfile详解#如何编写自己的Dockerfile
  • Matlab 用矩阵画图
  • JAVA 多线程并发(一)