elasticsearch导入数据的几种方法

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

   Elasticsearch一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。ElasticSearch也支持存储,查询,排序,分页等数据库的功能。

下面介绍下如何把数据导入Elasticsearch

第一种方法:手动导入

1、cat test.json

1
2
{"index":{"_index":"stuff_orders","_type":"order_list","_id":903713}}
{"real_name":"刘备","user_id":48430,"address_province":"上海","address_city":"浦东新区","address_district":null,"address_street":"上海市浦东新区广兰路1弄2号345室","price":30.0,"carriage":6.0,"state":"canceled","created_at":"2013-10-24T09:09:28.000Z","payed_at":null,"goods":["营养早餐:火腿麦满分"],"position":[121.53,31.22],"weight":70.0,"height":172.0,"sex_type":"female","birthday":"1988-01-01"}

2、导入elasticsearch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@ELKServer opt]# curl -XPOST 'localhost:9200/stuff_orders/_bulk?pretty' --data-binary @test.json
{
   "took" : 600,
   "errors" : false,
   "items" : [ {
     "index" : {
       "_index" : "stuff_orders",
       "_type" : "order_list",
       "_id" : "903713",
       "_version" : 1,
       "_shards" : {
         "total" : 2,
         "successful" : 1,
         "failed" : 0
       },
       "status" : 201
     }
   } ]
}

3、查看elasticsearch是否存在数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@ELKServer opt]# curl localhost:9200/stuff_orders/order_list/903713?pretty
{
   "_index" : "stuff_orders",
   "_type" : "order_list",
   "_id" : "903713",
   "_version" : 1,
   "found" : true,
   "_source" : {
     "real_name" : "刘备",
     "user_id" : 48430,
     "address_province" : "上海",
     "address_city" : "浦东新区",
     "address_district" : null,
     "address_street" : "上海市浦东新区广兰路1弄2号345室",
     "price" : 30.0,
     "carriage" : 6.0,
     "state" : "canceled",
     "created_at" : "2013-10-24T09:09:28.000Z",
     "payed_at" : null,
     "goods" : [ "营养早餐:火腿麦满分" ],
     "position" : [ 121.53, 31.22 ],
     "weight" : 70.0,
     "height" : 172.0,
     "sex_type" : "female",
     "birthday" : "1988-01-01"
   }
}

第二种方法:从数据库中导入

参考:http://blog.csdn.net/laoyang360/article/details/51694519

1、下载安装插件elasticsearch-jdbc-2.3.4.0

1
weget http: //xbib .org /repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/2 .3.4.0 /elasticsearch-jdbc-2 .3.4.0-dist.zip

elasticsearch-jdbc-2.3.4.0-dist.zip的版本要和你安装的elasticsearch对应。 

1
2
3
unzip elasticsearch-jdbc-2.3.4.0-dist.zip
mv  elasticsearch-jdbc-2.3.4.0  /usr/local/
cd  /usr/local/elasticsearch-jdbc-2 .3.4.0/

2、配置脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
vim  import .sh
#!/bin/sh
JDBC_IMPORTER_HOME= /usr/local/elasticsearch-jdbc-2 .3.4.0
bin=$JDBC_IMPORTER_HOME /bin
lib=$JDBC_IMPORTER_HOME /lib
echo  '{
"type"  "jdbc" ,
"jdbc" : {
"elasticsearch.autodiscover" : true ,
"elasticsearch.cluster" : "my-application" #簇名 详见:/usr/local/elasticsearch/config/elasticsearch.yml
"url" : "jdbc:mysql://localhost:3306/test" ,   #mysql数据库地址
"user" : "test" ,   #mysql用户名
"password" : "1234" ,   #mysql密码
"sql" : "select *,id as _id from workers_info" ,
"elasticsearch"  : {
   "host"  "192.168.10.49" ,
   "port"  : 9300
},
"index"  "myindex" ,   #新的index
"type"  "mytype"   #新的type
}
}'| java \
   - cp  "${lib}/*"  \
   -Dlog4j.configurationFile=${bin} /log4j2 .xml \
   org.xbib.tools.Runner \
   org.xbib.tools.JDBCImporter

chmod + import.sh

sh import.sh

3、查看数据是否导入elasticsearch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@ELKServer bin] # curl -XGET 'http://localhost:9200/myindex/mytype/_search?pretty'
{
   "took"  : 15,
   "timed_out"  false ,
   "_shards"  : {
     "total"  : 5,
     "successful"  : 5,
     "failed"  : 0
   },
   "hits"  : {
     "total"  : 1,
     "max_score"  : 1.0,
     "hits"  : [ {
       "_index"  "myindex" ,
       "_type"  "mytype" ,
       "_id"  "AVZyXCReGHjmX33dpJi3" ,
       "_score"  : 1.0,
       "_source"  : {
         "id"  : 1,
         "workername"  "xing" ,
         "salary"  : 10000,
         "tel"  "1598232123" ,
         "mailbox"  "xing@qq.com" ,
         "department"  "yanfa" ,
         "sex"  "F" ,
         "qq"  : 736019646,
         "EmployedDates"  "2012-12-21T00:00:00.000+08:00"
       }
     } ]
   }
}

wKioL1e1dCCB5tn7AABBoLN-zp4909.png



本文转自 irow10 51CTO博客,原文链接:http://blog.51cto.com/irow10/1840034,如需转载请自行联系原作者

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
elasticsearch学习二:导入数据
elasticsearch学习二:导入数据
205 0
|
JSON API 开发工具
ElasticSearch7入门(二)批量导入数据(Postman与Kibana)
ElasticSearch7入门(二)批量导入数据(Postman与Kibana)
1172 0
ElasticSearch7入门(二)批量导入数据(Postman与Kibana)
|
Python
Elasticsearch批量导入数据脚本(python)
个人因业务需求,压测需要批量导入数据到es,然后这个脚本就出现了。。。。
3778 0
|
存储 NoSQL 测试技术
mongo-connector导入数据到Elasticsearch
当前测试环境下Elasticsearch版本为2.3。不同版本的mongo-connector、elastic-doc-manager/elastic2-doc-manager所支持的Elasticsearch版本不同,安装时注意版本的选择。 安装mongo-connector 测试机上Python的默认版本为2.6,由于我采用anonacoda作为Python开发环境,Python默认版
3009 0
|
分布式计算 Hadoop Java
MapReduce编程(六) 从HDFS导入数据到Elasticsearch
一、Elasticsearch for Hadoop安装 Elasticsearch for Hadoop并不像logstash、kibana一样是一个独立的软件,而是Hadoop和Elasticsearch交互所需要的jar包。
1577 0
|
7天前
|
数据可视化 索引
elasticsearch head、kibana 安装和使用
elasticsearch head、kibana 安装和使用
|
19天前
|
存储 负载均衡 索引
linux7安装elasticsearch-7.4.0集群配置
linux7安装elasticsearch-7.4.0集群配置
108 0
|
2月前
|
存储 监控 搜索推荐
在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——安装篇(一)
在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——安装篇(一)