如何使用 Logstash 中的 JDBC 输入插件将纬度和经度值映射到 geo_point 转换数据库以用于 Kibana?
How to map latitude and longitude values into a geo_point converting a database using the JDBC input plugin within Logstash to be used in Kibana?
我正在使用 logstash 中的 jdbc 输入插件将 Mariadb 数据库登录到弹性搜索中。 objective是用Kibana做一些地理报告。
数据已编入索引,但我无法使用编入索引的经度和纬度来生成显示索引中没有 "geo_point" 类型的报告。
我试图配置 jdbc 插件来理解地理值,但似乎不是它的工作,但我应该在弹性搜索中更改索引的字段映射。
索引创建后可以修改映射吗?怎么样?
您可以使用 PUT 映射 API 将新字段添加到 geo_point 类型的索引:
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html
然后在 logstash 配置中你可以添加额外的过滤器来添加这个字段。
假设您添加了名称为 "location" 的新字段并且您在 sql 查询过滤器中选择 "lan" 和 "lot" 应该是这样的:
input {
jdbc {
...
}
}
filter {
if [lat] and [lon] {
mutate {
add_field => { "[location][lat]" => "%{[lat]}" }
add_field => { "[location][lon]" => "%{[lon]}" }
}
mutate {
convert => {"[location][lat]" => "float"}
convert => {"[location][lon]" => "float"}
}
}
}
output {
elasticsearch {
...
}
}
注意:适用于版本 7.2。
我正在使用 logstash 中的 jdbc 输入插件将 Mariadb 数据库登录到弹性搜索中。 objective是用Kibana做一些地理报告。
数据已编入索引,但我无法使用编入索引的经度和纬度来生成显示索引中没有 "geo_point" 类型的报告。
我试图配置 jdbc 插件来理解地理值,但似乎不是它的工作,但我应该在弹性搜索中更改索引的字段映射。
索引创建后可以修改映射吗?怎么样?
您可以使用 PUT 映射 API 将新字段添加到 geo_point 类型的索引: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html
然后在 logstash 配置中你可以添加额外的过滤器来添加这个字段。 假设您添加了名称为 "location" 的新字段并且您在 sql 查询过滤器中选择 "lan" 和 "lot" 应该是这样的:
input {
jdbc {
...
}
}
filter {
if [lat] and [lon] {
mutate {
add_field => { "[location][lat]" => "%{[lat]}" }
add_field => { "[location][lon]" => "%{[lon]}" }
}
mutate {
convert => {"[location][lat]" => "float"}
convert => {"[location][lon]" => "float"}
}
}
}
output {
elasticsearch {
...
}
}
注意:适用于版本 7.2。