1. 程式人生 > 資料庫 >使用datax將mysql資料同步到ES 附elasticsearchwriter外掛

使用datax將mysql資料同步到ES 附elasticsearchwriter外掛

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