簡體   English   中英

如何僅在Elasticsearch-Logstash-Kibana中添加新的SQL行?

[英]How to add only new SQL rows in Elasticsearch - Logstash - Kibana?

我正在嘗試將來自SQL查詢的一些數據添加到我的Elasticsearch中,並且它當前正在作為Logstash jdbc輸入運行,如下所示:

 jdbc {
        type => "database_log"
        jdbc_connection_string => "jdbc:sqlserver://(redacted)"
        jdbc_user => (redacted)
        jdbc_password => (redacted)
        jdbc_driver_library => "D:\ELK_56\sqljdbc4.jar"
        jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
        schedule => "0 * * * *"
        statement => "select user_id,First_Name from user_login"

現在的問題是,就像輸入運行的每個小時一樣,它只會添加整個查詢結果,大約124k行。 我的意圖是僅添加自上次查詢以來出現的新行(每小時大約有3-4個新行),並避免重復。

我不能僅僅通過在查詢中添加WHERE子句來解決它,因為此特定表沒有日期列或任何此類標識符。

有什么辦法讓logstash或elasticsearch本身從最新的結果中減去先前的結果,而只添加新的行?

謝謝您的回復。

我知道讓Elasticsearch過濾掉重復項的唯一方法是使要從數據庫中使用user_id列加載的索引中的字段成為索引中的_id字段。 Elasticsearch每次都必須處理和更新所有124k記錄,但這應該消除索引中的重復條目。

如上一個問題所述,您應該能夠在Logstash配置中進行設置:在elasticsearch中更改ID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM