我有一个数据表可视化,显示具有电子邮件地址和 ID 的文档中的字段:
timestamp | email | field_id
Feb 5th [email protected] /cdn-cgi/l/email-protection xyz123
这些字段属于同一个弹性文档。但是,我还有其他文档,其中包含与此唯一 id 有关的额外信息,并且可以将它们显示为自己的表格:
timestamp | field_id | key1 | key2 | key3
Feb 6th xyz123 val1 val2 val3
您可以看到第一个表中的行和第二个表中的行具有相同的 field_id。我想知道是否可以使用 Kibana 和/或弹性查询显示合并行:
field_id | email | key1 | key2 | key3
xyz123 [email protected] /cdn-cgi/l/email-protection val1 val2 val3
这在某种程度上相当于 SQL 中关系数据库的联接。如果这在 Kibana 中不可能,也许有一种方法可以通过使用带有弹性的 json 输入的查询来间接实现此目的并执行某种应用程序端联接?
您似乎尝试将关系数据库知识与非 SQL 数据库(例如 Elasticsearch (ES))结合使用。您有多种选择。
选项1。将您拥有的所有信息保存到同一个文档中。如果在对初始文档建立索引后获得更多数据,只需使用额外的键更新它即可。如果不同的文档有不同的模式(也称为键集),这对于 ES 来说不是问题。此外,在查询 ES 时,如果您担心 ES 的请求/响应的大小,您可以指定要检索哪些字段。
选项#2。您可以使用不同的types
对于不同的 id/email 文档和 id/keys 文档,但将它们存储在同一个文件中index
。然后,您可以创建一个仪表板并放置多个可视化效果:
a) 能够选择的数据表id
;
b) 电子邮件可视化,显示所有内容email
s(一旦您选择了id
在可视化 a) 中,点击它,Kibana 将立即向您显示给定文档的电子邮件id
c) 按键可视化,显示所有keys
(再次强调,一旦您选择了id
or an email
,此可视化将更新以仅显示与选择相关的键)
选项#3。与上面相同,但你可以有不同的indices
而不是不同的types
。只要这些索引有一个共同的前缀(例如docs-email
and docs-keys
),您可以在 kibana 中使用它们的前缀从不同索引中检索数据
选项#4。正如您在问题中所述的应用程序级加入。 ES 为其存储的所有数据提供 REST API。你总是可以从中检索你需要的任何内容并构建客户端连接(这让人想知道为什么选择 ES 作为存储数据的后端而不是关系数据库)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)