SAP DBTech JDBC: [2048]: column store error: search table error: [2724] Olap temporary data size exceeded 31/32 bit limit"

SAP DBTech JDBC: [2048]: column store error: search table error: [2724] Olap temporary data size exceeded 31/32 bit limit"

我有一个计算视图,该视图基于其他计算视图和联接以带来来自不同供应商的 material 帐户数据(所有联接都与目标具有 1-1 映射)。在最终视图中,我有一个计算列作为 "Formatted_MATERIAL"(Material 没有任何前导零的数字,使用 Ltrim() 删除前导零。)现在,当我搜索 Formatted material equal对于某些特定数字,它显示读取错误(标题)。如果我正在搜索某个范围的 material 它给出的结果。

对于 EX:如果我搜索 material(500098)。它出现在以下查询结果中

select "Formatted_MATERIAL" 
FROM "_SYS_BIC"."CA_REPORTS_001_VK"
where "Formatted_MATERIAL" between 5000000 and 6000000
order by "Formatted_MATERIAL"

没有结果
select "Formatted_MATERIAL" 
FROM "_SYS_BIC"."CA_REPORTS_001_VK"
where "Formatted_MATERIAL" = 5000098

错误的原因是在您正在使用的其中一个视图中的某个处理步骤中,中间结果集超过了 20 亿条记录。

根据我对典型 HANA 用例(主要是与 SAP 产品相关的用例)的经验,我很确定这些底层视图的建模方式并不正确。每当您尝试一次加入或聚合一个包含 20 亿条记录的中间结果集时,过滤、投影和聚合等重要操作很可能早就应该在模型中完成。

当然,如果没有看到模型和执行细节(为此使用 PlanViz)并且知道您正在使用的 HANA 版本,关于如何解决这个问题我们无话可说。