Databricks 作业的监视和可观测性
本文介绍 Azure Databricks UI 中可用于查看你有权访问的作业、查看作业运行历史记录以及查看作业运行详细信息的功能。 要为作业配置通知,请参阅在作业上添加通知。
若要了解如何使用 Databricks CLI 查看作业和运行作业,请运行 CLI 命令 databricks jobs list -h
、databricks jobs get -h
和 databricks jobs run-now -h
。 若要了解如何使用作业 API,请参阅作业 API。
如果你有权访问 system.lakeflow
架构,则还可以查看和查询整个帐户中作业运行和任务的记录。 请参阅作业系统表参考。 还可以将作业系统表与计费表联接,以监视帐户中的作业成本。 请参阅使用系统表监控作业成本和性能。
查看作业
若要查看你有权访问的作业的列表,请单击边栏中的 “工作流”。 工作流 UI 中的“作业”选项卡会列出有关所有可用作业的信息,例如作业的创建者、作业的触发器(如果有)以及最后五次运行的结果。
要更改作业列表中显示的列,请单击,然后选择或取消选择列。
可以在“作业”列表中筛选作业,如以下屏幕截图所示。
- 搜索关键字。 支持在“名称”、“作业 ID”和“作业标记”字段上进行关键字搜索。 若要搜索使用键和值创建的标记,可以按键、值或键和值进行搜索。 例如,对于具有键
department
和值finance
的标记,可以搜索department
或finance
查找匹配的作业。 要按键和值进行搜索,请输入键和值并用冒号分隔(例如department:finance
)。 - 仅选择你拥有的作业。
- 选择你有权访问的所有作业。
- 选择标记为收藏的所有作业。
- 使用标记。 若要按标记进行搜索,可以使用标记下拉菜单同时筛选最多五个标记,或者直接使用关键字搜索。
还可以通过单击列标题,按“名称”、“作业 ID”或“创建者”列,对作业列表进行升序或降序排序。 默认情况下,作业按“名称”的升序排序。
若要启动作业,请单击“播放”按钮。 若要停止作业,请单击“停止”按钮。 若要访问其他作业操作,请单击垂直省略号菜单 (例如,删除作业)。
查看单个作业的运行
你可以查看自己有权访问的作业的当前正在执行的运行和最近完成的运行的列表,包括由 Apache Airflow 或 Azure 数据工厂之类的外部业务流程工具启动的运行。 若要查看最近的作业运行列表,请执行以下操作:
- 在边栏中,单击
“工作流”。
- 在“名称”列中单击作业名称。 此时会显示“运行”选项卡,其中包含活动运行和已完成运行的矩阵和列表视图。
矩阵视图显示作业运行的历史记录,包括每个作业任务。
矩阵的“运行总持续时间”行会显示运行的总持续时间和运行的状态。 若要查看运行的详细信息(包括开始时间、持续时间和状态),请将鼠标悬停在“运行总持续时间”行中的条上。
“任务”行中的每个单元格代表一个任务和该任务的相应状态。 若要查看每个任务的详细信息,包括开始时间、持续时间、群集和状态,请将鼠标悬停在该任务的单元格上。
作业运行和任务运行条采用颜色编码以指示运行状态。 成功的运行为绿色。 不成功的运行为红色,跳过的运行为粉色,等待重试为黄色。 挂起、取消或超时为灰色。 单个作业运行和任务运行条的高度可直观指示运行持续时间。
如果已配置预期完成时间,则当运行持续时间超过配置的时间时,矩阵视图会显示警告。
默认情况下,运行列表视图显示以下内容:
- 运行开始时间。
- 运行标识符。
- 运行是由作业计划触发、API 请求触发还是手动启动的。
- 当前正在运行的作业的已用时间,或已完成的运行的总运行时间。 如果持续时间超过配置的预期完成时间,则显示警告。
- 运行的状态,“排队”、“挂起”、“正在运行”、“跳过”、“成功”、“失败”、“超时”、“正在取消”或“已取消”。
- 运行终止时的错误代码。
- 运行参数。
当前活动运行会显示一个停止按钮。 若要停止所有活动运行和已排队运行,请从下拉菜单中选择“取消运行”或“取消所有已排队运行”。
对运行使用 可执行其他特定于上下文的作,例如删除已完成运行的条目。
若要访问运行的特定于上下文的操作,请单击垂直省略号菜单 (例如,停止活动运行或删除已完成的运行)。
要更改运行列表视图中显示的列,请单击,然后选择或取消选择列。
若要查看作业运行详细信息,请在运行列表视图的“开始时间”列中单击该运行的链接。 若要查看此作业最近一次成功运行的详细信息,请单击“转到最近一次成功运行”。
Azure Databricks 最多可以保留 60 天的作业运行历史。 如果需要保留作业运行,Databricks 建议在结果过期之前将其导出。 有关详细信息,请参阅导出作业运行结果。
查看作业运行详细信息
作业运行详细信息页包含作业输出和日志链接,其中包括有关作业运行中每个任务的成功或失败结果的信息。 可以通过作业的“运行”选项卡访问作业运行详细信息。
若要从“运行”选项卡查看作业运行详细信息,请在运行列表视图的“开始时间”列中单击该运行的链接。 若要返回到作业的“运行”选项卡,请单击“作业 ID”值。
具有多个任务的作业还具有图形、日程表和列表视图。
图形视图
单击图形中的任务节点以查看任务运行详细信息,其中包括:
- 各种任务详细信息,例如运行方式、作业启动方式、开始时间、结束时间、持续时间和状态。
- 源代码。
- 运行任务的群集,及其查询历史记录和日志的链接。
- 任务的指标。
日程表视图
包含多个任务的作业具有日程表视图,用于找出需要很长时间才能完成的任务、了解依赖项和重叠部分以帮助调试和优化这些作业。
列表视图
默认情况下,列表视图显示状态、名称、类型、资源、持续时间和依赖项。 可以在此视图中添加和删除列。
可以按名称搜索任务、按任务状态或任务类型进行筛选,以及按状态、名称或持续时间对任务进行排序。
单击“作业 ID”值以返回到作业的“运行”选项卡。
Azure Databricks 如何确定作业运行状态?
Azure Databricks 根据作业叶任务的结果来确定作业运行是否成功。 叶任务是无下游依赖项的任务。 作业运行可以有以下三个结果之一:
- 成功:所有任务都成功。
- 成功但失败:一些任务失败,但所有叶任务都成功。
- 失败:一个或多个叶任务失败。
- 跳过:作业运行已跳过(例如,可能由于超出了作业或工作区的最大并发运行数而跳过任务)。
- 超时:作业运行时间过长而导致超时。
- 已取消:作业运行已取消(例如,用户手动取消正在进行的运行)。
查看流式处理任务的指标
重要说明
Databricks 作业的流式处理可观测性处于公共预览版状态。
查看作业运行详细信息时,可以通过作业 UI 中的流式处理可观测性指标获取有关流式处理工作负载的数据。 这些指标包括 Spark 结构化流式处理支持的源(包括 Apache Kafka、Amazon Kinesis、自动加载程序、Google Pub/Sub 和 Delta 表)的积压工作秒数、积压工作字节数、积压工作记录数和积压工作文件数。 查看任务的运行详细信息时,指标在右侧窗格中以图表的形式显示。 每个图表中显示的指标是按分钟聚合的最大值,最多可以包含前 48 小时的指标。
每个流式处理源仅支持特定指标。 流式处理源不支持的指标无法在 UI 中查看。 下表显示了支持的流式处理源可用的指标:
源 | 积压工作字节数 | 积压工作记录数 | 积压工作秒数 | 积压工作文件数 |
---|---|---|---|---|
Kafka | ✓ | ✓ | ||
Kinesis | ✓ | ✓ | ||
DELTA | ✓ | ✓ | ||
自动加载程序 | ✓ | ✓ | ||
Google Pub/Sub | ✓ | ✓ |
还可以为每个流式处理指标指定阈值,并配置在任务运行期间若流超过阈值便发出通知。 请参阅为慢速作业配置通知。
若要查看从其中一个受支持的结构化流式处理源流式传输数据的任务运行的流式处理指标,请执行以下操作:
- 在“作业运行详细信息”页上,单击要查看其指标的任务。
- 单击“任务运行”窗格中的“指标”选项卡。
- 若要打开指标的图形,请单击指标名称旁边的
。
- 若要查看特定流的指标,请在“按 stream_id 筛选”文本框中输入流 ID。 可以在作业运行的输出中找到流 ID。
- 若要更改指标图的时间段,请使用时间下拉菜单。
- 若要在运行包含十多个流的情况下滚动浏览流,请单击“下一个”或“上一个”。
流式处理可观测性限制
- 除非运行包含四个以上的流,否则每分钟更新一次指标。 如果运行具有四个以上的流,则指标每五分钟更新一次。
- 仅收集每个运行中前 50 个流的指标。
查看任务运行历史记录
查看任务的运行历史记录,包括成功和未成功的运行:
- 单击“作业运行详细信息”页上的某个任务。 此时将显示“任务运行详细信息”页。
- 在运行历史记录下拉菜单中选择任务运行。
查看 For each
任务的任务运行历史记录
访问 For each
任务的运行历史记录与访问标准 Azure Databricks 作业任务的相同。 可以单击“作业运行详细信息”页面上的 For each
任务节点或矩阵视图中的相应单元格。 不过,与标准任务不同,For each
任务的运行详细信息显示为嵌套任务的迭代表。
若要仅查看失败的迭代,请单击“仅失败的迭代”。
若要查看迭代的输出,请单击迭代的“开始时间”或“结束时间”值。
查看所有作业的最近作业运行
你可以查看自己有权访问的工作区中所有作业的当前正在执行的运行和最近完成的运行的列表,包括由 Apache Airflow 或 Azure 数据工厂之类的外部业务流程工具启动的运行。 若要查看最近的作业运行列表,请执行以下操作:
- 在边栏中,单击
“工作流”。
- 单击“作业运行”选项卡可显示已完成的运行计数图和作业运行列表。
已完成的运行计数图
“已完成的运行计数”图可显示过去 48 小时内完成的作业运行数。 默认情况下,该图显示失败、跳过和成功的作业运行。 还可以筛选该图以显示特定的运行状态,或将该图限制为特定的时间范围。 “作业运行”选项卡还包括过去 67 天的作业运行表。 默认情况下,该表包含有关失败、跳过和成功作业运行的详细信息。
注意
仅当单击“归我所有”时,才会显示“已完成的运行计数”图。
可以按运行状态筛选“已完成的运行计数”:
- 要更新该图以显示当前正在运行或等待运行的作业,请单击“活动运行”。
- 要更新图形以仅显示已完成的运行,包括失败、成功和跳过的运行,请单击“已完成的运行”。
- 要更新图形以仅显示在过去 48 小时内成功完成的运行,请单击“成功的运行”。
- 要更新图形以仅显示跳过的运行,请单击“跳过的运行”。 跳过运行的原因是你超出了工作区中的最大并发运行数,或者作业超过了作业配置指定的最大并发运行数。
- 要更新图形以仅显示处于错误状态的已完成运行,请单击“失败的运行”。
单击任何筛选器按钮时,运行表中的运行列表也会更新,以仅显示与所选状态匹配的作业运行。
要限制“已完成的运行计数”图中显示的时间范围,请在图中单击并拖动光标以选择时间范围。 图和运行表将会更新,以仅显示所选时间范围内的运行。
“前 5 个错误类型”表可显示所选时间范围内最常见的错误类型的列表,从而支持你快速查看工作区中作业问题的最常见原因。
作业运行列表
“作业运行”选项卡还包括过去 60 天的作业运行表。 默认情况下,该表包含有关失败、跳过和成功作业运行的详细信息。
可以根据以下各项筛选列表中显示的运行列表:
- 作业:最多选择 3 个作业,并仅查看这些作业的运行。
- 运行身份:最多选择 3 个运行身份标识,并仅查看以这些用户身份运行的运行。
- 时间窗口:选择开始和结束日期和时间以缩小到在此间隔内发生的作业运行。
- 运行状态:进行筛选可仅查看活动(当前正在运行)、已完成(包括成功运行和未成功运行的已完成运行)、成功、失败和跳过的运行。
- 错误代码:根据错误代码筛选列表,以查看所有具有相同错误代码的失败作业。
默认情况下,运行表中的运行列表显示以下内容:
- 运行开始时间。
- 与运行关联的作业名称。
- 运行作业的用户名。
- 运行是由作业计划触发、API 请求触发还是手动启动的。
- 当前正在运行的作业的已用时间,或已完成的运行的总运行时间。 如果持续时间超过配置的预期完成时间,则显示警告。
- 运行的状态:“排队”、“挂起”、“正在运行”、“跳过”、“成功”、“失败”、“超时”、“正在取消”或“已取消”。
- 运行终止时的任何错误代码。
- 此运行的任何参数。
- 若要停止正在运行的作业,请单击“停止”按钮。 若要访问作业的操作,请单击
(例如,停止活动运行或删除已完成的运行)。
要更改运行列表中显示的列,请单击,然后选择或取消选择列。
若要查看作业运行详细信息,请单击运行“开始时间”列中的链接。 若要查看作业详细信息,请单击“作业”列中的作业名称。
查看作业的世系信息
如果在工作区中启用了 Unity Catalog,则可以查看工作流中任何 Unity Catalog 表的世系信息。 如果提供了工作流的世系信息,则作业的“作业详细信息”面板、作业运行的“作业运行详细信息”面板或任务运行的“任务运行详细信息”面板中会显示一个链接,其中包含上游和下游表的计数。 单击该链接会显示表的列表。 单击某个表可在目录资源管理器中查看详细信息。
查看并运行使用 Databricks 资产捆绑包创建的作业
可以使用 Azure Databricks 作业 UI 查看和运行由 Databricks 资产捆绑包部署的作业。 默认情况下,这些作业在作业 UI 中为只读。 若要编辑捆绑包部署的作业,请更改捆绑包配置文件并重新部署作业。 仅对捆绑包配置应用更改可确保捆绑包源文件始终捕获当前作业配置。
但是,如果必须立即更改作业,则可以断开作业与捆绑包配置的连接,以便在 UI 中编辑作业设置。 若要断开与作业的连接,请单击“从源断开连接”。 在“从源断开连接”对话框中,单击“断开连接”进行确认。
对 UI 中作业所做的任何更改都不会应用于捆绑包配置。 若要将 UI 中所做的更改应用于捆绑包,则必须手动更新捆绑包配置。 若要将作业重新连接到捆绑包配置,请使用捆绑包重新部署作业。
导出作业运行结果
可以为所有作业类型导出笔记本运行结果和作业运行日志。
导出笔记本运行结果
可以通过导出作业运行的结果来持久保存作业运行。 对于笔记本作业运行,可以先导出呈现的笔记本,稍后再将其导入到 Azure Databricks 工作区中。
导出具有单个任务的作业的笔记本运行结果:
- 在“作业详细信息”页上,在“已完成的运行(过去 60 天)”表的“运行”列中,单击该运行对应的“查看详细信息”链接 。
- 单击“导出到 HTML”。
导出具有多个任务的作业的笔记本运行结果:
- 在“作业详细信息”页上,在“已完成的运行(过去 60 天)”表的“运行”列中,单击该运行对应的“查看详细信息”链接 。
- 单击用于导出的笔记本任务。
- 单击“导出到 HTML”。
导出作业运行日志
你还可以导出作业运行的日志。 可以将作业设置为在配置作业计算时自动将日志传送到 DBFS(请参阅 计算配置参考)或通过作业 API 传送。 请参阅传递给作业 API 中new_cluster.cluster_log_conf
操作 () 的请求正文中的 new_cluster.cluster_log_conf
对象。