使用 ES|QL
编辑使用 ES|QL
编辑Elasticsearch 查询语言 ES|QL 使您更容易在不离开 Discover 的情况下探索数据。
在本教程中,我们将使用 Discover 和 Lens 中的 Kibana 示例 Web 日志来探索数据并创建可视化。
有关完整的 ES|QL 文档,包括教程、示例和完整的语法参考,请参阅Elasticsearch 文档。有关 Kibana 中 ES|QL 的更详细概述,请参阅在 Kibana 中使用 ES|QL。
先决条件
编辑要在 Discover 中查看 ES|QL 选项,必须从 Kibana 的 高级设置中启用 enableESQL
设置。默认情况下已启用。
使用 ES|QL
编辑加载示例数据
- 安装 Web 日志示例数据.
- 转到 Discover。
- 从应用程序菜单栏中选择 尝试 ES|QL。
假设我们想了解用户使用的操作系统以及他们机器上的内存大小。
- 将时间范围设置为 过去 7 天。
-
复制下面的查询
将每个处理命令放在新的一行,以提高可读性。
-
点击 ▶运行。
ES|QL 关键字不区分大小写。
让我们向查询添加 geo.dest
,以找出访问的地理目的地,并限制结果。
-
复制下面的查询
FROM kibana_sample_data_logs | KEEP machine.os, machine.ram, geo.dest | LIMIT 10
-
再次点击 ▶运行。您会注意到表格现在限制为 10 个结果。可视化也根据查询自动更新,并为您分解了数据。
当您不使用
KEEP
指定要保留的任何特定字段时,可视化不会自动分解。相反,可视化上方会出现一个额外的选项,允许您手动选择一个字段。
我们现在将更进一步,按机器内存大小对数据进行排序,并过滤掉 GB
目的地。
-
复制下面的查询
FROM kibana_sample_data_logs | KEEP machine.os, machine.ram, geo.dest | SORT machine.ram desc | WHERE geo.dest != "GB" | LIMIT 10
-
再次点击 ▶运行。表格和可视化不再显示
geo.dest
字段值为“GB”的结果,并且表格中的结果现在根据machine.ram
字段按降序排序。 - 点击 保存以将查询和可视化保存到仪表板。
编辑 ES|QL 可视化
编辑您可以通过点击铅笔图标来更改可视化。这将打开其他设置,允许您根据自己的喜好调整图表类型、轴、细分、颜色和显示的信息。如果您不确定选择哪种方式,请查看可视化编辑器中提供的建议之一。
如果您想保留可视化并将其添加到仪表板,可以使用软盘图标保存它。
ES|QL 和时间序列数据
编辑默认情况下,当索引包含 @timestamp
字段时,ES|QL 会识别时间序列数据。这将为您的查询启用时间范围选择器和可视化选项。
如果您的索引没有明确的 @timestamp
字段,但有不同的时间字段,您仍然可以通过在查询中调用 ?_start
和 ?_tend
参数来启用时间范围选择器和可视化选项。
例如,电子商务示例数据集没有 @timestamp
字段,但有一个 order_date
字段。
默认情况下,当查询此数据集时,时间序列功能未激活。不会生成可视化,并且时间选择器被禁用。
FROM kibana_sample_data_ecommerce | KEEP customer_first_name, email, products._id.keyword
在仍然查询相同数据集的情况下,通过根据 order_date
字段添加 ?_start
和 ?_tend
参数,Discover 启用时间序列功能。
FROM kibana_sample_data_ecommerce | WHERE order_date >= ?_tstart and order_date <= ?_tend