![](/img/trans.png)
[英]Python - How to add a new column on SQL server & insert rows of lists
[英]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.