发展背景
我们知道,对于BI(Business Intelligence商业智能的缩写,下同)系统而言,前端访问后台系统的整体响应时间是影响业务用户实际体验的重要指标。如果响应时间太长(一般而言超过10秒),即使前端的图形界面再眩再好看,也会严重打击最终用户对BI系统的使用兴趣。因此,BI系统的客户体验差往往是我们很多分析系统项目实施失败的重要原因之一。
为了应对这一挑战,IBM Cognos BI从版本 10.1.0 中开始提供了基于Java增强查询执行模式(Dynamic Query Mode,简称DQM,也就是动态查询模式),同时仍保留对主要数据源的本地访问权限。通过改进后的查询执行,动态查询模式提供了主要的查询优化,可处理查询复杂性和数据量。它还提供了增强的查询功能(如内存缓存),该功能可在保留用户安全权限的同时针对查询计划。
IBM Cognos 动态查询模式简介
Dynamic Query Mode是IBM Cognos BI一种增强的基于Java的查询模式,提供以下主要功能:
- 查询优化,通过改进的查询执行语言解决查询复杂性、数据量和及时性期望等相关问题。
- 通过本地和远程处理以及更佳 MDX 生成的智能结合,极大地改进复杂的 OLAP 查询。
- 安全感知的缓存。
- 利用 64 位处理的新数据接口。
- 易于维护和查询可视化。
查询优化
查询的优化通过严格查询规划规则的高级应用实现。这些规划规则纳入了下一代规划方法,该方法更精简且能够提高质量和执行查询的速度。查询规划流程本质上也经过优化,以更好地利用元数据和表达式缓存,包括提供更高应用程序吞吐量的规划缓存。
通过平衡的本地处理工具实现性能提升
Dynamic Query Mode制定智能的、基于规则和系统负载的决策,其中部分查询应当在应用程序服务器本地执行,而不是在数据库服务器中远程执行。这确保用户拥最高级的功能,不管基础数据源是否支持商务智能报表的意图。此外,Dynamic Query Mode包含一个细粒度元数据和单元数据缓存(即一个trickle fed)以及一个比以前更高的缓存命中率。另外,被发送到远程数据源的查询由执行层根据缓存内容和高级空值抑制逻辑进行进一步优化。
安全感知的缓存
当连接到安全的元数据源时,Dynamic QueryMode下提供的缓存逻辑能够在每个用户访问数据源时确定安全的元数据源。然后该信息用于优化内存使用率和内部表示该用户的数据源元