【问题标题】:Why Elasticsearch not updated when records is deleted from sqlserver为什么从 sqlserver 中删除记录时 Elasticsearch 没有更新
【发布时间】:2018-11-02 09:22:43
【问题描述】:

我已经使用 Logstash 配置文件将 ElasticSearch 连接到 SqlServer,当我在 Sqlserver 中更新或插入记录时,“ElasticSearch”索引会使用新的/更改的记录进行更新,但问题是当我从 sqlserver 中删除记录时,” ElasticSearch" 索引未使用已删除的记录进行更新。它仍在索引中显示已删除的记录。 logstash 文件中是否有任何用于删除记录的配置或设置?

Here is my logstash file   

input {  

    jdbc {  

        jdbc_driver_library => "C:\Program Files\Microsoft JDBC Driver 6.4 for SQL Server\sqljdbc_6.4\enu\mssql-jdbc-6.4.0.jre8.jar"  
        jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"  
        jdbc_connection_string => "jdbc:sqlserver://XXXXXXXX;User Id=XXXXXXX;password=XXXXX;databaseName=XXX;"    
        jdbc_user => "XXXXXX"   
        jdbc_password => "XXXXXXXX"     
        statement => "select employeeId,empname,salary,DOB,lastmodifiedDate from                employee where LastModifiedDate>:sql_last_value"     
        use_column_value => true               
        tracking_column => lastmodifieddate     
        tracking_column_type => "timestamp"    
        jdbc_paging_enabled => "true"   
        schedule => "* * * * * *"   
        clean_run => false  }  }      
filter {
}       
output {    
    stdout {  
        codec => rubydebug
    }  
    elasticsearch {  
        hosts => "http://localhost:9200/"  
        index => "emp_index" 
        document_id => "%{employeeId}"     
        document_type => "emp_type"     

    }  
}



  Regards,  
  raj.

【问题讨论】:

标签: sql-server elasticsearch elastic-stack


【解决方案1】:

logstash 中没有开箱即用的选项来实现您想要的。请看Delete old documents from Elastic Search using logstash

【讨论】:

  • 感谢您的回复....我已经浏览了@ben5556 提供的链接,但它没有用..在我的要求中。我们可以使用一些列(例如:status 或 IsDeleted),我不想再为此添加一列,有什么方法 -> 我们可以从 logstash.conf 文件或从 elasticsearch 执行此操作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多