使用logstash将数据从mysql导入elasticsearch
我想用logstash将数据从MySQL数据库导入elasticsearch。我已经能够导入自定义查询结果,但是我缺少了定义logstash创建的索引的映射/设置的点。此外,我不知道如何导入具有一对多关系的数据 这是目前为止我的logstash.conf:使用logstash将数据从mysql导入elasticsearch,mysql,
elasticsearch,logstash,logstash-jdbc,Mysql,
elasticsearch,Logstash,Logstash Jdbc,我想用logstash将数据从MySQL数据库导入elasticsearch。我已经能够导入自定义查询结果,但是我缺少了定义logstash创建的索引的映射/设置的点。此外,我不知道如何导入具有一对多关系的数据 这是目前为止我的logstash.conf: input { jdbc { jdbc_connection_string => "jdbc:mysql://localhost:3306/shop" jdbc_user => "root" jdbc_pa
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://localhost:3306/shop"
jdbc_user => "root"
jdbc_password => ""
jdbc_driver_library => "C:\Users\curUser\Desktop\mysql-connector-java-5.1.42\mysql-connector-java-5.1.42-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
statement => "SELECT * FROM variants var"
}
}
output {
elasticsearch {
hosts => "localhost:9200"
index => "search"
document_type => "variants"
document_id => "%{id}"
}
}
注意:我只想使用logstash将数据导入elasticsearch。这是针对在线商店的,因此我必须在字段上使用一些分析器。我已经查阅了LogStash的ES插件文档,不确定这是否可行 但是,可以在运行LogStash之前设置索引映射。您可以通过将索引映射与cURL放在一起,或者有一种方法可以使用LogStash执行此HTTP请求 看 及
logstash.conf
文件中使用相同的索引名SELECT*FROM variants var
)有许多列,并且您不想导入所有列,请使用mutator删除不需要的列:
filter { mutate { remove_field => ["@version", "@timestamp", "column"]}}
filter { mutate { rename => { "id" => "ID" }}}
我已经阅读了文档,得出了相同的结果。如果是这样,我知道如何使用curl放置索引映射,但是嵌套字段呢?你知道吗?简单的“内部连接”不起作用,那么您可以使用类似`过滤器{mutate{rename=>{“columnToNest”=>“[level1][level2]”}}`