OBIEE未修改rpd和数据库时所有分析的度量列突然全部显示空值
OBIEE 全量度量列返回空值故障排查方案
从你提供的物理查询可直接定位核心异常:SAWITH0 子查询未引用任何事实表 DM_FACT_DATA_V 的度量字段,外层查询直接通过 cast(NULL as DOUBLE PRECISION) 硬编码返回空值,属于 OBIEE 逻辑查询生成环节异常,和数据库侧、RPD 静态配置无直接关联,按以下优先级排查即可:
- 首先做 RPD 一致性校验:打开在线模式 RPD,执行
工具-查询一致性检查,重点校验三类配置:- 事实表所有度量列的聚合规则是否被清空、字段是否被误标记为「已废弃」
- 事实表逻辑表源和维度表的连接条件是否存在隐性异常
- 针对度量列的权限过滤器是否存在全局逻辑错误
注:即使你确认未主动修改 RPD,也可能存在其他账号提交了未发布的在线临时变更、或 RPD 元数据缓存损坏的情况
- 校验连接池特殊配置:进入 RPD 物理层,打开事实表对应数据库的连接池配置,检查「查询执行特性」分类下的开关,确认
禁用度量字段查询、返回空值替代执行错误等非常规开关未被开启 - 全量清除 BI 缓存:停止所有 BI 服务后,删除如下两个目录下的全部文件再重启服务:
[BI_HOME]/user_projects/domains/bi/servers/bi_server1/tmp [BI_HOME]/user_projects/domains/bi/servers/bi_server1/cache - 回滚最近补丁更新:如果故障发生前曾安装 OBIEE 补丁、修改系统级配置,直接回滚对应操作即可,OBIEE 12c 多个版本的补丁存在查询生成逻辑异常的已知问题
- 数据库侧验证:手动修改生成的异常物理查询,将硬编码的 NULL 替换为事实表对应度量字段后直接在数据库执行,若返回数值正常即可完全排除数据库侧问题,故障范围锁定在 OBIEE 本身
内容的提问来源于stack exchange,提问作者Sherzodbek
相关产品推荐
相关产品推荐

