我想将我的MySQL数据库中的数据导入带有logstash的elasticsearch。我已经能够导入自定义查询结果,但我错过了我可以定义logstash创建的索引的映射/设置的点。另外,我不知道如何使用一对多关系导入数据。
到目前为止,这是我的logstash.conf:
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。这是一个网上商店,所以我必须在字段上使用一些分析器
答案 0 :(得分:0)
我查看了LogStash的ES插件文档 - 不确定这是否可行。
但是,您可以在运行LogStash之前设置索引映射。您可以通过使用cURL放置索引映射来实现,也可以使用LogStash来执行此HTTP请求
参见https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html 和https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html
答案 1 :(得分:0)
logstash.conf
文件中使用相同的索引名如果您的表(SELECT * FROM variants var
)有很多列,并且您不想导入所有列,请使用增变器删除不需要的列:
filter { mutate { remove_field => ["@version", "@timestamp", "column"]}}
如果要重命名列,请使用:
filter { mutate { rename => { "id" => "ID" }}}
可以像添加选择查询一样添加联接查询。