使用阿里巴巴同步工具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 的微服务里面去做同步:

相关推荐

  1. 阿里实习面经

    2023-12-08 01:46:03       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 01:46:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 01:46:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 01:46:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 01:46:03       18 阅读

热门阅读

  1. 关于如何写好单元测试的思考

    2023-12-08 01:46:03       39 阅读
  2. docker的知识点,以及使用

    2023-12-08 01:46:03       33 阅读
  3. react的组件和元素的类型总结

    2023-12-08 01:46:03       43 阅读
  4. 大数据基础设施搭建 - Flume

    2023-12-08 01:46:03       25 阅读
  5. LeetCode40. Combination Sum II

    2023-12-08 01:46:03       34 阅读
  6. Docker

    Docker

    2023-12-08 01:46:03      26 阅读
  7. 绘制爆炸轨迹 III:绘制条形轨迹 Python

    2023-12-08 01:46:03       31 阅读
  8. 快速去除Word文档密码,全面解决你的困扰

    2023-12-08 01:46:03       36 阅读
  9. 介绍chatgpt原理及技术架构

    2023-12-08 01:46:03       41 阅读