天天看點

elasticsearch導入資料的幾種方法

   Elasticsearch一個分布式多使用者能力的全文搜尋引擎,基于RESTful web接口。ElasticSearch也支援存儲,查詢,排序,分頁等資料庫的功能。

下面介紹下如何把資料導入Elasticsearch

第一種方法:手動導入

1、cat test.json

1

2

<code>{"index":{"_index":"stuff_orders","_type":"order_list","_id":903713}}</code>

<code>{"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"}</code>

2、導入elasticsearch

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<code>[root@ELKServer opt]# curl -XPOST 'localhost:9200/stuff_orders/_bulk?pretty' --data-binary @test.json</code>

<code>{</code>

<code>  </code><code>"took" : 600,</code>

<code>  </code><code>"errors" : false,</code>

<code>  </code><code>"items" : [ {</code>

<code>    </code><code>"index" : {</code>

<code>      </code><code>"_index" : "stuff_orders",</code>

<code>      </code><code>"_type" : "order_list",</code>

<code>      </code><code>"_id" : "903713",</code>

<code>      </code><code>"_version" : 1,</code>

<code>      </code><code>"_shards" : {</code>

<code>        </code><code>"total" : 2,</code>

<code>        </code><code>"successful" : 1,</code>

<code>        </code><code>"failed" : 0</code>

<code>      </code><code>},</code>

<code>      </code><code>"status" : 201</code>

<code>    </code><code>}</code>

<code>  </code><code>} ]</code>

<code>}</code>

3、檢視elasticsearch是否存在資料

20

21

22

23

24

25

26

27

<code>[root@ELKServer opt]# curl localhost:9200/stuff_orders/order_list/903713?pretty</code>

<code>  </code><code>"_index" : "stuff_orders",</code>

<code>  </code><code>"_type" : "order_list",</code>

<code>  </code><code>"_id" : "903713",</code>

<code>  </code><code>"_version" : 1,</code>

<code>  </code><code>"found" : true,</code>

<code>  </code><code>"_source" : {</code>

<code>    </code><code>"real_name" : "劉備",</code>

<code>    </code><code>"user_id" : 48430,</code>

<code>    </code><code>"address_province" : "上海",</code>

<code>    </code><code>"address_city" : "浦東新區",</code>

<code>    </code><code>"address_district" : null,</code>

<code>    </code><code>"address_street" : "上海市浦東新區廣蘭路1弄2号345室",</code>

<code>    </code><code>"price" : 30.0,</code>

<code>    </code><code>"carriage" : 6.0,</code>

<code>    </code><code>"state" : "canceled",</code>

<code>    </code><code>"created_at" : "2013-10-24T09:09:28.000Z",</code>

<code>    </code><code>"payed_at" : null,</code>

<code>    </code><code>"goods" : [ "營養早餐:火腿麥滿分" ],</code>

<code>    </code><code>"position" : [ 121.53, 31.22 ],</code>

<code>    </code><code>"weight" : 70.0,</code>

<code>    </code><code>"height" : 172.0,</code>

<code>    </code><code>"sex_type" : "female",</code>

<code>    </code><code>"birthday" : "1988-01-01"</code>

<code>  </code><code>}</code>

第二種方法:從資料庫中導入

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

1、下載下傳安裝插件elasticsearch-jdbc-2.3.4.0

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

elasticsearch-jdbc-2.3.4.0-dist.zip的版本要和你安裝的elasticsearch對應。 

<code>unzip elasticsearch-jdbc-2.3.4.0-dist.zip</code>

<code>mv</code> <code>elasticsearch-jdbc-2.3.4.0 </code><code>/usr/local/</code>

<code>cd</code> <code>/usr/local/elasticsearch-jdbc-2</code><code>.3.4.0/</code>

2、配置腳本

<code>vim </code><code>import</code><code>.sh</code>

<code>#!/bin/sh</code>

<code>JDBC_IMPORTER_HOME=</code><code>/usr/local/elasticsearch-jdbc-2</code><code>.3.4.0</code>

<code>bin=$JDBC_IMPORTER_HOME</code><code>/bin</code>

<code>lib=$JDBC_IMPORTER_HOME</code><code>/lib</code>

<code>echo</code> <code>'{</code>

<code>"type"</code> <code>: </code><code>"jdbc"</code><code>,</code>

