首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用logstash将数据从mysql导入到elasticsearch

问使用logstash将数据从mysql导入到elasticsearch
EN

Stack Overflow用户
提问于 2017-08-03 19:31:56
回答 2查看 2.4K关注 0票数 2

我想用logstash将数据从我的MySQL数据库导入到elasticsearch。我已经能够导入自定义查询结果,但是我错过了可以定义logstash创建的索引的映射/设置的地方。此外,我不知道如何导入具有一对多关系的数据。

这是到目前为止我的logstash.conf:

代码语言:javascript
复制
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。这是一个网上商店,所以我必须在现场使用一些分析器

EN

回答 2

Stack Overflow用户

发布于 2017-08-03 19:54:58

我已经浏览了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

票数 0
EN

Stack Overflow用户

发布于 2018-08-10 18:28:11

  1. 对于映射/设置,您可以使用Elasticsearch rest API
  2. 创建映射/设置后,在logstash.conf文件中使用相同的索引名
  3. 如果您的表(SELECT * FROM variants var)有许多列,并且您不想导入所有列,请使用赋值函数删除不需要的列:

filter {{ remove_field => "@version","@timestamp",“column”}}

  • 如果要重命名列,请使用:

可以像添加select查询一样添加筛选器{{ rename => { "id“=> "ID”}

  • Join查询。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45482966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档