Lakehouse作业历史
概述
Lakehouse作业历史页面(Job Profile)为您提供了一个直观的方式来查看过去7天内在Lakehouse账户中执行的查询详细信息。您可以通过该页面查看包括使用JDBC接口提交的任务、Studio临时查询、Studio周期调度任务在内的历史作业列表。本指南将帮助您分析运行出错或运行缓慢的作业,并提供相应的解决方案。
作业历史搜索
- 支持根据SQL作业产生的作业ID进行搜索
- 支持根据状态搜索
- setup:SQL初始化阶段,包含编译优化等操作
- resuming_cluster:等待启动vc耗时,如果长时间未拉起请联系技术支持
- queued:作业排队等待资源,如果耗时较长建议查看vc资源是否占满,建议扩容vc
- running:SQL处理数据时间,可以点到诊断查看每个算子耗时
- finish:运行结束,部分作业可能在这一阶段清理过程,会产生耗时
- 支持耗时筛选
- 支持按时间筛选,目前最多能查询到近七天前一万条作业
- 支持按照作业运行的集群名称进行筛选
- 支持按照作业的提交人进行筛选
- 支持根据queryTag筛选
用户在提交SQL的时候可以通过命令set query_tag=""用来表示作业来源和给作业打标。并且在这个界面方便过滤
- 在studio界面设置query_tag,选中两天SQL同时执行
- 在jdbc url中添加query_tag,这样提交的每条SQL都会带上query_tag用来标示来源,可以在页面中进行过滤
- python代码中设置query_tag
- 作业的默认Schema,提交SQL是运行的上下文环境,可以通过select current_schema()获取。
分析运行出错的作业
当作业运行失败时,您可以通过作业的job profile中的详情来查看失败原因。以下是一些常见的失败原因及解决方法:
SQL语法错误
错误示例:
错误码 CZLH-42000 表示与SQL语言解析相关的错误。[1,15] 表示错误发生在SQL的第1行,第15列。在这个例子中,原因是ttt
表不存在。请注意,如果您通过Studio开发提交的任务,由于开发中的作业编辑器会带有描述信息,这些信息并不会提交到SQL引擎,因此正确的行数应该减去前面的描述信息。您可以通过作业详情中的作业内容查看正确的位置关系,或者在SQL编辑器中找到错误的位置。
分析运行缓慢的作业
运行缓慢的作业可能在编译阶段、拉起virtual cluster阶段或执行阶段出现问题。以下是针对这些阶段的分析和解决方法:
编译阶段
问题现象:作业状态显示为“初始化”。
可能原因及解决措施:
- 执行计划复杂:作业可能需要较长时间进行优化。请耐心等待,正常情况下不会超过10分钟。
- 编译资源被占满:如果您一瞬间提交了大量SQL,可能导致编译资源不足。请减少提交SQL的频率。如有大量高并发查询需求,请提交工单寻求帮助。
拉起virtual cluster阶段
问题现象:作业状态显示为“集群启动中”。当前状态为正在拉起计算集群
等待执行阶段
问题现象:作业状态显示为“等待执行”。
可能原因及解决措施:
当前集群的计算资源不足:可以通过界面筛选查看当前正在运行的作业,可能大量的作业正在运行导致等待资源。可以扩容资源。或者将正在运行的大作业进行终止释放资源
执行阶段
问题现象:作业状态显示为“正在执执行中=”。在这一阶段你可以点进查看每个算子的执行情况
可能原因及解决措施:
- 等待资源:作业可能在等待资源分配。请检查资源使用情况,如有需要,请提交工单寻求帮助。
- 数据读取速度慢:作业可能因为数据读取速度慢而导致执行缓慢。请检查数据存储和读取策略,如有需要,请优化数据存储结构或调整读取策略。
分享给其他人诊断
:-: 进入作业详情页面后,点击“分享”按钮,即可将作业分享给第三方。接收者无需登录即可查看内容。
查看执行计划和Operator详情
在执行阶段,您可以通过点击执行的operator来查询具体的步骤和策略。例如,将鼠标移动到具体的operator上,可以对应到SQL中具体执行的算子。这有助于您发现具体哪个执行的operator导致作业缓慢。