首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Logstash/Elasticsearch JDBC document_id vs document_type?

Logstash/Elasticsearch JDBC document_id vs document_type?
EN

Stack Overflow用户
提问于 2017-03-28 18:24:10
回答 1查看 620关注 0票数 0

因此,当我从logstash中使用JDBC导入程序并导出到elasticsearch时,我试图将document_type与document_id联系在一起。

我终于把头绕在索引上了。但是让我们假装从传感器数据表中提取(比如温度/湿度/等等)。它有传感器id的.温度/湿度(与天气有关的数据)和时间记录。(所以这是张大桌子)

我想每隔一次就轮询数据库一次。

在这种情况下,document_type与document_id的区别是什么,这是针对1索引存储的(或者您想称之为它的任何东西)。

document_type vs document_id使我感到困惑,特别是在JDBC导入程序方面。

如果我设置document_id来表示我的主键,那么它不是每次都会被重写吗?所以每次我只需要一份数据文档?(这似乎毫无意义)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-29 02:01:58

jdbc插件将为每个列创建一个带有一个字段的JSON文档。因此,为了与您的示例保持一致,如果您有该数据,它将作为如下所示的文档导入:

代码语言:javascript
复制
{
    "sensor_id": 567,
    "temp": 90,
    "humidity": 6,
    "timestamp": "{time}",
    "@timestamp": "{time}" // auto-created field, the time Logstash received the document
}

当您说如果将document_id设置为主键时,它将被覆盖,这是正确的。您可以忽略document_id,除非您想要更新Elasticsearch中的现有文档,我不认为您会想要对这种类型的数据进行更新。让Elasticsearch为您生成文档id。

现在让我们来谈谈document_type。如果要设置文档类型,则需要将Logstash中的type字段设置为某个值(这将传播到Elasticsearch中)。因此,弹性搜索中的类型字段用于对类似的文档进行分组。如果使用jdbc插件导入的表中的所有文档都是相同类型的(它们应该是!),则可以在jdbc输入中设置type,如下所示.

代码语言:javascript
复制
input {
  jdbc {
    jdbc_driver_library => "mysql-connector-java-5.1.36-bin.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/mydb"
    jdbc_user => "mysql"
    parameters => { "favorite_artist" => "Beethoven" }
    schedule => "* * * * *"
    statement => "SELECT * from songs where artist = :favorite_artist"
    ...
    type => "weather"
  }
}

现在,在Elasticsearch中,您可以通过为该类型设置一个type字段来利用该字段。例如,您可能希望:

代码语言:javascript
复制
PUT my_index 
{
  "mappings": {
    "weather": { 
      "_all":       { "enabled": false  }, 
      "properties": { 
        "sensor_id":      { "type": "integer"  }, 
        "temp":           { "type": "integer"  }, 
        "humidity":       { "type": "integer" },
        "timestamp":      { "type": "date" }  
      }
    }
  }
}

希望这会有帮助!)

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

https://stackoverflow.com/questions/43077163

复制
相关文章

相似问题

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