我用麋鹿做报告。logstash jdbc插件,用于从oracle查询提供ElasticSearch。我把索引名和每日日期作为增量后缀。我使用文档id作为db的主键。但db中的同一条记录会随着时间的推移而发生变化。所以我有一个关于logstash输入和db query的每小时时间表来获取在过去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;
暂无答案!
目前还没有任何答案,快来回答吧!