DataX-ElasticSearch(書き込み)

3755 ワード

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の接続先•必須:Yes•デフォルト:なし•accessId•説明:http authのuser•必須:No•デフォルト:空•accessKey•説明:http authのpassword•必須:No•デフォルト:空•index•説明:elasticsearchのindex名•必須:Yes•デフォルト:なし•type•記述:elasticsearchのindexのtype名•必須:No•デフォルト:index名•cleanup•記述:元のテーブルを削除するかどうか•必須:No•デフォルト:false•batchSize•記述:一括データごとのエントリ数•必須:No•デフォルト:1000•trySize•記述:失敗後の再試行回数•必須:No•デフォルト:30•timeout•説明:クライアントのタイムアウト時間•必須:No•デフォルト:600000•discovery•説明:ノード検出を有効にし、クライアントのサーバリストを定期的に更新します.•必須:No•デフォルト:false•compression•記述:httpリクエスト、オープン圧縮•必須:No•デフォルト:true•multiThread•記述:httpリクエスト、マルチスレッドがあるかどうか•必須:No•デフォルト:true•ignoreWriteError•記述:書き込みエラーを無視し、再試行しない、書き込み継続•必須:No•デフォルト:false•ignoreParseError•記述:解析データフォーマットエラーを無視して書き込み継続•必須:No•デフォルト:true•alias•記述:データインポート完了後に別名を書き込む•必須:No•デフォルト:No•aliasMode•記述:データインポート完了後に別名を追加するモード、append(増加モード)、exclusive(これだけ残しておく)•必須:No•デフォルト:append•settings•説明:index作成時のsettings、elasticsearch公式と同じ•必須:No•デフォルト:No•splitter•説明:挿入データがarrayの場合、指定したセパレータを使用•必須:No•デフォルト:-、-•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"
}
}
]
}
}

転載先:https://www.cnblogs.com/EnzoDin/p/10032446.html