Kibana:在表格可视化中加入两个文档

Posted

技术标签:

【中文标题】Kibana:在表格可视化中加入两个文档【英文标题】:Kibana: joining two documents in table visualization 【发布时间】:2016-05-18 06:45:49 【问题描述】:

我有一个数据表可视化显示来自具有电子邮件地址和 ID 的文档的字段:

timestamp |         email       |  field_id
 Feb 5th       jdoe@gmail.com       xyz123

这些字段属于同一个弹性文档。但是,我还有其他文档,其中包含与此唯一 ID 有关的额外信息,并且可以将它们显示为自己的表格:

timestamp |  field_id   |    key1   |   key2   |  key3
  Feb 6th     xyz123         val1       val2      val3

您可以看到第一个表中的行和第二个表中的行具有共同的 field_id。我想知道的是是否可以使用 Kibana 和/或弹性查询显示合并行:

 field_id   |     email      |    key1   |   key2   |  key3
   xyz123     jdoe@gmail.com      val1       val2      val3

这在某种程度上相当于 SQL 中关系数据库的连接。如果这在 Kibana 中是不可能的,也许有一种方法可以通过使用带有弹性的 json 输入的查询间接实现这一点并执行一种应用程序端连接?

【问题讨论】:

你不能在 elasticsearch 中执行联合操作,因此在 kibana 中也一样。 【参考方案1】:

您似乎尝试将您对关系数据库的知识与非 SQL 数据库(例如 Elasticsearch (ES))结合使用。您有多种选择。

选项 #1。将您拥有的所有信息保存到同一个文档中。如果在索引初始文档后获得更多数据,只需使用额外的键更新它。如果不同的文档有不同的模式(也就是一组键),这对 ES 来说不是问题。此外,在查询 ES 时,如果您担心 ES 的请求/响应的大小,您可以指定要检索哪些字段。

选项 #2。您可以为不同的 id/email 文档和 id/keys 文档使用不同的 types,但请继续将它们存储在相同的 index 中。然后,您可以创建仪表板并放置几个可视化: a) 可以选择id 的数据表; b) 显示所有emails 的电子邮件可视化(只要您在可视化a 中选择id)单击它,Kibana 将立即向您显示给定id 的文档电子邮件 c) 显示所有keys 的键可视化(同样,一旦您选择idemail,此可视化将更新为仅显示与选择相关的键)

选项 #3。与上面相同,但您可以使用不同的indices 而不是不同的types。只要这些索引有一个共同的前缀(例如docs-emaildocs-keys),您就可以在kibana中使用它们的前缀从不同的索引中检索数据

选项 #4。如您在问题中所述的应用程序级联接。 ES 为其存储的所有数据提供 REST API。您可以随时从中检索您需要的任何内容并构建客户端连接(这让人想知道为什么选择 ES 作为存储数据的后端而不是关系数据库)

【讨论】:

您能否通过示例详细说明选项#2?对 Kibana 可视化非常感兴趣,可以通过使用附加数据来扩充原始查找。谢谢!

以上是关于Kibana:在表格可视化中加入两个文档的主要内容,如果未能解决你的问题,请参考以下文章

Kibana-介绍

ELK学习实验008:Kibana的介绍

R语言ggplot2可视化添加希腊字母标签:图表题(title)中加入希腊字母图中加入希腊字母标签

关于kibana的可视化可能都在这篇文章里了

开源的分析与可视化平台Kibana的介绍以及源码搭建

ElasticSearchKibana版本控制