Kibana:创建包含时间序列图表的仪表板

学习如何创建 时间序列 可视化图表,并构建跟踪趋势随时间变化的仪表板。本教程使用电子商务示例 数据分析 销售模式,但你可以将这些方法应用于任何基于时间的数据。

完成后,你将拥有一个完整的仪表板,展示销售趋势、收入模式和客户行为随时间的变化。

你也可以通过 ES|QL 查询创建时间序列图表。请从构建时间序列图表开始。使用 kibana_sample_data_ecommerce 索引,并将 @timestamp 替换为该索引的 order_date 时间字段。

加载数据

我们按照如下的步骤来加载数据:

这样我们的 kibana_sample_data_ecommerce 索引已经安装好了。

打开并设置可视化编辑器

打开可视化编辑器,然后确保显示正确的字段。

  1. 创建可视化图表。
    • 无服务器版本及技术栈9.2及以上版本

      在应用程序菜单中选择添加 > 可视化。

    • 技术栈9.0--9.1版本

      点击创建可视化。

  2. 确保显示 Kibana 电子商务示例数据 数据视图,然后将时间筛选器设置为过去30天。

使用自定义时间间隔创建 可视化图表

使用时间序列数据创建可视化图表时,你可以使用默认时间间隔,也可以增大或减小间隔。出于性能考虑,可视化编辑器允许你选择最小时间间隔,但无法指定确切的时间间隔。间隔限制由 histogram:maxBars 设置和时间范围控制。

要使用自定义时间间隔分析数据,请创建一个柱状图,展示你的商店每小时的订单数量:

1)从可用字段 列表中,将 Records 拖到工作区。

可视化编辑器会创建一个柱状图。

2)要放大查看数据,请在柱形上按住鼠标并拖动光标。

3)在图层面板中,点击记录数。

  1. 点击高级(Advanced)。

  2. 从按单位归一化 下拉列表中选择每小时 ,然后点击关闭。

    按单位归一化 通过除以24,将记录数转换为每小时记录数。

  3. 在名称 字段中,输入订单数量。

  4. 点击关闭。

4)要隐藏水平轴 标签,请打开底部坐标轴 菜单,然后从坐标轴标题 下拉列表中选择无。

要标识订单的第75百分位数,请添加参考线:

  1. 在图层面板中,点击矢量图标添加图层 > 参考线。
  2. 点击静态值 。
    1. 点击快捷函数 ,然后点击百分位数。
    2. 从字段 下拉列表中选择 total_quantity。
    3. 在参考线值 字段中,输入75。
  3. 配置外观 选项。
    1. 在名称 字段中,输入第75百分位数。
    2. 要显示名称,请从文本装饰 中选择名称。
    3. 从图标装饰 下拉列表中选择标签。
    4. 在颜色 字段中,输入 #E7664C。
  4. 点击关闭。

分析多个数据序列

你可以在同一时间间隔内创建包含多个数据序列的可视化图表,即使这些序列的配置相似、仅有细微差异。

要分析多个序列,请创建一个折线图,展示已售商品的价格分布随时间的变化:

1)创建可视化图表。

  • 无服务器版本及技术栈9.2及以上版本

    在应用程序菜单中选择添加 > 可视化。

  • 技术栈9.0--9.1版本

    在仪表板工具栏中点击创建可视化。

2)打开可视化类型 下拉列表,然后选择折线图。

3)从可用字段 列表中,将 products.price 拖到工作区。

创建价格分布的第 95 百分位数:

1)在图层面板中,点击 Median of products.price。

2)点击百分位数函数。

3)在名称 字段中,输入第95百分位数,然后点击关闭。

要复制函数,请将其拖到同一分组中的添加或拖放字段 区域。要创建第90百分位数,请复制第95百分位数:

1)将第95百分位数 字段拖到垂直轴 的添加或拖放字段区域。

2)点击第95百分位数 1 ,然后在百分位数 字段中输入90。

3)在名称 字段中输入第90百分位数,然后点击关闭。

4)要创建第50百分位数和第10百分位数,请重复上述复制步骤。

5)打开左侧坐标轴 菜单,从坐标轴标题 下拉列表中选择自定义 ,然后在坐标轴标题字段中输入 Percentiles for product prices。

分析多种可视化类型

通过图层(Layers),你可以在同一个可视化图表中使用多种可视化类型来分析数据。

创建多图层可视化图表时,需要确保各图层在**横轴(Horizontal Axis)**上使用相同的数据范围和刻度,以便进行准确比较。

为了结合多种可视化类型进行分析,我们将首先创建一个面积图(Area Chart),展示平均订单价格,然后添加一个**折线图(Line Chart)**图层,展示客户数量。

