DataX

Stella981
• 阅读 619

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"
}
}
]
}
}
点赞
收藏
评论区
推荐文章
Elasticsearch Head插件使用小结
ElasticSearchhead就是一款能连接ElasticSearch搜索引擎,并提供可视化的操作页面对ElasticSearch搜索引擎进行各种设置和数据检索功能的管理插件,如在head插件页面编写RESTful接口风格的请求,就可以对ElasticSearch中的数据进行增删改查、创建或者删除索引等操作。类似于使用navicat工具连接MySQL这种关系型数据库,对数据库做操作
Wesley13 Wesley13
2年前
mysql主丛之基于binlog的不停业务配置主从
一环境准备主:192.168.132.121从:192.168.132.122主的数据库上面已经有数据,而且还在不断的写入mysqlselectfromdarren.test;|id||1||2|
Stella981 Stella981
2年前
GreenPlum tidb 性能比较
主要的需求  针对大体量表的OLAP统计查询,需要找到一个稳定,高性能的大数据数据库,具体使用  数据可以实时的写入和查询,并发的tps不是很高建立数据仓库,模式上主要采用星星模型、雪花模型,或者宽表前端展示分为3类 saiku、granafa、c代码开发数据体量:事实表在35亿、维度表大的在500
Stella981 Stella981
2年前
Excel数据转化为sql脚本
在实际项目开发中,有时会遇到客户让我们把大量Excel数据导入数据库的情况。这时我们就可以通过将Excel数据转化为sql脚本来批量导入数据库。1在数据前插入一列单元格,用来拼写sql语句。 具体写法:"insertintot\_student(id,name,age,class)value("&B2&",'"&C2&"',"&D2&"
Easter79 Easter79
2年前
Springboot整合elasticsearch以及接口开发
Springboot整合elasticsearch以及接口开发搭建elasticsearch集群搭建过程略(我这里用的是elasticsearch5.5.2版本)写入测试数据新建索引book(非结构化索引)PUThttp://192.168.100.102:9200/book
Stella981 Stella981
2年前
DataX介绍
一.DataX3.0概览DataX是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。!(https://oscimg.oschina.net/oscnet/267abfdb4b4d98dada7551c730af4
Stella981 Stella981
2年前
Datax的txtfilereader插件实践
一、介绍TxtFileReader提供了读取本地文件系统数据存储的能力。在底层实现上,TxtFileReader获取本地文件数据,并转换为DataX传输协议传递给Writer。二、配置模版{"setting":{},"job":{"setting":{
Stella981 Stella981
2年前
Spring Boot + Elasticsearch 实现索引批量写入
!(https://oscimg.oschina.net/oscnet/93680933641f429b928fb1c36adb6202.gif)在使用Eleasticsearch进行
Wesley13 Wesley13
2年前
MongoDB与MySQL关于写确认的异同
!(https://pic3.zhimg.com/80/v2af9f6637b50b09be60b00a42f3812d5e_1440w.jpg)云妹导读:所谓写确认,是指用户将数据写入数据库之后,数据库告知用户写入成功的一个概念。根据数据库的特点和配置,可以在不同的写入程度上,返回给用户,而这其中,就涉及到了不同的性能、数据
Stella981 Stella981
2年前
ELK学习笔记之ElasticSearch的索引详解
0x00ElasticSearch的索引和MySQL的索引方式对比Elasticsearch是通过Lucene的倒排索引技术实现比关系型数据库更快的过滤。特别是它对多条件的过滤支持非常好,比如年龄在18和30之间,性别为女性这样的组合查询。倒排索引很多地方都有介绍,但是其比关系型