DataX-ElasticSearch(寫)


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"
}
}
]
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM