知识库 : 语义模型执行报错问题定位方法-性能监控

语义模型执行报错问题定位方法-性能监控.docx

Edit Document

性能监控,是数据平台面向开发、实施提供的用来对报表、数据模型执行过程进行性能分析、问题定位的工具。性能监控把整个执行过程以树形进行展现,并且输出每一步的关键信息。

性能监控既能监控后台还能监控前台,语义模型主要在后台执行,所以对于语义模型问题,只需要关注后台监控即可。

下面我们分步骤来介绍如何通过性能监控来定位语义模型问题。
 

性能监控位置

有两种方式来打开性能监控:

语义模型节点 - “工具”菜单;


数据服务管理 - “性能监控”节点。
 

 

启用后台监控

监控前必须先启用监控,

在“后台集群性能日志”视图中,勾选“启用性能监控”,把“超出以下时间开始记录”设置为 0 ,再点击“确定”按钮。这样所有数据平台的模型执行都会记录下性能日志。

 

 

执行语义模型或报表

到语义模型节点,选中语义模型,点击“执行”菜单项。

或者 执行下报表。

 

刷新性能监控

切换到性能监控界面,在“后台集群性能日志”视图中点击右上角的“刷新”按钮。

这样就能看到刚才执行的语义模型日志。

 

联查详细性能堆栈

在“后台集群性能日志”视图中会列出记录的所有日志,如果某条执行报错,则会在“标题”列以“ [ERROR] ”开头进行标示。

同时会显示执行耗时、时间、线程、主机等信息。

如果为 [ERROR] 标示,点击右键,

点击“查看详细信息”会在右下角视图中展示异常信息。

 

双击该条记录,会在右下角视图中显示执行堆栈树。

 

查找详细报错信息

如上图所示,出异常的步骤会以红色显示,便于快速查找出错信息。

 

查看处理流程以及每一步的 sql 变化

该堆栈树是以时间排列。语义模型执行过程大致分为两步:生成 sql ,执行 sql

如上图所示,

DefaultExecStrategy.provideSQL 既是生成 sql 的步骤;

SmartService.fetchDataSet(DataSetRequest) 既是执行 sql 的步骤。

 

DefaultExecStrategy.provideSQL 步骤中,又进一步分为描述器处理、规则处理两部分。

Descriptor 结尾的既是描述器步骤,一般为过滤、排序、分组统计、分页、限制列、限制行 等处理;

Rule 结尾的既是规则处理步骤,一般为参数、宏变量、语义关联表达式、语义函数、 NC 特性规则、展平规则、优化、自定义规则等。

单击上述每一项,都会在下方输出当前步骤的 sql 状态。

 

 

查找最终执行 sql

单击 SmartService.fetchDataSet(DataSetRequest) 步骤,下方显示的既是最终执行的 sql 语句。

 

Attachments:

语义模型执行报错问题定位方法-性能监控.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)