gpt4 book ai didi

elasticsearch - Elastic仅保留Logstash的最后一条记录

转载 作者:行者123 更新时间:2023-12-03 01:37:37 25 4
gpt4 key购买 nike

这是一条选择语句,它是一个事务数据,每次将数据插入到UserProfile中时,旧索引值就会从Elastic中删除

  jdbc {
statement => "SELECT userId,salesTeam FROM UserProfile with (nolock)"
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "q_d"
document_type => "cd"
document_id => "%{userId}%"
}
stdout { codec => rubydebug }
}

如果有任何更改,我想更新现有文档,否则为新文档编制索引。
我在这里做错了什么?

最佳答案

input {
jdbc {
# Postgres jdbc connection string to our database, mydb
jdbc_connection_string => "jdbc:postgresql://localhost:5432/bhavya"
# The user we wish to execute our statement as
jdbc_user => "postgres"
# The path to our downloaded jdbc driver
jdbc_driver_library => "/root/postgresql-42.2.2.jar"
# The name of the driver class for Postgresql
jdbc_driver_class => "org.postgresql.Driver"
jdbc_password => "postgres"
jdbc_validate_connection => true
#You can schedule input from this plugin,the following uses cron syntax
schedule => "* * * * *"
# our query
statement => "SELECT uid,email,first_name,last_name FROM contacts"
}
}

output {
elasticsearch {
hosts => ["localhost:9200"]
index => "contacts"
document_type => "record"
document_id => "%{uid}"
}
stdout { codec => rubydebug }
}

首先,您应该根据您的数据库添加以上我在输入插件中指定的选项。我使用Postgresql作为数据库。因此,您将需要为该数据库下载相应的驱动程序库jar并指定与之对应的路径。

其次,您应该在“jdbc”插件中使用schedule选项,以便它定期从数据库读取数据。

第三,您应该从“输出”插件部分的“document_id”部分删除一个额外的“%”。

您应该引用此页面以进行 从数据库将数据导入logstash中:->

https://www.elastic.co/blog/logstash-jdbc-input-plugin

关于elasticsearch - Elastic仅保留Logstash的最后一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51098964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com