创建面积图,展示平均价格

  1. 创建可视化图表。
  • Serverless 和 Stack 9.2+

在应用程序菜单中,选择 Add(添加)> Visualization(可视化)。

  • Stack 9.0--9.1

在仪表板工具栏中,点击 Create visualization(创建可视化)。

  1. 添加价格字段。

从 Available fields(可用字段) 列表中,将 products.price(产品价格) 字段拖放到工作区(Workspace)。

  1. 配置平均价格指标。

在图层面板(Layer Pane)中,点击 Median of products.price(产品价格中位数)。

  1. 选择 Average(平均值) 函数,将聚合方式从中位数改为平均值。

  2. 在 Name(名称) 字段中输入 Average price(平均价格),然后点击 Close(关闭)。

  1. 更改可视化类型。

打开 Visualization type(可视化类型) 下拉菜单,然后选择 Area(面积图)。

添加折线图图层,展示客户数量

  1. 添加新图层。

在图层面板中,点击 Add layer(添加图层)> Visualization(可视化)> Line(折线图)。

  1. 添加客户字段。

从 Available fields(可用字段) 列表中,将 customer_id(客户 ID) 字段拖放到第二个图层的 Vertical Axis(纵轴) 区域。

  1. 配置客户数量指标。

在图层面板中,点击 Unique count of customer_id(客户 ID 唯一值计数)。

  1. 在 Name(名称) 字段中输入 Number of customers(客户数量)。

  2. 在 Series color(数据系列颜色) 字段中输入 #D36086。

  3. 在 Axis side(坐标轴位置) 设置中选择 Right(右侧),然后点击 Close(关闭)。

  1. 从 Available fields(可用字段) 列表中,将 order_date(订单日期) 字段拖放到第二个图层的 Horizontal Axis(横轴) 区域。
  1. 要调整图例的位置,请打开 Legend(图例) 菜单,然后在 Position(位置) 选项中选择向上的箭头,将图例移动到图表顶部。

比较百分比随时间的变化趋势

默认情况下,可视化编辑器会使用**堆叠图表(Stacked Charts)**展示时间序列数据,以便观察不同文档集合随时间的变化情况。

如果希望以百分比的形式查看各类数据随时间的变化趋势,可以创建一个 Area Percentage(百分比堆叠面积图),展示三种订单类别在不同时间段的占比变化。

创建可视化图表

  1. 创建可视化图表。
  • Serverless 和 Stack 9.2+

在应用程序菜单中,选择 Add(添加)> Visualization(可视化)。

  • -Stack 9.0--9.1

在仪表板工具栏中,点击 Create visualization(创建可视化)。

  1. 添加记录数字段。

从 Available fields(可用字段) 列表中,将 Records(记录数) 拖放到工作区(Workspace)。

  1. 选择可视化类型。

打开 Visualization type(可视化类型) 下拉菜单,然后选择 Area(面积图)。

为每种订单类别创建过滤器

  1. 在图层面板(Layer Pane)中,找到 Breakdown(分类拆分),点击 Add or drag-and-drop a field(添加字段或拖放字段)。
  1. 点击 Filters(过滤器) 函数。
  1. 点击 All records(所有记录),在查询栏中输入以下内容,然后按回车键确认:
  • KQL:category.keyword : *Clothing

  • Label(标签):Clothing(服装)

  1. 点击 Add a filter(添加过滤器),输入以下内容,然后按回车键确认:
  • KQL:category.keyword : *Shoes

  • Label(标签):Shoes(鞋类)

  1. 再次点击 Add a filter(添加过滤器),输入以下内容,然后按回车键确认:
  • KQL:category.keyword : *Accessories

  • Label(标签):Accessories(配饰)

  1. 点击 Close(关闭)。

  2. 打开 Legend(图例) 菜单,然后在 Position(位置) 选项中选择向上的箭头,将图例移动到图表顶部。

查看周末售出商品数量的累计值

为了统计仅在周六和周日产生的订单数量,我们可以创建一个面积图(Area Chart),然后将其添加到仪表板中。

创建可视化图表

  1. 创建可视化图表。
  • Serverless 和 Stack 9.2+

在应用程序菜单中,选择 Add(添加)> Visualization(可视化)。

    • Stack 9.0--9.1

在仪表板工具栏中,点击 Create visualization(创建可视化)。

  1. 选择可视化类型。

打开 Visualization type(可视化类型) 下拉菜单,然后选择 Area(面积图)。

x

