查看和管理作业运行

本文介绍 Azure Databricks UI 中可用于查看你有权访问的作业、查看作业运行历史记录以及查看作业运行详细信息的功能。 若要了解如何使用 Databricks CLI 查看作业和运行作业,请运行 CLI 命令 databricks jobs list -hdatabricks jobs get -hdatabricks jobs run-now -h。 若要了解如何使用作业 API,请参阅作业 API

查看作业

若要查看你有权访问的作业的列表,请单击边栏中的 工作流图标工作流”。 工作流 UI 中的“作业”选项卡会列出有关所有可用作业的信息,例如作业的创建者、作业的触发器(如果有)以及上次运行的结果。

要更改作业列表中显示的列,请单击“设置图标”,然后选择或取消选择列。

可以在“作业”列表中筛选作业:

  • 使用关键字。 如果为此工作区启用了增加作业限制功能,则仅支持按关键字搜索名称、作业 ID 和作业标记字段。
  • 仅选择你拥有的作业。
  • 选择你有权访问的所有作业。
  • 使用标记。 若要搜索仅使用键创建的标记,请在搜索框中键入该键。 若要搜索使用键和值创建的标记,可以按键、值或键和值进行搜索。 例如,对于具有键 department 和值 finance 的标记,可以搜索 departmentfinance 查找匹配的作业。 要按键和值进行搜索,请输入键和值并用冒号分隔;例如 department:finance

你还可以单击任何列标题,以便按该列对作业列表排序(降序或升序)。 启用增加作业限制功能后,只能按 NameJob IDCreated by 排序。 默认排序是按 Name 升序排序。

单击Kebab 菜单,以访问作业的操作,例如删除作业。

查看作业的运行

你可以查看自己有权访问的所有作业的当前正在执行的运行和最近完成的运行的列表,包括由 Apache Airflow 或 Azure 数据工厂之类的外部业务流程工具启动的运行。 若要查看最近的作业运行列表,请执行以下操作:

  1. 在边栏中,单击 工作流图标工作流”。
  2. 在“名称”列中单击作业名称。 此时会显示“运行”选项卡,其中包含活动运行和已完成运行的矩阵和列表视图。

矩阵视图显示作业运行的历史记录,包括每个作业任务。

矩阵的“运行总持续时间”行会显示运行的总持续时间和运行状态。 若要查看运行的详细信息(包括开始时间、持续时间和状态),请将鼠标悬停在“运行总持续时间”行中的条上。

“任务”行中的每个单元格代表一个任务和该任务的相应状态。 若要查看每个任务的详细信息,包括开始时间、持续时间、群集和状态,请将鼠标悬停在该任务的单元格上。

作业运行和任务运行条采用颜色编码以指示运行状态。 成功的运行为绿色,未成功的运行为红色,跳过的运行为粉红色。 单个作业运行和任务运行条的高度可直观指示运行持续时间。

如果已配置预期完成时间,则当运行持续时间超过配置的时间时,矩阵视图会显示警告。

默认情况下,运行列表视图显示:

  • 运行开始时间。
  • 运行标识符。
  • 运行是由作业计划触发、API 请求触发还是手动启动的。
  • 当前正在运行的作业的已用时间,或已完成的运行的总运行时间。 如果持续时间超过配置的预期完成时间,则显示警告。
  • Spark 日志的链接。
  • 运行状态,值为 QueuedPendingRunningSkippedSucceededFailedTerminatingTerminatedInternal ErrorTimed OutCanceledCancelingWaiting for Retry
  • 单击Kebab 菜单,以访问运行的上下文特定操作,例如停止活动运行或删除已完成的运行。

要更改运行列表视图中显示的列,请单击“设置图标”,然后选择或取消选择列。

若要查看作业运行详细信息,请在运行列表视图的“开始时间”列中单击该运行的链接。 要查看此作业最近一次成功运行的详细信息,请单击“转到最近一次成功运行”。

Azure Databricks 最多可以保留 60 天的作业运行历史。 如果需要保留作业运行,Databricks 建议在结果过期之前将其导出。 有关详细信息,请参阅导出作业运行结果

查看作业运行详细信息

作业运行详细信息页包含作业输出和日志链接,其中包括有关作业运行中每个任务的成功或失败结果的信息。 可以通过作业的“运行”选项卡访问作业运行详细信息。 若要从“运行”选项卡查看作业运行详细信息,请在运行列表视图的“开始时间”列中单击该运行的链接。 若要返回到作业的“运行”选项卡,请单击“作业 ID”值。

如果作业包含多个任务,则单击某个任务即可查看任务运行详细信息,其中包括:

  • 运行该任务的群集
    • 该任务的 Spark UI
    • 该任务的日志
    • 该任务的指标

单击“作业 ID”值以返回到作业的“运行”选项卡。

查看任务运行历史记录

