BI、OLAP、多维分析、CUBE 这几个词是什么关系?
这些词我们在建设分析型应用时经常会听到,这几个词也经常被弄混,这里来梳理一下。
BI
BI 是 Business Intelligence(商业智能)的缩写,是指企业利用已有数据进行数据分析从而指导商业决策的过程。BI 有广义和狭义之分,广义上的 BI 是指只要涉及利用数据及其分析结果进行商业决策的行为都属于 BI 的范畴;而狭义上的 BI 则主要多维分析,在实际工作中,狭义 BI 也更流行一些。
著名的啤酒和尿布的故事曾一度在 BI 领域广泛传唱,据说沃尔玛通过数据分析发现了在某一时间段啤酒和尿片的销量大增,原因是爸爸给孩子购买尿片的同时还会给自己买几罐啤酒,于是沃尔玛调整了啤酒和尿片的摆放位置(也有说法是进行了捆绑销售)获得了巨大成功。
故事的真实性有待考证,据说这家连锁店并不是沃尔玛,而是 Osco Drugs,一家主要在美国中西部经营的药房和便利店。该公司于 1992 年就着手进行数据挖掘项目,算是数据挖掘的先驱者。当时的项目收集了来自 25 家分店、一千两百多万个购物车的信息。数据的确发现:下午 5 点到 7 点之间,客户购买了啤酒和尿片。商店管理层的确对此发现表示兴趣。但现实中,并没有重新设计商品的摆放,没有把啤酒和尿布进行捆绑销售。不过,公司保守地对销售流程进行了改造,即在正确的时间放正确数量的正确商品。
我们不对故事的真实性做过深评判,但故事中使用的数据分析手段其实并不属于 BI 的范畴,而是数据挖掘了,数据挖掘更多的是被划分到 AI 的范畴。
OLAP
OLAP 是 On-Line analytical processing(联机分析处理)的缩写,广义的 OLAP 泛指数据查询分析,像报表、即席查询、多维分析都属于 OLAP 的范畴。
与 OLAP 相对的一个概念是 OLTP(On-Line Transaction Processing)在线事务处理,就是我们平常说的的交易系统,像 OA、ERP、CRM、银行的核心交易系统都属于 OLTP 的范畴。OLTP 和 OLAP 最大区别在于前者会产生数据,而后者只利用前者生产的数据进行数据分析为企业经营提供决策支持。
从广义来看,OLAP 更像一个逻辑概念,用来特指在线查询分析,显然 OLAP 属于 BI 的范畴。有时我们会把 OLAP 和多维分析划等号,在系统建设中经常会说使用“OLAP 产品”其实就是指的多维分析了。
多维分析是什么?
多维分析
多维分析是指在分析型系统中,用户可以通过拖拽维度(Dimension)来汇总度量(Measure)以方便使用者可以从不同角度观察数据。如果从报表的角度来看,多维分析类似自助报表,业务人员基于一个事先准备的结果集进行动态报表查询,可以进行切片、钻取、旋转(行列变换)等操作。
现在很多时候 BI、OLAP 和多维分析被狭义地叫成一样的东西,其实是特指实现了多维分析的产品,比如我们说 BI 产品、OLAP 产品都是在指多维分析。
CUBE
CUBE 也叫数据立方体,可以理解成是一个数据集,在多维分析中使用者需要基于一个结果集进行拖拽分析,这个结果集就是 CUBE 了,多维分析针对 CUBE 进行查询、切片、钻取等操作。
从上面的描述来看,BI、OLAP、多维分析从狭义上来讲基本可以画等号,但从广义上来看 BI 的范畴显然更大一些,其次是 OLAP,然后是多维分析,而 CUBE 属于多维分析的范畴,所以 CUBE 的范围最小,用图形表述一下四者之间的关系可以这样:
我们在实际工作中如果提到这些词,最好彼此确认一下表述的是同一范围,否则可能会导致沟通偏差,影响系统建设。
BI、OLAP、多维分析、CUBE 这几个词是什么关系?的更多相关文章
- BI cube的前世今生:商业智能BI为什么需要cube技术
企业中常常会出现这样一幕幕尴尬的场景: 企业的决策人员需要从不同的角度来审视业务,协助他们分析业务,例如分析销售数据,可能会综合时间周期.产品类别.地理分布.客户群类等多种因素来考量.IT人员在每一个 ...
- 【转】Kylin系列-使用Saiku+Kylin构建多维分析OLAP平台
关于Kylin的介绍和使用请参考之前的文章 <分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例> Kylin对外提供的是SQL查询接口,基于Kylin构建OL ...
- 分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例【转】
Kylin 麒麟官网:http://kylin.apache.org/cn/download/ 关键字:olap.Kylin Apache Kylin是一个开源的分布式分析引擎,提供Hadoop之上的 ...
- BI 多维立方体CUBE
在Bi领域,cube是一个非常重要的概念,是多维立方体的简称,主要是用于支持联机分析应用(OLAP),为企业决策提供支持.Cube就像一个坐标系,每一个Dimension代表一个坐标系,要想得到一个一 ...
- OLAP阵营又增一猛将,比肩Power BI不是说说而已!
说到大数据应用最多的技术,不得不提OLAP技术,在国内外,不论传统公司还是互联网公司,都开始利用OLAP技术分析挖掘大数据的价值.也许很多人对OLAP的概念还不是很清楚,简单来说,就把数据处理成数据立 ...
- [译]Dynamics AX 2012 R2 BI系列-Cube概览
https://msdn.microsoft.com/EN-US/library/dd252604.aspx Cube是一个多维度的结构,它是BI应用开发的基础.本文描述了cube的组成部分, ...
- 分布式大数据多维数据分析(olap)引擎kylin[转]
Apache Kylin是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay 开发并贡献至开源社区.它能在亚秒内查询巨大的Hiv ...
- SSAS——基础--cube
SSAS——基础 一.Analysis Services Analysis Services是用于决策支持和BI解决方案的数据引擎.它提供报表和客户端中使用的分析数据. 它可在多用途数据模型中创建 ...
- 联机分析处理(OLAP)到底是什么?
联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来. 当今的数据 ...
- 星型数据仓库olap工具kylin介绍
星型数据仓库olap工具kylin介绍 数据仓库是目前企业级BI分析的重要平台,尤其在互联网公司,每天都会产生数以百G的日志,如何从这些日志中发现数据的规律很重要. 数据仓库是数据分析的重要工具, 每 ...
随机推荐
- Linux 多进程服务配置 systemd
目录 Linux 多进程服务配置 systemd sysvinit和systemd 多进程保活 创建配置文件(设定重试次数) 多进程服务管理 链式启动(服务依赖) 指定关闭进程方式 - ExecSto ...
- 我和我的DBA之路
这几天,突然想写写这些年的工作总结,毕业至今快20年的回顾. 想到20年前,在做毕业设计的时候,当时是学的机械工程类专业,因为带毕业设计的老师兼职企业有个门户网站的需求,而我又会做点网站设计,带的老师 ...
- gRPC入门学习之旅(一)
gRpc简介 gRPC 是Google公司开发的基于HTTP/2设计,面向移动的一个高性能.开源和通用的 RPC 框架,是一款语言中立.平台中立.开源的远程过程调用(RPC)系统. gRpc官网地址: ...
- redis开启多端口
Centos安装多端口的redis服务 背景 redis默认端口6379,由于开发需要,key有重复.于是另起端口6380. 配置服务过程 1.新建/etc/redis6380.conf,内容如下: ...
- 【leetcode 952. 按公因数计算最大组件大小】【欧拉筛+并查集】
import java.util.ArrayList; import java.util.Arrays; import java.util.List; class Solution { List< ...
- django(ORM)
一 单表(增.删.改.查) 1 测试脚本 ''' 只想测试django中的某一个py文件内容,那么可以不用书写前后端交互的形式 而是直接写一个测试脚本即可 ''' # 脚本代码无论是写在应用下的tes ...
- Vue3.0里为什么要用 Proxy API 替代 defineProperty API ?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.Object.defineProperty 定义:Object.defineProperty() 方法会直接在一个对象上定义一个新属性 ...
- 记录--H5 视频兼容性处理总结
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 概述 最近在负责公司官网的开发,在 H5 播放视频时,遇到很多兼容问题,所以总结下在 H5 播放时,遇到的兼容性问题,并封装一个 Vide ...
- Java中使用fastJson
FastJson简介 Fastjson是阿里巴巴开发的一个开源Java库,用于处理JSON数据,广泛应用于Web服务.API接口.数据交换等多个场景. FastJson的作用 主要作用是用于将Java ...
- 使用docker运行nginx服务,挂载自定义配置文件
错误命令: 下面的方式,启动容器时,-d 后面跟一个指定容器ID的参数写在前面,导致容器不能正常启动,出现异常 docker run --name testnginx -d 7f0fd59e0094 ...