使用logstash將Oracle數據導入到Elasticsearch

今天總結一下如何使用logstash將Oracle數據導入到Elasticsearch,然後後面會分享怎麼在KONGA中配置API接口給用戶。

首先要安裝好Logstash並且在服務端安裝好Elasticsearch!!然後開始操作:

1、進入logstash路徑

logstash路徑:

configs:裏面存放配置文件。

libs:存放可能需要使用的jar包。

sql:存放sql文件

2、進入sql路徑下,創建sql並編輯

cd ./sql
vim GXJX_KCSJLB.sql

通篇我講其中一個具體的例子,某高校的課程數據類數據(GXJX_KCSJLB):

在這個GXJX_KCSJLB.sql文件中輸入我們的查詢數據指令:

select 'gxjx_kcsjlb' as es_index,ROWNUM,KCH,KCMC,KCYWMC,XF,ZHXS,ZXS,LLXS,SYXS,KCJJ,JC,CKSM,KCFZRH,KCKSDWH,SJXS,KCJXDG,KCJBM,KCLBM,KCLXM,SFTK,TKRQSJ,KSRQSJ,ZHGXSJ,SCBZ,KCXZ,KKBMDM from GXJX_KCSJLB;

注意:

  1. 我們定義的 es_index 會在configs文件中配置爲es的索引,不能使用大寫字母,否則會導致不能識別。
  2. 注意如果是從Oracle數據庫中使用數據,可以加上ROWNUM這個屬性。在config配置中與 document_id 對應。sql指令後面可以不帶封號。
     

3、進入configs路徑下,創建config文件並編輯

cd ./configs
vim GXJX_KCSJLB.config

GXJX_KCSJLB.config 配置文件內容:

input {
  jdbc {
    jdbc_driver_library => "/home/logstash/libs/ojdbc6-11.1.0.6.0.jar"
    jdbc_driver_class => "Java::oracle.jdbc.OracleDriver"
    jdbc_connection_string => "jdbc:oracle:thin:@192.168.99.19:1521:jcxydb"
    jdbc_user => "sjbzk"
    jdbc_password => "sjbzk"
    schedule => "* * * * *"
    statement_filepath => "/home/logstash/sql/GXJX_KCSJLB.sql"
  }
}
filter {
        #以下grok和date添加了時區信息,解決後續創建index時的時區差8個區的問題
        json {
                source => "message"
                remove_field => ["message"]
        }

}
output {
    elasticsearch {
        hosts => [ "192.168.102.17:9200","192.168.102.18:9200","192.168.102.19:9200" ]
                index => "%{es_index}_index"
                document_type => "doc"
                document_id => "%{kch}"
    }
}

注意:

  1. schedule中的值意思是一分鐘執行一次。
  2. statement_filepath中填寫我們之前創建好對應的sql路徑。
  3. index => "%{es_index}_index"中“es_index”是之前在sql文件中定義新增的列,作爲這裏的索引,具體效果如下圖。
  4. document_id => "%{kch}"中的kch雖然表中是大寫,但是這裏要轉爲小寫,不然不能識別。

索引信息:

4、在configs路徑下創建vr_edition_config文件夾

爲了更好的傳輸數據,在configs路徑下創建vr_edition_config文件夾,然後將我們剛剛創建的config放到這個路徑下:

5、修改logstash的配置文件

vim /etc/logstash/pipelines.yml

添加內容:

  pipeline.id: vr_edit
  pipeline.workers: 1
  pipeline.batch.size: 1
  path.config: "/home/logstash/configs/vr_edition_config/*.config"

這裏配置path.config,將配置路徑指向我們存放config的位置。

6、重新啓動logstash並查看運行日誌

先將logstash關閉,時間可能比較長,耐心等待:

service logstash stop

重新啓動:

service logstash start

其中如圖有錯誤或者問題可以查看logstash的運行日誌:

tail -f /var/log/logstash/logstash-plain.log 

然後可以打開 http://192.168.102.17:9200/_plugin/head/ 中的Elasticsearch查看到剛剛導入的數據:

可以通過基本查詢查看裏面詳細的信息:

爲後面使用KONGA通過API訪問返回數據做好前提工作。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章