使用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配置介绍:
铺垫大概就这些把,下面是重点。
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视图
好嘞 完工