BI 系统中容易被忽视的数据源功能
![d3e56533aceb8557c855c7a2ecd463d0.png](https://i-blog.csdnimg.cn/blog_migrate/65ddec64ab91e4381116b4ed8866c008.jpeg)
用户在选购 BI 解决方案的时候,常常会更关注界面环节的功能指标,比如美观性、操作的流畅性、移动端支持等等。毕竟,BI 是要给业务人员使用的,这些看得见的内容一般不容易被遗漏。
然而,有些与数据源有关的后台功能点就可能被忽略掉。如果在项目实施时才发现就会非常麻烦,可能造成上线延迟,或者有些功能只能绕路而行。在选购 BI 系统时反而要特别注意这些功能点。
1. 对大清单报表的支持
OLAP 分析时钻取到明细数据是个基本功能,而明细数据很可能非常大,常常需要分页显示。我们在前面文章《大清单报表应当怎么做》中讨论过这个分页功能的实现手段。需要提请注意的是,绝大多数 BI 解决方案都在使用该文中所说的数据库的分页取数机制,而没有实现文中建议的双线程方案。这些内容我们在那篇文章中已经详细解释,这里就不再赘述了。
2. 对更换数据库的支持
BI 涉及的源数据大多在关系数据库中,需要用 SQL 来取数。而 OLAP 分析涉及的 SQL 语法形式非常简单,都是标准 SQL 的内容。这样,理论上讲,BI 系统更换后台数据库应当是很容易的事。
但并没有这么简单,取数用的 SQL 主体确实是通用的,但总会涉及到一些用于条件和计算的函数,特别是与日期相关的运算 ,各家数据库相差很大。而且,上面说的分页语法也是标准 SQL 之外的东西,也和使用的数据库相关。这样,在更换后台数据库时,这些语法要根据使用的数据库来做调整。
那么问题来了,这些调整是可以简单配置就好的?还是需要有厂家程序员再编码实现的?作为用户,我想肯定会想当然地认为都叫 BI 产品了,这些应当能配置一下就好了吧。然而,并不是!很有一些 BI 厂商需要现场再开发代码才能实现数据库的切换。只不过,许多用户常常只有一种数据库,在厂商部署系统时就已经准备好,也就感觉不到更换数据库竟然还会是个问题。
3. 对存储过程的支持
单纯的多维分析一般不会直接用到存储过程,特别是直接基于数据库的 ROLAP,本身运算也是由数据库完成的,要拼 SQL 实现,不可能使用存储过程作为数据源。不过,BI 系统常常也都有自己的分析运算能力,可以针对任意一个给定的数据集做分析,这时候就可能接入存储过程(以及其它外部程序数据源)来实现一些复杂或高效的数据准备工作。
存储过程的访问有业界标准,JDBC/ODBC 接口都对此有明确的规定,按说支持起来应当不是太难的事情。然而,再一次的并不是!有些厂商不支持或只能有限地支持存储过程,不能通用地支持符合 JDBC/ODBC 标准的调用接口,这包括某个国际大牌厂商(这里就不点名了)。存储过程参数和返回值都比较复杂,也没有元数据信息来获取数据结构,要全面支持确实也有点麻烦。