Quick BI即席分析中ABD数据源查询报错“code generate method body too large, filter expression size 3465 exceeded limit 3000”

问题描述

问题1:即席分析中ABD数据源,自定义SQL的数据集。查询报错“code generate method body too large, filter expression size 3465 exceeded limit 3000”。

问题2:将filter expression size调整后遇到新报错“java.lang.RuntimeException: java.sql.SQLException: [31004, 2021112422070401000808801903151881160] : Compiler failed and interpreter is disabled”。

问题原因

1.ADB数据源的filter expression size限制是3000,即席分析生成的SQL超出了这个限制。

2.SQL表达式太复杂,编译出来的代码超过JDK限制。

解决方案

当客户的维值更多或者报表更复杂,由于查询时字段把细粒度放到前面导致查询膨胀,就很容易碰到ADB的SQL体积上限。
目前建议优化SQL,改小表达式。解决方法是手工修改报表,把字段查询顺序进行调整。

适用于

  • Quick BI
阿里云首页 相关技术圈