elasticsearch - Kibana:在表格可视化中连接两个文档

标签 elasticsearch kibana

我有一个数据表可视化显示来自具有电子邮件地址和 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 (ES) 等非 SQL 数据库。您有多种选择。

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

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

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

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

关于elasticsearch - Kibana:在表格可视化中连接两个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35272459/

相关文章:

email - Elastalert使用字段值作为电子邮件警报中的地址

ruby-on-rails - Rails-如何在searchkick中添加更多字段以进行过滤?

elasticsearch - 来自数组长度累积和的Timelion系列

elasticsearch - 数据未加载到Kibana中

elasticsearch - 你如何在 Kibana 中导出/导入 "index-pattern"类型

c# - 嵌套聚合过滤

elasticsearch - 带有折叠功能的Reactivesearch Autosuggest

elasticsearch - 如何在 Windows 中停止 Kibana?

elasticsearch - 使用Java代码在ElasticSearch中索引PDF文件

elasticsearch - 在Kibana 4中显示多行