你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure Monitor 中运行搜索作业

搜索作业是异步查询,用于将记录提取到工作区内的新搜索表中,以便进一步分析。 搜索作业使用并行处理,可能会对大型数据集运行数小时。 本文介绍如何创建搜索作业以及如何查询其结果数据。

注意

对于具有客户管理的密钥的工作区,当前不支持搜索作业功能。

权限

要运行搜索作业,需要 Log Analytics 工作区的 Microsoft.OperationalInsights/workspaces/tables/writeMicrosoft.OperationalInsights/workspaces/searchJobs/write 权限,例如,由 Log Analytics 参与者内置角色提供的权限。

何时使用搜索作业

当 10 分钟的日志查询超时不足以搜索大量数据或运行慢速查询时,应使用搜索作业。

搜索作业还允许你将记录从“已存档的日志”和“基本日志”表中检索到可用于查询的新日志表中。 通过这种方式,运行搜索作业可以替代:

  • 从存档日志中恢复特定时间范围的数据
    当你临时需要对大量数据运行许多查询时,请使用还原。

  • 直接查询基本日志,每次查询付费。
    若要确定哪种替代方法更具成本效益,请将查询基本日志的成本与运行搜索作业和存储搜索作业结果的成本进行比较。

搜索作业有什么作用?

搜索作业将其结果发送到与源数据位于同一工作区中的新表中。 搜索作业开始后,结果表即告可用,但结果可能需要一段时间才能开始显示。

搜索作业结果表是一个分析表,可用于日志查询和其他使用工作区中表的 Azure Monitor 功能。 该表使用为工作区设置的保留值,但你可以在创建表后修改此值。

搜索结果表架构基于源表架构和指定的查询。 以下其他列可帮助你跟踪源记录:

_OriginalType 源表中的 Type 值。
_OriginalItemId 源表中的 _ItemID 值。
_OriginalTimeGenerated 源表中的 TimeGenerated 值。
TimeGenerated 搜索作业运行时间。

对结果表的查询显示在日志查询审核中,但不显示在初始搜索作业中。

运行搜索作业

运行搜索作业,以将大型数据集中的记录提取到工作区中的新搜索结果表中。

提示

运行搜索作业会产生费用。 因此,在运行搜索作业之前,请在交互式查询模式下写入和优化查询。

若要运行搜索作业,请在 Azure 门户中执行以下操作:

  1. 在“Log Analytics 工作区”菜单中,选择“日志”。

  2. 请选择屏幕右侧的省略号菜单,然后将“搜索作业模式”切换为开启状态。

    Screenshot of the Logs screen with the Search job mode switch highlighted.

    Azure Monitor 日志 intellisense 支持搜索作业模式下的 KQL 查询限制,有助于写入搜索作业查询。

  3. 使用时间选取器指定搜索作业日期范围。

  4. 请键入搜索作业查询,并选择“搜索作业”按钮。

    Azure Monitor 日志会提示你提供结果集表的名称,并通知你会对搜索作业进行计费。

    Screenshot that shows the Azure Monitor Logs prompt to provide a name for the search job results table.

  5. 请输入搜索作业结果表的名称,然后选择“运行搜索作业”。

    Azure Monitor 日志运行搜索作业,并在工作区中为搜索作业结果创建新表。

    Screenshot that shows an Azure Monitor Logs message that the search job is running and the search job results table will be available shortly.

  6. 新表准备就绪后,选择“查看 tablename_SRCH”,即可在 Log Analytics 中查看该表。

    Screenshot that shows an Azure Monitor Logs message that the search job results table is available to view.

    当搜索作业结果开始流入新创建的搜索作业结果表时,可以看到它们。

    Screenshot that shows search job results table with data.

    Azure Monitor 日志会在搜索作业结束时显示“搜索作业已完成”这一消息。 结果表现已准备就绪,其中包含与搜索查询匹配的所有记录。

    Screenshot that shows an Azure Monitor Logs message that the search job is done.

获取搜索工作状态和详细信息

  1. 在“Log Analytics 工作区”菜单中,选择“日志”。

  2. 在“表”选项卡中,选择“搜索结果”以查看所有搜索作业结果表。

    在搜索作业完成之前,搜索作业结果表上的图标都会显示更新指示。

    Screenshot that shows the Tables tab on Logs screen in the Azure portal with the search results tables listed under Search results.

删除搜索作业表

我们建议你在查询完表后删除搜索作业表。 这样会减少工作空间混乱和额外的数据保留费用。

限制

搜索作业存在以下限制:

  • 优化为一次查询一个表。
  • 搜索日期范围最长为一年。
  • 支持长达 24 小时超时的长时间运行搜索。
  • 结果限制为记录集中的 100 万条记录。
  • 并发执行限制为每个工作区五个搜索作业。
  • 每个工作区限制为 100 个搜索结果表。
  • 每个工作区每天只能执行 100 个搜索作业。

达到记录限制时,Azure 将中止作业,状态为“部分成功”,并且表将仅包含截至该点引入的记录。

KQL 查询限制

搜索作业旨在扫描特定表中的大量数据。 因此,搜索作业查询必须始终以表名开头。 为了使用分布和分段启用异步执行,查询支持 KQL 的子集,包括运算符:

可以在这些运算符中使用所有函数和二元运算符。

定价模型

搜索作业的费用是基于:

  • 搜索作业执行 - 搜索作业扫描的数据量。
  • 搜索作业结果 - 基于常规日志数据引入价格,搜索作业找到的和在结果表中引入的数据量。

例如,如果你的表每天容纳 500 GB,那么对于 30 天的搜索,你需要支付 15,000 GB 的扫描数据费用。 如果搜索作业找到 1,000 条与搜索查询匹配的记录,你需要为将这 1,000 条记录引入结果表付费。

有关详细信息,请参阅 Azure Monitor 定价

后续步骤