elasticsearch - 使用数据库中50个表中的数据创建一个kibana仪表板

标签 elasticsearch kibana

我有50个表,这些表具有彼此相关的数据。
通常,如果只有2-3个表,我们会创建SP来联接所有表,并使用输出来创建单个索引以进行 flex 搜索,然后创建kibana。

但是对于50个表,这意味着SP输出有数百列(每个表有10,000-1,000,000行),SP似乎不是一个好方法。

我试图用相似的名称创建50个索引,然后使用索引模式。但是,当创建仪表板表单索引模式时,似乎实际上那里没有“join”功能。

这是2个示例表结构:

表1具有:部门编号,部门地址,部门名称
表2具有:员工姓名,部门编号,员 worker 数

因此,期望这两个表以“Departmentid”作为键联接在一起。请记住,我们有50个表,每个表中都有很多数据。

有什么建议么?
埃拉

最佳答案

Elasticsearch不是您的传统RDBMS。因此,没有联接的概念。在同一索引内使用父/子的连接支持有限。但这与非规范化的平面文档结构或使用嵌套属性相比,性能相对较慢。

您首先需要对索引结构进行建模,然后确定50个表/列中的哪一部分足够有意义以进行Elasticsearch。仅仅因为它称为无模式,并且您可以选择转储它,并不一定意味着您将所有内容都加载到了索引中。

因此,我的建议是先花时间对索引结构进行建模,确定现在需要哪些属性,并在将来进行预期,然后完成采购查询。

另外,根据您需要多长时间将数据加载到索引中,您可能不必走SP路线。您可以使用logstash通过基础SQL查询加载数据,也可以利用ES客户端库对集群数据加载器进行编码。最坏的情况是,您甚至可以使用CURL直接使用准备好的json数据文件调用批量API。因此,选择最适合您的用例的东西。

关于elasticsearch - 使用数据库中50个表中的数据创建一个kibana仪表板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61394946/

相关文章:

sorting - Elasticsearch排序是在索引分析(扫描)之后还是之前进行的?

elasticsearch - 从 Kibana-5.1 搜索查询中的 URL 读取查询参数,即作为占位符

elasticsearch - 桶太多,直方图聚合失败

hadoop - Kibana、Logstash 大数据环境

elasticsearch - Kibana-每个唯一字段的平均计数

elasticsearch - Elasticsearch index文件夹应重命名并附加currentdate

elasticsearch - 查询以 Elasticsearch 中的数据并对其进行排序

java - 用于Elasticsearch的Java Transport Client抛出NoNodeAvailableException

java - ElasticSearch MultiMatchQuery匹配具有条件的对象列表上的值

elasticsearch - 无效的聚合订单路径