我有很少的BEx查询(第三方客户端的OLAP多维数据集)和Pentaho中的.prpt报告,它们通过OLAP数据源(OLAP4J,MDX)使用这些BEx。当我在SAP BW中执行这些BEx或甚至直接作为SOAP服务(通过SoapUI执行XML / A执行命令)时,我得到的结果非常快,只需2-3秒。但是当我尝试在Pentaho中执行相同的BEx查询时,我会在1-2分钟后获得结果。如果我执行已在Pentaho BI服务器上发布的报告或者如果我在报表设计器中执行这些报表,则无关紧要。缓存已启用。 MDX查询很简单。
正如Wireshark所捕获的那样,Pentaho会在当前目录中执行多个http请求以获取有关所有现有多维数据集(以及它们的度量!)的元数据。 捕获附件中的网络数据包。 Pentaho有超过400个http请求只执行一个MDX select语句。
Pentaho可以尝试通过指定的多维数据集获取元数据信息,但是执行两次MDX查询并从目录中获取所有其他多维数据集的元数据是非常不合理的。 以前我读过SSAS的类似问题。但是这些信息对SAP XML / A提供程序没有帮助。 OLAP4J驱动程序中的更改(在org.olap4j.driver.xmla.XmlaOlap4jCellSet和org.olap4j.driver.xmla.XmlaOlap4jCube中)导致报告呈现不稳定。
所以主要问题是:如何提高绩效?