logstash數據遷移


logstash是一個非常強大的數據遷移工具。這里主要記錄今天使用到的幾個簡單用法。

其中比較需要注意的是 遷移到elasticsearch的時候,output 的 elasticsearch 中的 mappings 最好自己建。雖然不自己建立logstash會自動建立,但是自動建立出來的mappings里面有些參數可能就不是我們預期想要的,導致再查詢的時候出現問題。這個地方不要偷懶。

 

首先配置 conf文件。

(1)elasticsearch遷移到elasticsearch

input {
    elasticsearch {
        hosts => ["172.19.165.221"]
        index => "v3_19q3_detail_hotel"
        size => 200
        scroll => "1m"
    }
}
filter {
}
output {
    elasticsearch {
        hosts => ["127.0.0.1"]
        index => "v4_hotel"
    }
}

 

(2)es保存到file

input {
    elasticsearch {
        hosts => ["172.19.165.221"]
        index => "v3_19q3_detail_hotel"
        size => 100
        scroll => "1m"
    }
}
filter {
}
output {
    file {
        path => "F:/hotel/v4.json"
    }
}

保存json文件中數據像這樣:

image

每一行都是一個json串。保存下來的文件一般會很大,一般的編輯器打不開,個人用VS Code打開的(因為只需要從中拿幾條數據就行了)

 

(3)file到es

input {
    file {
        path => "F:/hotel/v203.json"
        start_position => "beginning"
    
        #設置編碼
        codec => json {charset => "UTF-8"}
    }
}
filter {
}
output {
    elasticsearch {
        hosts => ["127.0.0.1"]
        index => "v4_hotel"
    }
}

 

conf文件配置完成后執行logstash,參照以下:

bin/logstash -f es-es.conf

根據個人情況需要做修改。

 

需要注意的一個情況是,file到es 的情況,執行一次logstash 后,logstash似乎會緩存已經執行的數據,做第二次執行如果文件中沒有數據改變時不會入庫的。

 

參考博客:

https://blog.csdn.net/weixin_34268610/article/details/85072470

https://www.cnblogs.com/yaoqingyuan/p/7293909.html

https://blog.csdn.net/alan_liuyue/article/details/92635108

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM