溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何在elasticsearch中導(dǎo)入數(shù)據(jù)

發(fā)布時(shí)間:2020-06-11 17:03:15 來源:億速云 閱讀:269 作者:元一 欄目:編程語言

ElasticSearch

ElasticSearch是一個(gè)基于Lucene的搜索服務(wù)器。它提供了一個(gè)分布式多用戶能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是當(dāng)前流行的企業(yè)級(jí)搜索引擎。設(shè)計(jì)用于云計(jì)算中,能夠達(dá)到實(shí)時(shí)搜索,穩(wěn)定,可靠,快速,安裝使用方便。

1.工具安裝

elasticsearch-jdbc是一個(gè)將關(guān)系型數(shù)據(jù)庫(RDBMS)數(shù)據(jù)導(dǎo)入到ElasticSearch庫中的一個(gè)工具包,支持mysql、oracle、postgrey、csv等存儲(chǔ)列式數(shù)據(jù)的容器。目前最新的版本是2.3.4.1,支持的ElasticSearch的版本為2.3.4。

下載數(shù)據(jù)導(dǎo)入工具包 elasticsearch-jdbc-2.3.4.1-dist.zip,可以到官方網(wǎng)站上下載,

由于github上是只有原代碼,沒有編譯好的可執(zhí)行包,可以到版本庫上[下載] (http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/) 相應(yīng)的版本

注意elasticsearch-jdbc版本與 elasticsearch要對(duì)應(yīng)上,具體版本對(duì)應(yīng)可以到github上看

https://github.com/jprante/elasticsearch-jdbc

下載

wget http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/

如果這種方式下載慢,也可以本地下載后上傳

得到的elasticsearch-jdbc-2.3.4.1-dist.zip 的包可以解壓到任何目錄,elasticsearch-jdbc是一個(gè)獨(dú)立的項(xiàng)目,并不是原來的老版本需要導(dǎo)入elasticsearch的plugins目錄中,作為elasticsearch的插件安裝

unzip elasticsearch-jdbc-2.3.4.1-dist.zip

解壓得到目錄

/bin

/lib

這樣就安裝成功了

注意如果你導(dǎo)入的數(shù)據(jù)庫不是mysql數(shù)據(jù)庫,那你需要在lib目錄中放入相應(yīng)數(shù)據(jù)庫的驅(qū)動(dòng)包,因?yàn)閑lasticsearch-jdbc默認(rèn)就有mysql的驅(qū)動(dòng),所以數(shù)據(jù)庫是mysql就不用了

2.編寫導(dǎo)入腳本

可以進(jìn)入bin目錄下,里面很多數(shù)據(jù)導(dǎo)入腳本的范例腳本,可以稍做修改就可以用了,例如mysql-blog.sh  就是mysql數(shù)據(jù)庫導(dǎo)入的例子

我的導(dǎo)入腳本如下

#!/bin/sh bin=/opt/elasticsearch-jdbc-2.3.4.1/bin lib=/opt/elasticsearch-jdbc-2.3.4.1/lib echo ' {     "type" : "jdbc",     "jdbc" : {         "url" : "jdbc:mysql://10.3.5.21:3306/998pz?useUnicode=true&characterEncoding=utf-8",         "user" : "root",         "password" : "roottest",         "sql" : "select p.name,p.type from prompt p;",         "index" : "prompt",         "type" : "prompt",         "metrics": {             "enabled" : true         },         "elasticsearch" : {          "cluster" : "es-cluster",              "host" : "10.3.32.83",              "port" : 9300          }        } } ' | java \     -cp "${lib}/*" \     -Dlog4j.configurationFile=${bin}/log4j2.xml \     org.xbib.tools.Runner \     org.xbib.tools.JDBCImporter

該腳本將表prompt的數(shù)據(jù)導(dǎo)入到索引prompt中去

注意:導(dǎo)入的字段名一定要跟索引的字段名一樣

腳本編輯完成后需要賦予文件相應(yīng)的執(zhí)行權(quán)限

chmod 777 prompt.sh

如果導(dǎo)入腳本是你本地windows上編輯好上傳到服務(wù)器,可能會(huì)因?yàn)閣indows編碼與linux編碼不一致,出現(xiàn)莫名其妙的錯(cuò)誤,可以用vi編輯進(jìn)入文件

在命令模式下,轉(zhuǎn)換相應(yīng)的編碼

set ff=unix

3.導(dǎo)入地理坐標(biāo)數(shù)據(jù)

索引

"location": {"store": true,"type": "geo_point"}

腳本

#!/bin/sh bin=/opt/elasticsearch-jdbc-2.3.4.1/bin lib=/opt/elasticsearch-jdbc-2.3.4.1/lib echo ' {     "type" : "jdbc",     "jdbc" : {         "url" : "jdbc:mysql://10.3.5.21:3306/998pz?useUnicode=true&characterEncoding=utf-8",         "user" : "root",         "password" : "roottest",         "sql" : "SELECT bh.,bh.name as nameSuggest,bh.latitude AS \"location.lat\", bh.longitude as \"location.lon\" FROM bd_hospital bh;",         "index" : "hospital2",         "type" : "hospital2",         "metrics": {             "enabled" : true         },         "elasticsearch" : {          "cluster" : "es-cluster",              "host" : "10.3.32.83",              "port" : 9300          }        } } ' | java \     -cp "${lib}/" \     -Dlog4j.configurationFile=${bin}/log4j2.xml \     org.xbib.tools.Runner \     org.xbib.tools.JDBCImporter

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI