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) 显示所有email
s 的电子邮件可视化(只要您在可视化a 中选择id
)单击它,Kibana 将立即向您显示给定id
的文档电子邮件
c) 显示所有keys
的键可视化(同样,一旦您选择id
或email
,此可视化将更新为仅显示与选择相关的键)
选项 #3。与上面相同,但您可以使用不同的indices
而不是不同的types
。只要这些索引有一个共同的前缀(例如docs-email
和docs-keys
),您就可以在kibana中使用它们的前缀从不同的索引中检索数据
选项 #4。如您在问题中所述的应用程序级联接。 ES 为其存储的所有数据提供 REST API。您可以随时从中检索您需要的任何内容并构建客户端连接(这让人想知道为什么选择 ES 作为存储数据的后端而不是关系数据库)
【讨论】:
您能否通过示例详细说明选项#2?对 Kibana 可视化非常感兴趣,可以通过使用附加数据来扩充原始查找。谢谢!以上是关于Kibana:在表格可视化中加入两个文档的主要内容,如果未能解决你的问题,请参考以下文章