国内经典BI系统架构分析
谈起商业智能BI,也许大家并不陌生,但你是否了解国内的各类BI系统架构?
自国内商业智能发展以来,就系统结构方面已经历了多次优化性的变革。目前国内商业智能BI系统的经典架构的模式包括数据层、业务层和应用层三部分。数据层基本上就是ETL过程,即数据仓库技术,是将数据从来源端经过抽取、转换、加载至目标端的过程。业务层主要是OLAP(联机分析处理)和Data Mining(数据挖掘)的过程。在应用层里主要包括数据的展示,结果分析和性能分析等过程。
国内大多BI产品的系统架构都是经典架构的衍生,但表现形式却有很大的差别,这里列举几个常见产品:
BIEE: 业界常见的BI平台应包含数据仓库、数据抽取、多维建模,前台展现4个部分。
BO: 无法提供独立的多维分析引擎,在Hyperion被Oracle 收购前,经常以OEM Essbase为数据引擎,在常见的BI项目中只提供前台展现部分。
Qlikview:产品架构主要是dashboard(管理驾驶舱)和移动端。
永洪BI: 产品架构主要是MPP数据集市,dashboard(管理驾驶舱)和移动端。
FineBI: 产品架构分为4个部分:cube数据处理引擎,分析统计组件,dashboard(管理驾驶舱),移动BI。
各类BI产品系统架构参差不齐,以我比较了解的FineBI为例(目前更新至3.7),主要分为以下4个部分:
FineBI 的数据处理引擎以多维数据库为核心,囊括 ETL 功能,旨在对原始数据进行抽取,转换和加载,支撑在线分析。
多维数据库采用动态生成的位图索引技术处理字符串等类型,NIO 内存映射文件技术快速读取处理数字类型,并支持离线使用的 cube 数据存储,支持 cube 数据定时全量以及增量更新。
并行计算的先进数据处理模式使得基于位图索引的快速分组,过滤,钻取,支持多线程运算,互不干扰。并且还有智能避免重复计算的缓存机制。
分析统计组件
OLAP统计分析组件可实现如下功能:
1、任意维度切换:可以对已有的表样切换维度来进行自由分析,支持维度排序,根据维度自身进行排序,根据指标的汇总值进行排序,根据公式值进行排序。
2、计算指标:支持添加计算指标的功能来实现对已存在的指标项进行再计算得到新的计算指标。
3、分享页面:支持设计的页面分享给其他用户。
4、数据预警:通过红绿灯,警戒线分析数据走势。
5、通用查询:不同于文本控件等控件,该控件在查看分析的时候可以添加和删除过滤条件,适用性更强。
6、交互控件:支持文本类控件,包含文本框、下拉框、下拉复选框,支持时间类控件,包含时间段控件、年份列表、月份列表和季度列表,支持数值类控件,可以按数值区间进行和数据筛选,支持组件和控件支持自由布局。
FineBI 使用 Dashboard 加入任意数量的组件和控件,支持任意维度和指标的切换,可以对已有的表样切换字段来进行自由分析。任意维度和指标切换的功能保障了当查看分析的人员在查看分析时,如果针对已有的表样产生额外的分析需求或改变了已有的分析需求,不需要重新制作一次分析,可以直接通过切换维度和指标实现。
移动端
支持安卓手机、苹果手机和平板三大主流移动端。
使用其移动端查看分析,功能和 PC 上的 Web 端完全一致,包括更改数据过滤条件、自由切换维度和指标、钻取联动等功能。此外,此款工具原创消息反馈功能,查看分析时可以随意在屏幕上标记、注释,并一键将带有批示的报表以截图形式发送到指定邮箱或即时通讯工具中。
国内主流BI产品虽然大多是经典架构的衍生,但表现形式却有很大的差别。在BI产品层出不穷的大环境下,挑选一款系统架构非常完善的BI产品,值得花上一些心思。
【本文转载自帆软商业智能FineBI http://www.finebi.com/bi/?p=3340】
国内经典BI系统架构分析的更多相关文章
- 大数据时代的新BI系统架构发展趋势
商业智能(BI,Business Intelligence).它是一套完整的解决方式,用来将企业中现有的数据进行有效的整合,高速准确的提供报表并提出决策根据.帮助企业做出明智的业务经营决策. ...
- Tomcat系统架构分析
Tomcat系统架构分析 关于这边blog呢,实际开发中并不会用到,但是我觉得还是很有必要认真的写一下.毕竟我们每天在本地撸码的时候使用的就是tomcat来做web服务器.一个常识就是说我们本地在to ...
- Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍
系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...
- 性能测试知多少---系统架构分析 转自https://yq.aliyun.com/articles/35147?spm=5176.100239.blogcont24251.8.lS96At
摘要: 有些事儿一旦放一放就难再拾起来,突然发现<性能测试知多少>这个系列两月没更新,关键时我都不知道啥时候放下的,总容易被各种技术所吸引走,如饥似渴的想学更多的东西,这几天一直有朋友问我 ...
- 吴裕雄--天生自然Android开发学习:android 背景相关与系统架构分析
1.Android背景与当前的状况 Android系统是由Andy Rubin创建的,后来被Google收购了:最早的版本是:Android 1.1版本 而现在最新的版本是今年5.28,Google ...
- 粗浅看 Tomcat系统架构分析
原文出处: 吴士龙 http://www.importnew.com/21112.html Tomcat的结构很复杂,但是Tomcat也非常的模块化,找到了Tomcat最核心的模块,就抓住了Tomca ...
- JAVA构建高并发商城秒杀系统——架构分析
面试场景 我们打算组织一个并发一万人的秒杀活动,1元秒杀100个二手元牙刷,你给我说说解决方案. 秒杀/抢购业务场景 商品秒杀.商品抢购.群红包.抢优惠劵.抽奖....... 秒杀/抢购业务特点 秒杀 ...
- 人人网张铁安:Feed系统架构分析(转)
原文:http://www.csdn.net/article/2010-07-26/277273 继成功举办首期TUP活动后,日前在北京丽亭华苑酒店鸿运二厅,由CSDN和<程序员> 杂志联 ...
- FishiGUI系统架构分析 和层次结构 二
FishiGUI的类型 FIshiGUI属于为应用程序提供图形界面服务的框架系统.它并不直接与终于用户交互(负责与终于用户交互的是在FishiGUI基础上开发的应用程序).而是接受操作系统传来的硬件消 ...
随机推荐
- Visual Studio 2013 Unit Test Project App.config文件设置方法
开放中经常会要做单元测试,新的项目又没有单元测试项目,怎么才能搭建一个单元测试项目呢? 下面跟我四步走,如有错误之处,还请指正! 1.添加项目 2.添加配置文件 新建app.config文件,注意不是 ...
- 深度学习 - DL
雷锋网 - 2016 | 人工智能在深度学习领域的前世今生(原文链接) Deep Learning - DL,深度学习是机器学习的一种. 深度学习最重要的作用:表示学习 深度学习实践的四个关键要素 计 ...
- 安装redis入门
redis官网:redis.io redis版本用的是redis-3.2.2 $ wget http://download.redis.io/releases/redis-3.2.2.tar.gz $ ...
- 除去String字符串里面指定的字符串
主要用到String的两个方法,分别是subString(int len)或subString(int start,int end)和str.indexOf(String str1) 思路:先判断指定 ...
- Xdebug文档(二)变量显示特性
Xdebug能替代PHP的var_dump()函数来显示变量值.xdebug的版本包含对不同数据类型作数组元素/对象属性.最大深度和字符串长度以不同颜色标识.这里也有一些功能能很好地处理变量显示. 相 ...
- OData V4 系列 Action 与 Function
OData 学习目录 了解过WebApi的都知道,WebApi默认方法 Get.Post.Put,如果增加其它过多Post方法即不能识别,还需增加其它配制,请求的Url还需加上Controller及A ...
- 分享20款移动开发中很有用的 jQuery 插件
今天,很显然每个网站都需要有一个移动优化的界面以提高移动用户的使用体验.在开发任何移动项目时,要尽可能保持每一种资源尺寸都尽可能的小,以给最终用户提供一个好的体验是非常重要的.在这篇文章中我们已经编制 ...
- cocos2d-x3.3 以前版本 工程Xcode6编译时的问题
Undefined symbols for architecture i386: "_fwrite$UNIX2003", referenced from: _unixErrorHa ...
- BFC总结
图1:问题图 图2:代码 图3:解决图 问题图与解决图的区别:黄色箭头那行代码的无和有 BFC 定义 BFC(Block formatting context)直译为"块级格式化 ...
- iOS Block简介
Block是对象,它封装了一段代码,这段代码可以在任何时候执行.block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.它和传统的函数指针很类似,但是有区别:block是inli ...