• 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"
    }
    }
    ]
    }
    }
  • 相关阅读:
    apiAutoTest:基于mitmproxy实现接口录制
    FastAPI + Vue 前后端分离 接口自动化测试工具 apiAutoTestWeb
    FastAPI项目实战:"异步"接口测试"平台"
    apiAutoTest:自动化测试用例中调用自定义函数的实现
    测试笔记01-Git
    C++:常量
    C++: 变量类型
    C++:数据类型
    C++:第一个c++程序
    mitrproxy抓包微信小程序
  • 原文地址:https://www.cnblogs.com/EnzoDin/p/10032446.html
Copyright © 2020-2023  润新知