配置商店订单的累计总数

  1. 从 Available fields(可用字段) 列表中,将 Records(记录数) 拖放到工作区(Workspace)。
  1. 在图层面板(Layer Pane)中,点击 Count of records(记录数)。
  1. 点击 Cumulative sum(累计求和) 函数。
  1. 在 Name(名称) 字段中输入 Cumulative weekend orders(周末累计订单数),然后点击 Close(关闭)。

筛选仅在周六和周日产生的订单

  1. 在图层面板中,找到 Breakdown(分类拆分),点击 Add or drag-and-drop a field(添加字段或拖放字段)。
  1. 点击 Filters(过滤器) 函数。
  1. 点击 All records(所有记录),在查询栏中输入以下内容,然后按回车键确认:
  • KQL:
arduino 复制代码
`day_of_week : "Saturday" or day_of_week : "Sunday"`AI代码解释
  • Label(标签):Saturday and Sunday(周六和周日)

该 KQL 过滤器会筛选出 day_of_week 字段值为 Saturday(周六)或 Sunday(周日)的所有文档。

  1. 点击 Close(关闭)。

  2. 打开 Legend(图例) 菜单,然后在 Visibility(可见性) 选项旁点击 Hide(隐藏),以隐藏图例。

完成后,你将得到一个展示周末订单累计数量随时间变化趋势的面积图,帮助你分析周末订单量的增长情况。

比较不同时间范围

使用 Time shift(时间偏移) 功能,可以比较不同时间范围内的数据。

为了确保数据能够正确显示,当使用多个时间偏移时,应选择日期直方图(Date Histogram)时间间隔的整数倍作为偏移量。

例如,如果日期直方图的时间间隔设置为 days(天),就不能为一个数据系列设置 36h(36 小时)的时间偏移,同时为另一个数据系列设置 1d(1 天)的时间偏移。

创建不同时间范围的对比图表

为了比较两个不同时间范围的数据,我们将创建一个折线图(Line Chart),对比本周与上周的销售情况。

  1. 创建可视化图表。
  • Serverless 和 Stack 9.2+

在应用程序菜单中,选择 Add(添加)> Visualization(可视化)。

  • Stack 9.0--9.1

在仪表板工具栏中,点击 Create visualization(创建可视化)。

  1. 选择可视化类型。

打开 Visualization type(可视化类型) 下拉菜单,然后选择 Line(折线图)。

  1. 添加记录数字段。

从 Available fields(可用字段) 列表中,将 Records(记录数) 拖放到工作区(Workspace)。

  1. 复制记录数指标。

在图层面板(Layer Pane)中,将 Count of records(记录数) 拖放到 Vertical axis(纵轴) 下的 Add or drag-and-drop a field(添加字段或拖放字段) 区域,以复制该指标。

配置按周同比对比

为了实现本周与上周的环比对比( Week -over-Week Comparison),我们需要将第二个 Count of records 指标的时间范围向前偏移一周。

  1. 在图层面板中,点击 Count of records 1。
  1. 点击 Advanced(高级设置)。

  2. 在 Time shift(时间偏移) 下拉菜单中,选择 1 week ago(1 周前),然后点击 Close(关闭)。

如果希望使用自定义时间偏移,可以直接输入时间数值及其单位,然后按 Enter 键确认。

例如,输入 1w,即可将时间范围向前偏移一周,相当于选择 1 week ago(1 周前)。

完成后,折线图将同时展示当前时间范围与前一周对应时间范围的数据,方便你直观比较两者的变化趋势。

  1. 点击 Save and return(保存并返回)。

Time shift(时间偏移) 功能可以应用于任何指标(Metric)。

其中,特殊的时间偏移选项 previous(上一时间段),可以显示当前所选时间范围之前、且持续时间相同的时间段内的数据。

例如,如果在右上角的时间选择器(Time Picker)中选择 Last 7 days(最近 7 天),那么 previous 将显示 14 天前至 7 天前的数据。

这样,你就可以方便地比较当前时间段与前一个等长时间段的指标变化。

注意: previous 模式不能与 Date histogram(日期直方图) 同时使用。

分析不同时间范围之间的百分比变化

使用 Formula(公式) 功能,可以分析不同时间范围内的数据百分比变化。

为了以百分比的形式比较不同时间段的数据,我们将创建一个柱状图(Bar Chart),对比本周与上周的销售情况。

1)创建可视化图表。

  • Serverless 和 Stack 9.2+

    在应用程序菜单中,选择 Add(添加)> Visualization(可视化)。

  • Stack 9.0--9.1

    在仪表板工具栏中,点击 Create visualization(创建可视化)。

2)添加记录数字段。

