假设我有一个关于某个部门员工的庞大数据库(表a),其中包括员工姓名以及许多其他领域。现在在不同的数据库(或不同的表,比如表b)中,我只有两个条目;员工姓名和他的身份证明。但是这个表(b)不仅包含一个部门的条目,而且包含整个公司的条目。两个表的原始格式是文本文件,因此我使用logstash将它们解析为Elasticsearch,然后使用Kibana将结果可视化。
现在,我在Kibana的表(a)中创建了几个可视化,其中x轴显示了员工姓名,我意识到如果我们有员工ID,那将会很好。因为我知道我在表(b)中有这个信息,所以我试图告诉Kibana将表(a)生成的图表中的员工姓名翻译成基于表(b)的员工ID。我的问题如下:
1)有没有办法在Kibana直接这样做?如果是,如果每个表都保存在单独的索引中,或者我们是否必须将它们保存在同一个idnex中,我们可以这样做吗?
2)如果这不能直接在Kibana中完成并且必须在索引数据时完成,有没有办法用logstash分别解析两个文本文件?
我知道Elasticsearch是一个非关系数据库,因此不适用于类似SQL的功能(连接)。但是应该有一个等价或解决方法。这只是一个简单的用例,但当然通用的问题是如何关联来自不同来源的数据。否则,Elasticsearch实际上并不那么强大。
答案 0 :(得分:3)
Similar questions已asked和answered。
基本上答案是 - 不,你不能在Kibana中加入,你必须在索引时进行。空间很便宜,elasticsearch可以很好地处理重复数据,因此只需创建在索引时需要显示的任何字段。
答案 1 :(得分:2)
您可能想尝试Kibi。
答案 2 :(得分:1)
不幸的是,我知道的答案是编写自己的插件或者我们必须做的事情,降级到ES 2.4.1并安装Kibi
(https://siren.solutions/new-release-siren-join-2-4-1-compatible-with-es-2-4-1/)
然后安装kibi join插件
(http://siren.solutions/relational-joins-for-elasticsearch-the-siren-join-plugin/)
这将允许您从关系数据库中获取联接。