使用 Discover 浏览字段和数据
Elastic Stack Serverless
了解如何使用 Discover 来
- 选择和过滤 Elasticsearch 数据。
- 深入浏览数据的字段和内容。
- 在可视化中呈现您的发现。
先决条件
- 如果您还没有 Kibana,请在 Elastic Cloud 上开始免费试用。
- 您必须在 Elasticsearch 中有数据。此页面上的示例使用电子商务示例数据集,但您可以使用自己的数据。
- 您应该了解Elasticsearch 文档和索引。
选择要浏览的数据,然后指定查看该数据的时间范围。
在导航菜单中或使用全局搜索字段找到 Discover。
选择包含要浏览的数据的数据视图。
提示如果您使用的是示例数据,则会自动创建数据视图并可供使用。
如果需要,调整时间范围,例如将其设置为最近 7 天。范围选择基于数据视图中的默认时间字段。如果您使用的是示例数据,则该值是在创建数据视图时设置的。如果您使用的是自己的数据视图,并且它没有时间字段,则范围选择不可用。
Discover 已填充您的数据,您可以查看具有不同信息的各个区域
- 所有检测到的字段都列在专用面板中。
- 图表允许您可视化您的数据。
- 表格显示您的搜索结果。默认情况下,该表格包含时间字段的列和带有每个结果的概述的摘要列。您可以修改文档表格以显示您感兴趣的字段。
您可以稍后通过指定查询和更改时间范围来过滤图表和表格中显示的数据。
Discover 提供了旨在帮助您理解数据的实用程序
在侧边栏中,检查可用的字段。通常会有数百个字段。使用该侧边栏顶部的搜索来查找字段名称中的特定术语。在此示例中,我们在搜索字段中输入了
ma
来查找manufacturer
字段。提示您可以组合多个关键字或字符。例如,
geo dest
查找geo.dest
和geo.src.dest
。选择一个字段以查看其最频繁的值。Discover 显示前 10 个值和用于计算这些值的记录数。
选择加号图标以将字段添加到结果表格。您也可以将它们从列表拖到表格中。
当您将字段添加到表格时,摘要列将被替换。
使用 Discover 的各种显示选项来按照您的喜好排列视图,以显示您最关心的字段和数据。例如,您可以更改列的顺序和大小,展开表格以全屏显示或折叠图表和字段列表。有关更多信息,请查看自定义 Discover 视图。
保存您的更改,以便稍后能够打开相同的视图并进一步浏览您的数据。
如果您忘记将一个重要的值定义为一个单独的字段会怎么样?或者,如果您想组合两个字段并将它们视为一个字段会怎么样?这就是运行时字段发挥作用的地方。您可以从 Discover 内部将运行时字段添加到您的数据视图,然后像使用其他字段一样将该字段用于分析和可视化。
在侧边栏中,选择添加字段。
选择新字段的类型。
命名字段。以与数据视图的其他字段命名方式相对应的方式命名它。您可以为该字段设置自定义标签和描述,以使其在您的数据视图中更易于识别。
定义您希望该字段显示的值。默认情况下,如果源数据已经包含具有相同名称的字段,则从源数据中检索字段值。您可以使用以下选项自定义此设置
- 设置值:定义一个脚本,该脚本将确定该字段要显示的值。有关添加字段和 Painless 脚本语言示例的更多信息,请参阅使用运行时字段浏览您的数据。
- 设置格式:设置您首选的用于显示值的格式。更改格式可能会影响该值并阻止在 Discover 中突出显示。
在高级设置中,您可以调整字段的受欢迎程度,使其在字段列表中出现得更高或更低。默认情况下,Discover 会按受欢迎程度(从选择最多到选择最少)对常用字段进行排序。
保存您的新字段。
您现在可以在字段列表中找到它并将其添加到表格中。
在以下示例中,我们添加了 2 个字段:一个简单的“Hello world”字段,以及第二个字段,该字段将示例数据的 customer_first_name
和 customer_last_name
字段组合并转换为一个“customer”字段
Hello world 字段示例:
名称:
hello
类型:
Keyword
设置值:已启用
脚本:
emit("Hello World!");
Customer 字段示例:
名称:
customer
类型:
Keyword
设置值:已启用
脚本:
String str = doc['customer_first_name.keyword'].value; char ch1 = str.charAt(0); emit(doc['customer_last_name.keyword'].value + ", " + ch1);
如果一个字段可以被聚合,您可以通过从 Discover 中在 Lens 中打开它来快速详细地对其进行可视化。Lens 是 Kibana 中的默认可视化编辑器。
在字段列表中,找到一个可聚合的字段。例如,使用示例数据,您可以查找
day_of_week
。在弹出窗口中,单击可视化。Kibana 会创建一个最适合该字段的 Lens 可视化。
在 Lens 中,从可用字段列表中,拖放更多字段以优化可视化。在此示例中,我们将
manufacturer.keyword
字段添加到工作区,这会自动将顶部值的细分添加到可视化。如果您想将其添加到仪表板或将其保留在可视化库中以供以后使用,请保存该可视化。
对于地理点字段(),如果您单击可视化,您的数据将显示在地图中。
使用表内搜索来查找和突出显示超出当前屏幕上可见范围的特定值。
表内搜索会查找当前加载到表格中的所有结果和页面中的所有匹配值。加载的结果数量取决于样本大小。如果您加载更多结果,则搜索会自动更新并反映新的匹配值数量(如果找到更多匹配值)。
您可以使用键盘在结果之间导航,方法是按“Enter”键转到下一个结果,按“Shift + Enter”键转到上一个结果。
您可以使用 Discover 比较和区分表格中多个结果或文档的字段值。
从 Discover 中的“文档”或“结果”选项卡中选择您要比较的结果。
从表格工具栏的已选菜单中,选择比较已选。比较视图将打开并并排显示所选结果。
比较每个字段的值。默认情况下,选择的第一个结果会显示为参考,用于显示其他结果中的差异。对于给定字段,如果值保持不变,则以绿色显示。如果值不同,则以红色显示。
提示您可以通过在任何其他结果的上下文菜单中选择“固定以进行比较”来更改用作参考的结果。
您可以选择自定义“比较设置”以满足您的喜好。例如,您可以选择不突出显示差异,而是以更精细的方式在行、单词或字符级别显示差异,甚至可以隐藏所有结果中值匹配的字段。
可以使用“退出比较模式”按钮随时退出比较视图。
您可以快速地将当前在表格中显示的一个或多个结果的内容复制到剪贴板。
- 选择您要复制的结果。
- 打开表格工具栏中的“已选择”菜单,然后选择“将所选内容复制为文本”或“将文档复制为 JSON”。
内容将以所选格式复制到剪贴板。当前未添加到表格中的字段将被忽略。
您可以通过悬停在单元格上时出现的快速操作,将单个单元格的内容复制到剪贴板。
深入了解单个文档,以查看其字段以及在其之前和之后发生的文档。
在文档表中,单击展开图标
以显示文档详细信息。
扫描字段及其值。您可以通过多种方式过滤表格
- 如果您发现感兴趣的字段,请将鼠标悬停在“字段”或“值”列上以获取过滤器和其他选项。
- 使用表格上方的搜索来过滤特定字段或值,或使用搜索字段右侧的选项按字段类型进行过滤。
- 您可以通过单击左侧列来固定某些字段,以使其即使在您过滤表格时也保持显示状态。
提示您可以使用“仅选择”切换,将详细视图中列出的字段限制为您明确添加到 Discover 表中的字段。在 ES|QL 模式下,您还可以选择隐藏具有 null 值的字段。
要导航到可以添加书签和共享的文档视图,请选择“查看单个文档”。
要查看在您查看的事件之前或之后发生的文档,请选择“查看周围文档”。
Discover 的独特功能之一是能够将自由文本搜索与基于结构化数据的过滤相结合。要搜索所有字段,请在查询栏中输入一个简单的字符串。
要搜索特定字段并构建更复杂的查询,请使用 Kibana 查询语言。在您键入时,KQL 会提示您可以搜索的字段以及可用于构建结构化查询的运算符。
例如,搜索电子商务示例数据,查找国家/地区与美国匹配的文档
输入
g
,然后选择 geoip.country_iso_code。选择 : 表示等于,选择 US 表示值,然后单击刷新按钮或按 Enter 键。
对于更复杂的搜索,请尝试
geoip.country_iso_code : US and products.taxless_price >= 75
使用查询输入,您可以使用 KQL 或 Lucene 语言过滤数据。您还可以使用查询输入旁边的“添加过滤器”功能,一个接一个地构建过滤器或将其定义为 Query DSL。
例如,排除电子商务示例数据视图中星期几不是星期三的结果
单击查询栏旁边的
。
在“添加过滤器”弹出窗口中,将字段设置为 day_of_week,将运算符设置为 is not,并将值设置为 Wednesday。
单击“添加过滤器”。
通过添加更多过滤器来继续您的探索。
要删除过滤器,请单击过滤器栏中其名称旁边的关闭图标 (x)。
您可以将 Discover 与 Elasticsearch 查询语言 ES|QL 结合使用。使用 ES|QL 时,您无需选择数据视图。您的查询决定了要在 Discover 中探索和显示的数据。
您可以从应用程序菜单栏切换到 Discover 的 ES|QL 模式。
如果您在 Discover 的默认模式下输入了 KQL 或 Lucene 查询,它会自动转换为 ES|QL。
请注意,在 ES|QL 模式下,“文档”选项卡被命名为“结果”。
在 使用 ES|QL 中了解更多关于如何使用 ES|QL 查询的信息。
保存您的 Discover 会话,以便您稍后使用它、生成 CSV 报告或使用它来创建可视化、仪表板和 Canvas 工作区。保存 Discover 会话会保存查询文本、过滤器和 Discover 的当前视图,包括文档表中选择的列、排序顺序和数据视图。
- 在应用程序菜单栏中,单击“保存”。
- 给您的会话一个标题和描述。
- 您可以选择将 标签 和时间范围与会话一起存储。
- 单击“保存”。
要与更多受众分享您的搜索和 Discover 视图,请单击应用程序菜单栏中的“分享”。有关分享选项的详细信息,请参阅 报告。
从 Discover,您可以创建一个规则,以定期检查数据在给定时间间隔内何时高于或低于某个阈值。
确保您的数据视图、查询和过滤器获取您想要警报的数据。
在应用程序菜单栏中,单击“警报 > 创建搜索阈值规则”。
“创建规则”表单已预先填充了发送到 Elasticsearch 的最新查询。
单击“保存”。
有关警报功能中提供的此规则和其他规则的更多信息,请转到 警报。
本节引用了使用 Discover 时遇到的常见问题和疑问。另请查看以下博客文章:了解如何解决 Discover 的常见问题。
为什么有些字段显示为空,而它们不应该是空的?
这可能发生在以下几种情况下
- 对于运行时字段和常规关键字字段,当字符串超过将数据索引到 Elasticsearch 时使用的 ignore_above 设置的值时。
- 由于嵌套字段的结构,添加到表格作为列的叶字段将不包含其任何单元格中的值。相反,将根字段添加为列以查看其值的 JSON 表示形式。在 此博客文章 中了解更多信息。