使用 ES|QL
Elastic Stack Serverless
Elasticsearch 查询语言 ES|QL 使您无需离开 Discover 即可更轻松地探索数据。
本页上的示例使用 Discover 和 Lens 中的 Kibana 示例 Web 日志来探索数据和创建可视化。您也可以按照添加示例数据进行安装。
有关完整的 ES|QL 文档,请参阅 ES|QL 文档。有关 Kibana 中 ES|QL 的更详细概述,请参阅在 Kibana 中使用 ES|QL。
要在 Discover 中查看 ES|QL 选项,必须从 Kibana 的高级设置启用 enableESQL
设置。 默认情况下已启用。
要加载示例数据
转到 Discover。
从应用程序菜单栏中选择 Try ES|QL。
提示如果您在 Discover 的默认模式下输入了 KQL 或 Lucene 查询,它会自动转换为 ES|QL。
假设我们想了解用户拥有什么操作系统以及他们的机器上有多少 RAM。
将时间范围设置为过去 7 天。
复制下面的查询
FROM kibana_sample_data_logs | KEEP machine.os, machine.ram
- 我们专门寻找我们刚刚安装的示例 Web 日志中的数据。
- 我们只保留结果表中的
machine.os
和machine.ram
字段。
提示将每个处理命令放在新的一行上以提高可读性。
点击 ▶Run。
注意ES|QL 关键字不区分大小写。
让我们将 geo.dest
添加到我们的查询中,以查找访问的地理目的地并限制结果。
复制下面的查询
FROM kibana_sample_data_logs | KEEP machine.os, machine.ram, geo.dest | LIMIT 10
再次单击 ▶Run。 您可以注意到该表现在限制为 10 个结果。 可视化也根据查询自动更新,并为您分解了数据。
注意当您不指定任何要使用
KEEP
保留的特定字段时,可视化不会自动分解。 相反,可视化上方会出现一个附加选项,让您可以手动选择一个字段。
我们现在将更进一步,按机器 RAM 对数据进行排序,并过滤掉 GB
目的地。
复制下面的查询
FROM kibana_sample_data_logs | KEEP machine.os, machine.ram, geo.dest | SORT machine.ram desc | WHERE geo.dest != "GB" | LIMIT 10
再次单击 ▶Run。 表格和可视化不再显示
geo.dest
字段值为“GB”的结果,并且结果现在基于machine.ram
字段在表格中按降序排序。单击保存以将查询和可视化保存到仪表板。
您可以通过单击铅笔图标来更改可视化。 这会打开其他设置,让您可以根据自己的喜好调整图表类型、轴、细分、颜色和显示的信息。 如果您不确定要走哪条路线,请查看可视化编辑器中提供的建议之一。
如果您想保留可视化并将其添加到仪表板,您可以使用软盘图标保存它。
默认情况下,当索引包含 @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

ES|QL 编辑器支持LOOKUP JOIN
命令,并建议查找模式索引和连接条件字段。