elasticsearch 弹性搜索和日志存储上增量索引名称上的唯一文档id,elasticsearch,logstash,elk,elasticsearch,Logstash,Elk" /> elasticsearch 弹性搜索和日志存储上增量索引名称上的唯一文档id,elasticsearch,logstash,elk,elasticsearch,Logstash,Elk" />

elasticsearch 弹性搜索和日志存储上增量索引名称上的唯一文档id

elasticsearch 弹性搜索和日志存储上增量索引名称上的唯一文档id,elasticsearch,logstash,elk,elasticsearch,Logstash,Elk,我用麋鹿做报告。Logstash JDBC插件,用于从Oracle查询提供弹性搜索。我的索引名以每日日期作为增量后缀。我使用文档ID作为DB的主键。但数据库中的同一条记录会随着时间的推移而发生变化。所以我在logstash输入和DB查询上有每小时的时间表,以获取在过去1小时内更新的记录。大多数记录都在一周内更新。由于这个原因,同一条记录反映在多个索引中。有没有办法使文档ID在所有索引中都是唯一的 日志存储配置 input{ jdbc{ jdbc_driver_library=&

我用麋鹿做报告。Logstash JDBC插件,用于从Oracle查询提供弹性搜索。我的索引名以每日日期作为增量后缀。我使用文档ID作为DB的主键。但数据库中的同一条记录会随着时间的推移而发生变化。所以我在logstash输入和DB查询上有每小时的时间表,以获取在过去1小时内更新的记录。大多数记录都在一周内更新。由于这个原因,同一条记录反映在多个索引中。有没有办法使文档ID在所有索引中都是唯一的

日志存储配置

input{
   jdbc{
      jdbc_driver_library=>"ojdbc8.jar"
      jdbc_driver_class=>"Java::oracle.jdbc.driver.OracleDriver"
      jdbc_connection_string=>"db connection string"
      jdbc_user=>"user"
      jdbc_password=>"pass"
      statement_filepath=>"incident.sql"
      schedule=>"0 * * * *"
      id=>"incident_details"
      type=>"incident_details"
      tracking_column_type=>"numeric"
      tracking_column=>"incidnet_id"
   }
}

if[type]="incident_details"{
   elasticsearch{
      index=>"devops-servicenow-%{[type]}-%{+YYYY.MM.dd}"
      hosts=>["elk1.mydomain.com:9200","elk2.mydomain.com:9200"]
      document_id=>"%{incidnet_id}"
      doc_as_upsert=>true
      action=>"update"
   }
}
SQL

SELECT 
incident_id,
created_time,
modified_time,
incident_status
FROM incident WHERE modified_time BETWEEN (SYSDATE-1/24) AND SYSDATE;