Kibana - 聚合

17 Mar 2025 | 6 分钟阅读

在本节中,我们将学习 Kibana 中的聚合。 我们将简要讨论 Kibana 中的聚合是什么,以及聚合的类型。

Kibana 中的聚合是什么?

聚合是在 Kibana 中创建所需可视化的关键原则。

每当我们进行可视化时,我们都必须定义参数,这意味着我们希望如何对数据进行分组以在其上执行度量。

在本教程中,我们将讨论我们拥有的两种基本类型的聚合

  • Bucket 聚合
  • Metric 聚合

Bucket 聚合

一个 bucket 由一个键和一个文本组成。 在进行聚合时,文档被放入各自的容器中。 当在 Kibana 中进行可视化时,我们可以在下面看到 Bucket 聚合的列表。

Kibana Aggregation

索引上的字段是国家名称、城市、人口、地区。 我们有国家名称及其人口、地区和国家详细信息中的面积。

假设我们想要来自该地区的明智数据。 那么区域中可用的国家/地区将成为我们的搜索查询,因此在这种情况下,我们的存储桶将由国家/地区创建。

下图向我们展示了一些 bucket,例如 R1、R2、R3、R4、R5、R6,然后在转换之后,我们得到了 c1、c2、c3,它们是 R1 到 R6 bucket 的一部分。

Kibana Aggregation

我们可以看到在每个 bucket 中,都有几个圆圈。 它们只是落在搜索标准内的数据集群。 我们在 bucket R1 中有文档 c1、c8 和 c15。 这些文档是落在该区域中的国家/地区,与其他国家/地区相同。 如果我们计算 bucket R1 中的国家/地区,则为 3,R2 中为 6,R3 中为 6,R4 中为 2,R5 中为 5,R6 中为 4。

我们拥有的 bucket 聚合选项有

  • 日期直方图聚合
  • 日期范围聚合
  • 过滤器聚合
  • 直方图聚合
  • IPv4 范围聚合
  • 范围聚合
  • 重要术语聚合
  • 术语聚合

日期直方图聚合

日期直方图的聚合用于日期字段。 因此,如果我们的索引中有一个日期字段,那么我们可以使用我们用来表示的索引来使用这种形式的聚合。 这是一个多 bucket 聚合,这意味着作为多个 bucket 的成员,我们将拥有任何文档。 为了使此聚合函数工作,我们也可以使用下面的参考图像。

Kibana Aggregation

当我们选择聚合选项作为日期直方图时,将显示字段选项,该选项将仅提供与日期相关的字段。 选择我们的 sector 后,选择具有以下信息的间隔

Kibana Aggregation

因此,从索引中选择的文档将根据所选的字段和间隔对 bucket 中的文档进行分类。 例如,如果我们选择周期为每月,则与日期相关的文档将被转换为 bucket,并将放置在与月份相关的 bucket 中,即 1 月到 12 月。 这里的 buckets 将是 1 月、2 月、.. 12 月。

日期范围聚合

要使用该聚合方法,我们需要一个日期字段。 在这里,我们有一个日期集,该日期集将从给定日期到给定日期。 这些 buckets 将根据给定的形式和截止日期拥有自己的文档。

Kibana Aggregation

过滤器聚合

这些 buckets 将使用过滤器(如基于源的聚合)来创建。 在这里,我们可以获得一个多 bucket 形状,因为一个文档可以驻留在一个或多个 bucket 中,具体取决于过滤器条件。

Kibana Aggregation

直方图聚合

它是应用于某个区域范围或数字范围的范围,然后数据集将根据该范围聚集到不同的组中。

Kibana Aggregation

IPv4 范围聚合

这种聚合主要用于 IP 地址。

Kibana Aggregation

我们拥有的索引是 contriesdata-28.12.2018,它没有 IP 字段,因此它显示一条如上所示的消息。 如果我们碰巧拥有 IP 字段,如上所示,我们可以在其中指定“从”和“到”的值。

范围聚合

这种类型的聚合函数由一个数字字段组成,该字段必须用一定范围的数字填充。

如果需要,我们还可以添加更多范围或范围字段。

重要术语聚合

这种聚合经常在字符串字段中看到。

Kibana Aggregation

条款

我们在所有可用的字段上使用这种类型的聚合方法,例如,它们可以是日期、布尔值、字符串地址、数字、时间戳、IP 等。

这种类型的聚合函数被广泛地用于不同类型的数据集中。

Kibana Aggregation

我们有一个选择顺序,我们可以根据我们选择的度量对数据进行分组。 大小是指我们想要查看的图表中的 bucket 数量。

度量聚合

Metric 聚合专门应用于对容器中包含的文档执行的数学测量。

下图向我们展示了我们可以在软件中实现的 metric 聚合。

Kibana Aggregation

在这里,我们将讨论一些重要的聚合函数,这些函数将在我们的软件中被高度使用。

  • 平均值函数或运算
  • 计数函数或运算
  • 最大值函数或运算
  • 最小值函数或运算
  • 总和函数或运算

给定的 metric 将应用于 aggression 的 bucket 中存在的所有单个项目。 这与我们之前讨论的内容相同。

接下来,让我们分析此处聚合的 metric 列表

平均数

这将提供 buckets 中存在的文档值的平均值。 例如

Kibana Aggregation

我们命名的 buckets 从 R1 到 R6。 我们在 R1 中有 c1、c8 和 c15。 假设 c1 为 300,c8 为 500,c15 为 700。 现在要获得平均 R1 密封值

R1 = c1 的值 + c8 的值 + c15 的值 / 3 = 300 + 500 + 700 / 3 = 500。

对于 bucket R1,平均值为 500。

数量

Bucket 中存在的文档的计数将给出此值。 假设我们要计算该区域中的国家/地区的数量,那么这将是我们 buckets 中的文档总数。 例如,R1 将为 3,R2 = 6,R3 = 5,R4 = 2,R5 = 5,R6 = 4。

Max

这将给出容器中存在的文档的总值。 考虑到上面的例子,如果我们在 bucket 字段中有来自按地区划分的地区的数据。 最大值应为每个国家/地区面积最大的国家/地区。 因此,每个地区将有一个国家/地区,即 R1-R6。

in

这将为 bucket 中的文档提供一个最小值。 考虑到上面的例子,如果我们在 bucket 字段中有来自按地区划分的地区的数据。 最小值是每个区域面积最小的国家/地区。 因此,每个地区将有一个国家/地区,即 R1-R6。

求和

这给出了容器中存在的文档值的总和。 例如,如果我们想要国家/地区的总面积或国家/地区,如果我们考虑上述情况,它将是国家/地区中存在的文档的总和。

如果我们有来自 R1 到 R6 的区域范围内的文档,则将汇总该国家/地区的国家/地区面积。


下一个主题Kibana 可视化