2019独角兽企业重金招聘Python工程师标准>>>
基本概念
数据仓库
DW(Data Warehouse),除去“存放数据的仓库”的概念,数据仓库是一种资料储存理论,面对各种资料,将它们通过特定的方式储存起来,储存方式要特别利于对资料进行分析和处理,并最终做出决策。
区别于强调实时和事物的业务数据库,DW里的数据,一般都不会随时间发生变动,大部分都是历史性资料。
这种理论下,DW的核心就是储存方式和分析方式。
OLAP
Online Analytical Process,联机分析处理,以多维度的方式分析数据,是最常见的理解。
OLTP
Online Transaction Processing,连接交易处理,更侧重于事务处理,核心是ACID,包括数据库的增删改查。
BI
Business Intelligence,商务智能,指从数据存储、分析、挖掘、展现等一条龙,最终实现商业价值。
维度和度量
Dimension,Measure,数据分析中两个基本概念。
维度是指审视数据的角度,通常指数据记录的一个属性。度量指基于数据计算出来的考量值,在sql中,where
,group by
的属性通常就是维度,通过聚合函数计算的属性通常是度量。
select name, age, avg(score) from student group by age
上面的查询中,age
就是维度,score
度量。
事实表和维度表
Fact Table,事实表,指存储事实记录的表,一般是字段超多的大表,如销售记录,明细等。
Dimension Table,维度表,与事实表相反,只保存了维度的属性值,可以和事实表做关联。
维度表相当于从事实表中抽取出经常重复的属性,并规范成一张表,常见的有日期表,地点表,Avaya的DM_AGENTS
等DM_*表。
使用维度表的好处:
- 缩小事实表的大小
- 便于维护维度,增删改维度,如名字,不需要动巨大的事实表
- 可被多个事实表重用
星型模型
Star Schema,数据挖掘常见的一种多为数据模型。
星型模型中只有一张事实表,多个维度表,通过主外键相关联,就像好多星星围绕在一个恒星周围。。
如果对维度表再做抽取规范,维度表之间也进行关联,则成为更复杂的雪花模型。
Avaya Insights共有八张维度表,七张事实表,仅有两张维度表相关联,各维度表被事实表复用,相当于是一个星型模型。
从维度属性来看,为账户、时间、坐席、组。
Avaya报表
Oceanalytics是Avaya的大数据中心,Insights是其中的报表框架,本质上是深度依赖于Oracle的架构。
从文档里简单的描述来看,对数据的处理主要步骤如下:
- 事件处理器收到事件,并通过JMS发布消息
- 客户拿到消息,根据维度,自己统计度量值
- 处理引擎拿到消息,通过Oracle BAM生成实时报表
- 同时,事件处理器每隔15分钟向Oracle数据库写入明细数据
- Oracle OBI根据数据库生成历史报表
具体的事件处理器,处理引擎,还有Oracle的各种工具,就不得其解了,太商业了。