DataX寫入ElasticSearch
1 快速介紹
數據導入elasticsearch的插件
2 實現原理
使用elasticsearch的rest api接口, 批量把從reader讀入的數據寫入elasticsearch
3功能說明
3.1配置樣例
{ "job": { "setting": { "speed": { "channel": 1, "record": -1, "byte": -1 } }, "content": [{ "reader": { "name": "mysqlreader", "parameter": { "username": "root", "password": "1234qwer", "column": [ "id", "name" ], "splitPk": "id", "connection": [{ "table": [ "datax_test" ], "jdbcUrl": [ "jdbc:mysql://localhost:3306/test" ] }] } }, "writer": { "name": "elasticsearchwriter", "parameter": { "endpoint": "http://localhost:9200", "accessId": "admin", "accessKey": "123456", "index": "test-datax", "type": "default", "cleanup": true, "settings": { "index": { "number_of_shards": 1, "number_of_replicas": 0 } }, "discovery": false, "batchSize": 1000, "splitter": ",", "column": [{ "name": "id", "type": "id" }, { "name": "name", "type": "string" } ] } } }] } }
參數說明
• endpoint
• 描述:ElasticSearch的連接地址
• 必選:是
• 默認值:無
• accessId
• 描述:http auth中的user
• 必選:否
• 默認值:空
• accessKey
• 描述:http auth中的password
• 必選:否
• 默認值:空
• index
• 描述:elasticsearch中的index名
• 必選:是
• 默認值:無
• type
• 描述:elasticsearch中index的type名
• 必選:否
• 默認值:index名
• cleanup
• 描述:是否刪除原表
• 必選:否
• 默認值:false
• batchSize
• 描述:每次批量數據的條數
• 必選:否
• 默認值:1000
• trySize
• 描述:失敗后重試的次數
• 必選:否
• 默認值:30
• timeout
• 描述:客戶端超時時間
• 必選:否
• 默認值:600000
• discovery
• 描述:啟用節點發現將(輪詢)並定期更新客戶機中的服務器列表。
• 必選:否
• 默認值:false
• compression
• 描述:http請求,開啟壓縮
• 必選:否
• 默認值:true
• multiThread
• 描述:http請求,是否有多線程
• 必選:否
• 默認值:true
• ignoreWriteError
• 描述:忽略寫入錯誤,不重試,繼續寫入
• 必選:否
• 默認值:false
• ignoreParseError
• 描述:忽略解析數據格式錯誤,繼續寫入
• 必選:否
• 默認值:true
• alias
• 描述:數據導入完成后寫入別名
• 必選:否
• 默認值:無
• aliasMode
• 描述:數據導入完成后增加別名的模式,append(增加模式), exclusive(只留這一個)
• 必選:否
• 默認值:append
• settings
• 描述:創建index時候的settings, 與elasticsearch官方相同
• 必選:否
• 默認值:無
• splitter
• 描述:如果插入數據是array,就使用指定分隔符
• 必選:否
• 默認值:-,-
• column
• 描述:elasticsearch所支持的字段類型,樣例中包含了全部
• 必選:是
• dynamic
• 描述: 不使用datax的mappings,使用es自己的自動mappings
• 必選: 否
• 默認值: false
執行
./datax.py /Users/FengZhen/Desktop/Hadoop/dataX/json/ES/1.write2ES.json
看結果
FengZhendeMacBook-Pro:bin FengZhen$ curl -XGET 'http://localhost:9200/test-datax/default/_search?pretty' { "took" : 16, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 2, "max_score" : 1.0, "hits" : [ { "_index" : "test-datax", "_type" : "default", "_id" : "1", "_score" : 1.0, "_source" : { "name" : "fz" } }, { "_index" : "test-datax", "_type" : "default", "_id" : "2", "_score" : 1.0, "_source" : { "name" : "dx" } } ] } }