使用datax将mysql数据同步到ES 附elasticsearchwriter插件

使用datax将mysql数据同步到ES 附elasticsearchwriter插件


最近在准备datax相关资料 顺便把我之前遇到的问题分享一下

datax简介

DataX 是阿里开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。
github上教程写的很详细。
链接: https://github.com/alibaba/DataX

话不多说直接上配置文件:

ESquerySql.json

{
  "job": {
      "setting": {
          "speed": {
              "channel": 1,
              "record": -1,
              "byte": -1
          }
      },
      "content": [{
          "reader": {
              "name": "mysqlreader",
              "parameter": {
                  "username": "***",
                  "password": "***",
                  "column": [
                    "id",
                    "sn",
                    "name"
                  ],
                  "splitPk": "id",
                  "connection": [{
                      "table": [
                          "mysql表名"
                      ],
                      "jdbcUrl": [
     	       "jdbc:mysql://217.0.0.1:3306/***"
                      ]
              	
                  }]
              }
          },
          "writer": {
              "name": "elasticsearchwriter",
              "parameter": {
                  "endpoint": "http://localhost:9200",
                  "index": "bwm",
                  "type": "bio_260_calibration_curve",
                  "settings": {"index" :{"number_of_shards": 1, "number_of_replicas": 0}},
                  "discovery": false,
                  "batchSize": 5000,    
                  "splitter": ",",
                  "column": [
                    {"name": "id", "type": "id"},
                    { "name": "sn","type": "text" },
                    { "name": "name","type": "text" }
                  ]
              }
          }
      }]
  }
}

相关.json配置介绍:

这里面mysql配置文件的相关介绍很详细
在这里插入图片描述
铺垫大概就这些把,下面是重点。

elasticsearchwriter插件编译过程

如果你是跟我一样将mysql数据同步到ES那么你一定会遇到跟我同样的问题。datax官方文档有elasticsearch介绍却没有elasticsearchwriter插件 哈哈哈惊不惊喜。

两个办法:
下载源码:手动编译

$ git clone git@github.com:alibaba/DataX.git

依赖需要改下
reader/writer 把自己不需要的可以全删。

**        <!-- reader -->
        <module>mysqlreader</module>
        <!-- writer -->
        <module>elasticsearchwriter</module>
        <module>mysqlwriter</module>**

这里还需要说一下 一般情况下安装的ES大多都是本地用没有设置账号密码的,如果设置了可以跳过(这里我也很奇怪)datax文档里是这么说的:
在这里插入图片描述
讲道理是这两个写不写都行 ,但是会报一个认证的问题。
所以我把这个认证注释了 哈哈哈 我不管我最酷。如果你有别的办法欢迎留言

源码修改路径:F:\DataX-master\DataX-master\elasticsearchwriter\src\main\java\com\alibaba\datax\plugin\writer\elasticsearchwriter\ESClient.java
        Builder httpClientConfig = new HttpClientConfig
                .Builder(endpoint)
//              .setPreemptiveAuth(new HttpHost(endpoint)) 这行注释掉
                .multiThreaded(multiThread)
                .connTimeout(30000)
                .readTimeout(readTimeout)
                .maxTotalConnection(200)
                .requestCompressionEnabled(compression)
                .discoveryEnabled(discovery)
                .discoveryFrequency(5l, TimeUnit.MINUTES);

然后就可以打包了,将打好的包放在datax\datax\plugin\writer。

elasticsearchwriter网盘

第二种方式直接用我的把

链接:https://pan.baidu.com/s/1Ljhuka19Q-QJiXkohS1lbw 
提取码:lyy1 

执行结果:

在这里插入图片描述
ES视图
在这里插入图片描述
好嘞 完工

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值