<code>"jdbc"</code><code>: {</code>

<code>"elasticsearch.autodiscover"</code><code>:</code><code>true</code><code>,</code>

<code>"elasticsearch.cluster"</code><code>:</code><code>"my-application"</code><code>, </code><code>#簇名 詳見:/usr/local/elasticsearch/config/elasticsearch.yml</code>

<code>"url"</code><code>:</code><code>"jdbc:mysql://localhost:3306/test"</code><code>,  </code><code>#mysql資料庫位址</code>

<code>"user"</code><code>:</code><code>"test"</code><code>,  </code><code>#mysql使用者名</code>

<code>"password"</code><code>:</code><code>"1234"</code><code>,  </code><code>#mysql密碼</code>

<code>"sql"</code><code>:</code><code>"select *,id as _id from workers_info"</code><code>,</code>

<code>"elasticsearch"</code> <code>: {</code>

<code>  </code><code>"host"</code> <code>: </code><code>"192.168.10.49"</code><code>,</code>

<code>  </code><code>"port"</code> <code>: 9300</code>

<code>},</code>

<code>"index"</code> <code>: </code><code>"myindex"</code><code>,  </code><code>#新的index</code>

<code>"type"</code> <code>: </code><code>"mytype"</code>  <code>#新的type</code>

<code>}'| java \</code>

<code>  </code><code>-</code><code>cp</code> <code>"${lib}/*"</code> <code>\</code>

<code>  </code><code>-Dlog4j.configurationFile=${bin}</code><code>/log4j2</code><code>.xml \</code>

<code>  </code><code>org.xbib.tools.Runner \</code>

<code>  </code><code>org.xbib.tools.JDBCImporter</code>

chmod + import.sh

sh import.sh

3、檢視資料是否導入elasticsearch

28

29

30

31

<code>[root@ELKServer bin]</code><code># curl -XGET 'http://localhost:9200/myindex/mytype/_search?pretty'</code>

<code>  </code><code>"took"</code> <code>: 15,</code>

<code>  </code><code>"timed_out"</code> <code>: </code><code>false</code><code>,</code>

<code>  </code><code>"_shards"</code> <code>: {</code>

<code>    </code><code>"total"</code> <code>: 5,</code>

<code>    </code><code>"successful"</code> <code>: 5,</code>

<code>    </code><code>"failed"</code> <code>: 0</code>

<code>  </code><code>},</code>

<code>  </code><code>"hits"</code> <code>: {</code>

<code>    </code><code>"total"</code> <code>: 1,</code>

<code>    </code><code>"max_score"</code> <code>: 1.0,</code>

<code>    </code><code>"hits"</code> <code>: [ {</code>

<code>      </code><code>"_index"</code> <code>: </code><code>"myindex"</code><code>,</code>

<code>      </code><code>"_type"</code> <code>: </code><code>"mytype"</code><code>,</code>

<code>      </code><code>"_id"</code> <code>: </code><code>"AVZyXCReGHjmX33dpJi3"</code><code>,</code>

<code>      </code><code>"_score"</code> <code>: 1.0,</code>

<code>      </code><code>"_source"</code> <code>: {</code>

<code>        </code><code>"id"</code> <code>: 1,</code>

<code>        </code><code>"workername"</code> <code>: </code><code>"xing"</code><code>,</code>

<code>        </code><code>"salary"</code> <code>: 10000,</code>

<code>        </code><code>"tel"</code> <code>: </code><code>"1598232123"</code><code>,</code>

<code>        </code><code>"mailbox"</code> <code>: </code><code>"[email protected]"</code><code>,</code>

<code>        </code><code>"department"</code> <code>: </code><code>"yanfa"</code><code>,</code>

<code>        </code><code>"sex"</code> <code>: </code><code>"F"</code><code>,</code>

<code>        </code><code>"qq"</code> <code>: 736019646,</code>

<code>        </code><code>"EmployedDates"</code> <code>: </code><code>"2012-12-21T00:00:00.000+08:00"</code>

<code>      </code><code>}</code>

<code>    </code><code>} ]</code>

<a href="http://s2.51cto.com/wyfs02/M00/86/21/wKioL1e1dCCB5tn7AABBoLN-zp4909.png" target="_blank"></a>

本文轉自 irow10 51CTO部落格,原文連結:http://blog.51cto.com/irow10/1840034,如需轉載請自行聯系原作者