从 Available fields(可用字段) 列表中,将 Records(记录数) 拖放到工作区(Workspace)。

3)在图层面板(Layer Pane)中,点击 Count of records(记录数)。

4)点击 Formula(公式),然后在 Formula 字段中输入:

scss 复制代码
`count() / count(shift='1w') - 1`AI代码解释

5)在 Name(名称) 字段中输入 Percent of change(百分比变化率)。

6)在 Value format(数值格式) 下拉菜单中,选择 Percent(百分比),然后在 Decimals(小数位数) 字段中输入 0,以整数百分比形式显示结果。

7)点击 Close(关闭)。

完成后,图表将展示本周相对于上周的百分比变化,帮助你快速判断销售活动是在增长还是下降。

注意: 这里使用 count() 计算的是记录数变化。如果每条记录代表一个订单,该指标反映的是订单数量的变化,而不是实际销售金额的变化。

8)点击 Save and return(保存并返回)。

使用表格分析数据

使用表格(Table),你可以查看和比较不同字段的值,这对于展示客户订单的地理位置分布非常有用。

接下来,我们将创建一个基于**日期直方图(Date Histogram)**的表格,并按照类别(例如用户账户注册所在的大洲)对客户数量指标进行分组。

创建表格可视化

  1. 创建可视化图表。
  • Serverless 和 Stack 9.2+

在应用程序菜单中,选择 Add(添加)> Visualization(可视化)。

  • Stack 9.0--9.1

在仪表板工具栏中,点击 Create visualization(创建可视化)。

  1. 选择可视化类型。

打开 Visualization type(可视化类型) 下拉菜单,然后选择 Table(表格)。

  1. 添加客户数量指标。

从 Available fields(可用字段) 列表中,将 customer_id(客户 ID) 字段拖放到图层面板(Layer Pane)中的 Metrics(指标) 区域。

  1. 在图层面板中,点击 Unique count of customer_id(客户 ID 唯一值计数)。

  2. 在 Name(名称) 字段中输入 Customers(客户数),然后点击 Close(关闭)。

  1. 添加订单日期字段。

从 Available fields(可用字段) 列表中,将 order_date(订单日期) 字段拖放到图层面板中的 Rows(行) 区域。

  1. 在图层面板中,点击 order_date。

  2. 在 Minimum interval(最小时间间隔) 字段中输入 1d(1 天)。

  3. 在 Name(名称) 字段中输入 Sales(销售),然后点击 Close(关闭)。

按大洲拆分客户数量指标

为了按大洲展示客户数量,我们可以使用 Split metrics by(按字段拆分指标) 功能,为每个大洲创建独立的列。

  1. 从 Available fields(可用字段) 列表中,将 geoip.continent_name(大洲名称) 字段拖放到图层面板中的 Split metrics by(按字段拆分指标) 区域。

保存仪表板

现在,你已经创建了一个能够全面展示电商销售数据的仪表板,接下来可以将其保存。

  1. 在应用程序菜单中,点击 Save(保存)。

  2. 在 Save dashboard(保存仪表板) 窗口中,输入 eCommerce sales(电商销售)。

  3. 勾选 Store time with dashboard(随仪表板保存时间范围),以保存当前设置的时间筛选条件。

  4. 点击 Save(保存)。

相关推荐
曦夜日长2 小时前
Git系统篇,Git本地使用(一):从“究极进化版“到三个区域的底层原理
大数据·linux·git·elasticsearch
mister_guo10 小时前
Elasticsearch:原理、Docker 安装与常用命令
大数据·运维·elasticsearch
鱼宵14 小时前
LangChain4j 生产化改造:记忆落 Redis、向量落 ES,重启再也不丢
数据库·redis·elasticsearch·langchain4j
小巫山云子14 小时前
Git的用法
大数据·git·elasticsearch
Elasticsearch15 小时前
多租户集群中的 Kubernetes 吵闹邻居:使用 ES|QL 找出它
elasticsearch
Elasticsearch16 小时前
你的 AI 聊天不应只是一张截图:Elastic Agent Builder 中的实时共享对话
elasticsearch
承渊政道17 小时前
CentOS 7单机部署Elasticsearch 7.17.29:从启动报错、CRUD验证到固定公网地址的完整过程
linux·elasticsearch·centos·内网穿透·cpolar·单机部署
Elasticsearch1 天前
Kibana:通过分步教程学习构建仪表板和创建数据可视化图表
elasticsearch
高级程序源2 天前
django房屋租赁系统28636-计算机课程设计、毕业设计
python·mysql·elasticsearch·小程序·django·flask·课程设计