查看任务的运行历史记录,包括成功和未成功的运行:

  1. 单击“作业运行详细信息”页上的某个任务。 此时将显示“任务运行详细信息”页。
  2. 在运行历史记录下拉菜单中选择任务运行。

查看最近的作业运行

你可以查看自己有权访问的工作区中所有作业的当前正在执行的运行和最近完成的运行的列表,包括由 Apache Airflow 或 Azure 数据工厂之类的外部业务流程工具启动的运行。 若要查看最近的作业运行列表,请执行以下操作:

  1. 在边栏中,单击 工作流图标工作流”。
  2. 单击“作业运行”选项卡以显示“作业运行”列表。

已完成的运行计数”图可显示过去 48 小时内完成的作业运行数。 默认情况下,该图显示失败、跳过和成功的作业运行。 还可以筛选该图以显示特定的运行状态,或将该图限制为特定的时间范围。 “作业运行”选项卡还包括过去 67 天的作业运行表。 默认情况下,该表包含有关失败、跳过和成功作业运行的详细信息。

注意

仅当单击“归我所有”时,才会显示“已完成的运行计数”图

可以按运行状态筛选“已完成的运行计数”:

  • 要更新该图以显示当前正在运行或等待运行的作业,请单击“活动运行”。
  • 要更新图形以仅显示已完成的运行,包括失败、成功和跳过的运行,请单击“已完成的运行”。
  • 要更新图形以仅显示在过去 48 小时内成功完成的运行,请单击“成功的运行”。
  • 要更新图形以仅显示跳过的运行,请单击“跳过的运行”。 跳过运行的原因是你超出了工作区中的最大并发运行数,或者作业超过了作业配置指定的最大并发运行数。
  • 要更新图形以仅显示处于错误状态的已完成运行,请单击“失败的运行”。

单击任何筛选器按钮时,运行表中的运行列表也会更新,以仅显示与所选状态匹配的作业运行。

要限制“已完成的运行计数”图中显示的时间范围,请在图中单击并拖动光标以选择时间范围。 图和运行表将会更新,以仅显示所选时间范围内的运行。

默认情况下,运行表中的运行列表会显示:

  • 运行开始时间。
  • 与运行关联的作业名称。
  • 运行作业的用户名。
  • 运行是由作业计划触发、API 请求触发还是手动启动的。
  • 当前正在运行的作业的已用时间,或已完成的运行的总运行时间。 如果持续时间超过配置的预期完成时间,则显示警告。
  • 运行状态,值为 QueuedPendingRunningSkippedSucceededFailedTerminatingTerminatedInternal ErrorTimed OutCanceledCancelingWaiting for Retry
  • 此运行的任何参数。
  • 单击Kebab 菜单,以访问运行的上下文特定操作,例如停止活动运行或删除已完成的运行。

要更改运行列表中显示的列,请单击“设置图标”,然后选择或取消选择列。

前 5 个错误类型”表可显示所选时间范围内最常见的错误类型的列表,从而支持你快速查看工作区中作业问题的最常见原因。

若要查看作业运行详细信息,请单击运行“开始时间”列中的链接。 若要查看作业详细信息,请单击“作业”列中的作业名称。

查看作业的世系信息

如果在工作区中启用了 Unity Catalog,则可以查看工作流中任何 Unity Catalog 表的世系信息。 如果提供了工作流的世系信息,则作业的“作业详细信息”面板、作业运行的“作业运行详细信息”面板或任务运行的“任务运行详细信息”面板中会显示一个链接,其中包含上游和下游表的计数。 单击该链接会显示表的列表。 单击某个表可在目录资源管理器中查看详细信息。

导出作业运行结果

可以为所有作业类型导出笔记本运行结果和作业运行日志。

导出笔记本运行结果

可以通过导出作业运行的结果来持久保存作业运行。 对于笔记本作业运行,可以先导出呈现的笔记本,稍后再将其导入到 Azure Databricks 工作区中。

导出具有单个任务的作业的笔记本运行结果:

  1. 在“作业详细信息”页上,在“已完成的运行(过去 60 天)”表的“运行”列中,单击该运行对应的“查看详细信息”链接 。
  2. 单击“导出到 HTML”。

导出具有多个任务的作业的笔记本运行结果:

  1. 在“作业详细信息”页上,在“已完成的运行(过去 60 天)”表的“运行”列中,单击该运行对应的“查看详细信息”链接 。
  2. 单击用于导出的笔记本任务。
  3. 单击“导出到 HTML”。

导出作业运行日志

你还可以导出作业运行的日志。 可以设置作业,使其通过作业 API 自动将日志传送到 DBFS。 请参阅传递给作业 API 中new_cluster.cluster_log_conf操作 (POST /jobs/create) 的请求正文中的 new_cluster.cluster_log_conf 对象。