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