簡體   English   中英

elasticsearch logstash 在輸入中不存在時刪除

[英]elasticsearch logstash delete when does not exist in input

我有一個 elasticsearch 數據庫,如果輸入語句中不存在,我想刪除所有文檔? 你能幫我嗎,

提前致謝

input {
jdbc {
    jdbc_validate_connection => true
    jdbc_connection_string => "jdbc:postgresql://xxxx:xxxx/xxxx"
    jdbc_user => "xxxx"
    jdbc_password => "xxxx"
    jdbc_driver_library => "/usr/share/logstash/Drivers/postgres/postgresql-9.4.1212.jar"
    jdbc_driver_class => "org.postgresql.Driver"
    statement => "SELECT acso.usagers.id as id FROM acso.usagers WHERE acso.usagers.date_suppression is null"
    tags => ["idUsagers"]
}}  filter {}output {
elasticsearch {
    action => delete
    index => "usagers"
    document_type => "atms"
    doc_as_upsert => true
    document_id => "%{id}"
    hosts => "xxxxxx.example.org"}}

如果我正確理解您的問題,您想從 ES 中刪除 JDBC 查詢未返回的任何文檔。 如果這是正確的,我會看到兩個選項:

  • 運行查詢,將結果放入新索引中,然后使用該索引進行查詢。 如果需要,您可以創建索引別名來隱藏應用程序中的實際索引名稱。
  • 運行查詢並更新ES 中的任何文檔以顯示它們仍然存在。 刪除未標記的文檔。

暫無
暫無

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

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