其他
BI系统中容易被忽视的数据源功能
用户在选购BI解决方案的时候,常常会更关注界面环节的功能指标,比如美观性、操作的流畅性、移动端支持等等。毕竟,BI是要给业务人员使用的,这些看得见的内容一般不容易被遗漏。
然而,有些与数据源有关的后台功能点就可能被忽略掉。如果在项目实施时才发现就会非常麻烦,可能造成上线延迟,或者有些功能只能绕路而行。在选购BI系统时反而要特别注意这些功能点。
OLAP分析时钻取到明细数据是个基本功能,而明细数据很可能非常大,常常需要分页显示。我们在前面文章《大清单报表应当怎么做》中讨论过这个分页功能的实现手段。需要提请注意的是,绝大多数BI解决方案都在使用该文中所说的数据库的分页取数机制,而没有实现文中建议的双线程方案。这些内容我们在那篇文章中已经详细解释,这里就不再赘述了。
BI涉及的源数据大多在关系数据库中,需要用SQL来取数。而OLAP分析涉及的SQL语法形式非常简单,都是标准SQL的内容。这样,理论上讲,BI系统更换后台数据库应当是很容易的事。
但并没有这么简单,取数用的SQL主体确实是通用的,但总会涉及到一些用于条件和计算的函数,特别是与日期相关的运算 ,各家数据库相差很大。而且,上面说的分页语法也是标准SQL之外的东西,也和使用的数据库相关。这样,在更换后台数据库时,这些语法要根据使用的数据库来做调整。
那么问题来了,这些调整是可以简单配置就好的?还是需要有厂家程序员再编码实现的?作为用户,我想肯定会想当然地认为都叫BI产品了,这些应当能配置一下就好了吧。然而,并不是!很有一些BI厂商需要现场再开发代码才能实现数据库的切换。只不过,许多用户常常只有一种数据库,在厂商部署系统时就已经准备好,也就感觉不到更换数据库竟然还会是个问题。
单纯的多维分析一般不会直接用到存储过程,特别是直接基于数据库的ROLAP,本身运算也是由数据库完成的,要拼SQL实现,不可能使用存储过程作为数据源。不过,BI系统常常也都有自己的分析运算能力,可以针对任意一个给定的数据集做分析,这时候就可能接入存储过程(以及其它外部程序数据源)来实现一些复杂或高效的数据准备工作。
存储过程的访问有业界标准,JDBC/ODBC接口都对此有明确的规定,按说支持起来应当不是太难的事情。然而,再一次的并不是!有些厂商不支持或只能有限地支持存储过程,不能通用地支持符合JDBC/ODBC标准的调用接口,这包括某个国际大牌厂商(这里就不点名了)。存储过程参数和返回值都比较复杂,也没有元数据信息来获取数据结构,要全面支持确实也有点麻烦。
《数据蒋堂》官方技术交流群
欢迎各路技术大咖入群,与作者交流
(该二维码七天后失效)
数据蒋堂 第二年原创文章
润乾软件创始人、首席科学家
中国大数据产业生态联盟 专家委员
1989年国际奥林匹克数学竞赛团体冠军成员,个人金牌
清华大学计算机硕士
发明了非线性报表模型,并著《非线性报表模型原理》
创建离散数据集模型,颠覆四十年关系代数理论体系!
2016、2017年中国软件和信息服务业 • 十大领军人物
2017年度中国数据大工匠
数据领域专业技术讲堂《数据蒋堂》创办者