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。
代码语言:javascript复制 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插件放在dataxdataxpluginwriter。
关于elasticsearchwriter插件的打包方式参数:http://www.bubuko.com/infodetail-3663894.html