我正在尝试使用 logstash 将 PostgreSQL 数据库中的数据索引到弹性搜索。我在数据库中有一个 JSON 类型的列。当我运行 logstash 时,我收到一个名为“缺少转换器处理”的错误。我知道这是 java/logstash 无法识别 JSON 类型列。
我可以将列类型转换为“col_name::TEXT”,效果很好。但是,我需要该列作为弹性搜索索引中的 JSON。有什么解决方法吗?
注意:JSON 对象中的键不是固定的,它会有所不同。
Logstash postgres query example:
input {
jdbc {
# Postgres jdbc connection string to our database, bot
jdbc_connection_string => "***"
# The user we wish to execute our statement as
jdbc_user => "***"
jdbc_password => "***"
# The path to our downloaded jdbc driver
jdbc_driver_library => "<ja_file_path>"
# The name of the driver class for Postgresql
jdbc_driver_class => "org.postgresql.Driver"
# our query
statement => "SELECT col_1, col_2, col_3, json_col_4 from my_db;"
}
}
filter{
}
output {
stdout { codec => json_lines }
}
需要来自 PostgreSQL 的 JSON 对象来进行弹性搜索。