2017-08-03 123 views
2

我想从我的MySQL数据库导入数据到elasticsearch与logstash。我已经能够导入自定义查询结果,但是我缺少可以定义由logstash创建的索引的映射/设置的位置。另外,我不知道如何用一对多关系导入数据。从mysql导入数据到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

我已经浏览了LogStash的ES插件的文档 - 不知道这是否可能。

但是,您可以在运行LogStash之前设置索引映射。您可以通过将索引映射与卷曲这样做,也许有与LogStash

执行该HTTP请求

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.htmlhttps://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html

+0

我已经阅读文档,并得出了相同的结果的方式。如果是这样,我知道如何将curl的索引映射,但嵌套字段呢?你有什么主意吗?简单的 “内连接” 不工作 – RoyRobsen

+0

那么你可以使用像' 过滤器{ 发生变异{ 更名=> { “columnToNest”=> “[1级] [级别2]”}} } ' – aclokay

相关问题