1、使用datax工具将mysql数据库中的数据同步到elasticsearch中。DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入,目前支持数据如下图:
类型 | 数据源 | Reader(读) | Writer(写) | 文档 |
---|---|---|---|---|
RDBMS 关系型数据库 | MySQL | √ | √ | 读 、写 |
Oracle | √ | √ | 读 、写 | |
SQLServer | √ | √ | 读 、写 | |
PostgreSQL | √ | √ | 读 、写 | |
DRDS | √ | √ | 读 、写 | |
通用RDBMS(支持所有关系型数据库) | √ | √ | 读 、写 | |
阿里云数仓数据存储 | ODPS | √ | √ | 读 、写 |
ADS | √ | 写 | ||
OSS | √ | √ | 读 、写 | |
OCS | √ | √ | 读 、写 | |
NoSQL数据存储 | OTS | √ | √ | 读 、写 |
Hbase0.94 | √ | √ | 读 、写 | |
Hbase1.1 | √ | √ | 读 、写 | |
Phoenix4.x | √ | √ | 读 、写 | |
Phoenix5.x | √ | √ | 读 、写 | |
MongoDB | √ | √ | 读 、写 | |
Hive | √ | √ | 读 、写 | |
Cassandra | √ | √ | 读 、写 | |
无结构化数据存储 | TxtFile | √ | √ | 读 、写 |
FTP | √ | √ | 读 、写 | |
HDFS | √ | √ | 读 、写 | |
Elasticsearch | √ | 写 | ||
时间序列数据库 | OpenTSDB | √ | 读 | |
TSDB | √ | √ | 读 、写 |
可以看到Elasticsearch只支持写,但是不支持读的,如果支持从Elasticsearch读出来,写到mysql也是很好的哦!
2、datax的安装,配置就不写了,之前搞过,现在需要搞一个mysql写到elasticsearch的json。
1 { 2 "job": { 3 "setting": { 4 "speed": { 5 "byte": 8388608, 6 "channel": 3 7 }, 8 "errorLimit": { 9 "record": 0, 10 "percentage": 0.02 11 } 12 }, 13 "content": [{ 14 "reader": { 15 "name": "mysqlreader", 16 "parameter": { 17 "username": "账号", 18 "password": "密码", 19 "column": ["appkey"], 20 "connection": [{ 21 "table": ["数据表名称"], 22 "jdbcUrl": ["jdbc:mysql://ip地址:端口号/数据库名称"] 23 }] 24 } 25 }, 26 "writer": { 27 "name": "elasticsearchwriter", 28 "parameter": { 29 "endpoint": "http://ip地址:9200", 30 "index": "shared_log", # 索引的名称 31 "type": "doc", # 类型的名称 32 "cleanup": false, #true表示插入前清空,即覆盖同步;false则追加同步 33 "dynamic": true, #这里一定要指定为true,否则使用的是datax的模板,而不会使用es的模板 34 "settings": { 35 "index": { 36 "number_of_shards": 12, # 分片的数量 37 "number_of_replicas": 0 # 副本的数量 38 } 39 }, 40 "batchSize": 10000, 41 "splitter": ",", 42 "column": [{ 43 "name": "appkey", # 字段名称 44 "type": "keyword" # 字段类型 45 }] 46 } 47 } 48 }] 49 } 50 }
注意,需要搞一个elasticsearchwriter插件,将elasticsearchwriter插件放在datax\datax\plugin\writer。
关于elasticsearchwriter插件的打包方式参数:http://www.bubuko.com/infodetail-3663894.html