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

DataX-ElasticSearch(写)的更多相关文章

  1. .Net Core 实践 - 使用log4net记录日志(3)— log4net向ElasticSearch写日志

    demo地址:https://github.com/PuzzledAlien/log4net_demo/tree/master/DotNetCoreConsole_V3 Windows 10 安装部署 ...

  2. How to resolve unassigned shards in Elasticsearch——写得非常好

    How to resolve unassigned shards in Elasticsearch 转自:https://www.datadoghq.com/blog/elasticsearch-un ...

  3. 异构数据库迁移——DATAX

    背景 在最近接触到的一个case里面,需要把db2的数据迁移至oracle,客户可接收的停机时间为3小时. 同步方式的比较 一说到停机时间,大家第一时间想到Oracle公司的GoldenGate实时同 ...

  4. 环境篇:数据同步工具DataX

    环境篇:数据同步工具DataX 1 概述 https://github.com/alibaba/DataX DataX是什么? DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 ...

  5. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作(二)

    CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ...

  6. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作

    http://www.cnblogs.com/wgp13x/p/4934521.html 内容一样,样式好的版本. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据 ...

  7. Elasticsearch安装和使用

    Elasticsearch安装和使用 Elasticsearch 是开源搜索平台的新成员,实时数据分析的神器,发展迅猛,基于 Lucene.RESTful.分布式.面向云计算设计.实时搜索.全文搜索. ...

  8. ELK系列~log4-nxlog-Fluentd-elasticsearch写json数据需要注意的几点

    经验与实践 前两篇文章里我们介绍了nxlog的日志收集和转发<ELK系列~Nxlog日志收集加转发(解决log4日志换行导致json转换失败问题)>,今天我们主要总结一下,在与log4和f ...

  9. Windows 10 安装 ElasticSearch

    Java环境准备 可以下载oracle最新的JDK,作为C#程序员,支持一下微软的Mobile OpenJDK,构建一下Java环境. 微软的OpenJDK是针对Xamarin.Android的SDK ...

  10. ElasticSearch 索引 剖析

    ElasticSearch index 剖析 在看ElasticSearch权威指南基础入门中关于:分片内部原理这一小节内容后,大致对ElasticSearch的索引.搜索底层实现有了一个初步的认识. ...

随机推荐

  1. Unity3d 重力感应

    Input.acceleration 加速度 最近一次测量的设备在三维空间中的线性加速度(只读); void Update () { v3=Input.acceleration; } void OnG ...

  2. Codeforces 678E Another Sith Tournament 状压DP

    题意: 有\(n(n \leq 18)\)个人打擂台赛,编号从\(1\)到\(n\),主角是\(1\)号. 一开始主角先选一个擂主,和一个打擂的人. 两个人之中胜的人留下来当擂主等主角决定下一个人打擂 ...

  3. 1686 第K大区间(尺取+二分)

    1686 第K大区间 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 定义一个区间的值为其众数出现的次数.现给出n个数,求将所有区间的值排序后,第K大的值为多少. ...

  4. javascript基础(整理自廖雪峰)

    不要使用==比较,始终坚持使用===比较false == 0; //返回true. 这种情况, 它会自动转换数据类型再比较false === 0; //返回false. 建议用这种方式 NaN === ...

  5. python函数回顾:getattr()

    描述 getattr() 函数用于返回一个对象属性值. 语法 getattr 语法: getattr(object, name[, default]) 参数 object -- 对象. name -- ...

  6. MySQL中kill所有慢查询进程和锁表进程

    1.kill所有慢查询进程: #!/bin/bash mysql -uroot -pMy_Password -e "show processlist" | grep -i &quo ...

  7. 测试百度地图输入GPS经纬度显示位置API

    1.我的GPS获取的经纬度做度分秒转换后为 34.636055,112.40832 2.百度API介绍 GPS的坐标是WGS84,所以测试API http://api.map.baidu.com/ge ...

  8. Groovy系列-groovy比起Java--有哪些地方写起来更舒服?

    groovy比起java-有哪些地方写起来更舒服 java发展缓慢,语法落后冗余 说起java,其实java挺好的,java现在的性能也不错,但是,java的语法显然比较落后,而且冗余,getter/ ...

  9. Django设置上传文件夹

    django提供了两种字段类型models.FileField与models.ImageField,用于保存上传文件与图象.这两类字段提供了一个参数'upload_to',用于定义上传文件保存的路径( ...

  10. KVM虚拟化安装配置

    一.KVM的基础配置及安装: 1.查看是CPU否支持虚拟化: [root@oldboy-node1 ~]# grep -E "(vmx|svm)" /proc/cpuinfo vm ...