• 沒有找到結果。

第17章数据仓库与联机分析处理

N/A
N/A
Protected

Academic year: 2022

Share "第17章数据仓库与联机分析处理"

Copied!
58
0
0

加載中.... (立即查看全文)

全文

(1)

第 17章数据仓库与联机分析处理

 数据仓库

 联机分析处理技术

 数据挖掘

(2)

实例

在实际应用中:

某个客户:某某酒吧销售某某啤酒的价格是 多少?操作型数据

某个投资商:每个酒吧在过去三个月里销售

所有啤酒的平均价格是多少? 分析型数据

(3)

操作型数据 OLTP

传统数据库:

细节的

在存取的时间时是正确的

可更新

性能要求高

事务驱动

面向应用

一次操作的数据量小

支持日常操作

。。。

(4)

分析型数据 OLAP

综合的,提炼过的

代表过去数据

不经常更新

性能要求宽松

分析驱动

面向分析

一次操作数据量大

支持管理决策

(5)

OLTP 实例

简单的,经常被查询到的,涉及数量不多的元 组。

例如:某某酒吧销售某某啤酒的价格是多少?

(6)

OLAP 实例

复杂的查询,涉及大量的数据,可能需要运 行几个小时的查询。

实例:过去一年某条街上酒吧销售的总量是 多少?

查询不一定基于当前的数据库信息,可以基

于前一个月的数据库信息。

(7)

数据仓库

目的:构建新的分析处理环境而出现的一种数据 存贮和组织技术。

方法:

数据集成:

1.

拷贝很多数据源到一个数据仓库。

2.

不时更新数据仓库中的数据。

3.

主要用于数据的分析。

(8)

数据仓库的特点

 数据是面向主题的

 数据是集成的

 数据是不可实时更新的

 数据是随时间变化的

(9)

数据仓库的数据组织

(10)

数据仓库的后台工 具

数据仓库服务器

OLAP服务器

前台工具

数据仓库系统的体系结构

(11)

分店进行 OLTP.

分店的数据晚上拷贝到中央数据仓库

分析师对数据仓库进行 OLAP.

应用场景

(12)

数据仓库数据模型:

Star Schemas 星型模式

星型模式是最常用的数据仓库模型 :

1.事实表Fact table : 非常大的,带有各个维度的一个 表。 “insert-only.”

2. 维表Dimension tables : 小的,关于各个实体详细

的,静态的信息表。

(13)

Example: Star Schema

假设我们要基于酒吧数据库管理系统,分析 每个酒吧,每一种啤酒,哪些客户每天的销 售情况:

我们要建立的事实表如下 :

Sales(bar, beer, drinker, day, time, price)

(14)

Example -- Continued

维表 如下:

Bars(bar, addr, license) Beers(beer, manf)

Drinkers(drinker, addr, phone)

(15)

时间维度

Days(day,week,month,year)

(16)

两种属性:维度属性和度量属性

事实表中的属性分为:

1.维度属性 : 某一个维表中的码

2.度量属性:被分析衡量的属性,通常是数字

值,由各个维度共同来决定

(17)

维度属性可以有层次的

 可以在不同层次上查看维表的数据。

(18)

度量属性

Price 是这个系统中需要衡量的指标。

它是基于不同维度的组合。

例如:价格可以从 酒吧,啤酒,喝酒人和

时间共同来决定 价格。

(19)

数据仓库数据模式:

星型模型和雪花模式(维表可以有层次)

(20)

建立数据仓库的方法

1. ROLAP = “relational OLAP”: 应用关系数据 库来管理多维数据,星型模型,雪花模型。

2. MOLAP = “multidimensional OLAP”: 用一个

特殊的 DBMS (例如:数据立方体)来实现。

(21)

ROLAP 实现技术

1. Bitmap indexes 位图索引: 维表的每一个 码建立一个位向量,说明事实表中记录具 有哪个码值。

2. Materialized views 物化视图 : 存贮视图的

结果。

(22)

位图索引实例

bar drinkers beers price date

Joe’s david A 3.5

Mary’s tim A 4

.. .. .. ..

Joe’s Mary’s

1 0

0 1

.. ..

david tim wang

1 0 0

0 1 0

.. .. ..

事实表:记录数非常大。

位图索引:它的行数和事实表相同,列数和属性值个数同

Select * from fact where bar=‘Joe’’s’ and drinkers=‘david’

假设2个酒吧,3个喝酒人

(23)

物化视图

为什么要用物化视图呢?见下面一个实例。

(24)

典型的 OLAP 查询:

事实表和维表的连接

Example:

SELECT *

FROM Sales, Bars, Beers, Drinkers WHERE Sales.bar = Bars.bar AND

Sales.beer = Beers.beer AND

Sales.drinker = Drinkers.drinker;

(25)

一般 OLAP 的查询

OLAP 查询的步骤 :

1.

开始进行星型连接。

2.

根据维度数据,选择感兴趣的元组

3.

根据某一个或多个维度进行分组 .

4.

根据分组属性,进行聚合操作。

(26)

例如 : OLAP 查询

对于在某条街上( Dong Chuan Road)的 酒吧 , 查找 由 AB (Anheuser-Busch)制造商生产的 每种啤酒

总的销量 .

条件 : addr = “Dong Chuan” and manf =

“Anheuser-Busch”.

分组 : by bar and beer.

聚合 : Sum of price .

(27)

SQL 查询语句

SELECT bar, beer, SUM(price) FROM Sales NATURAL JOIN Bars NATURAL JOIN Beers

WHERE addr = ’Dong Chuan’ AND manf = ’Anheuser-Busch’

GROUP BY bar, beer;

当事实表数据很大时,该查询需要的时间很长 。

(28)

使用物化视图来实现

事实表和维表的连接可能化很长时间

如果我们有事先计算好的视图 (

materialized view) ,它有足够的信息满足我

们这个查询,那么我们可以直接对这个视图

进行查询。

(29)

查询:对于在某条街上( DongChuan)的酒吧,查找由AB

( Anheuser-Busch)制造商生产的每种啤酒总的销量.

该视图的关键点 :

1.

至少要连接 Sales, Bars, and Beers.

2.

分组属性至少有 bar and beer.

3.

酒吧地址是 DongChuan ,制造商是 Anheuser-Busch beers.

4.

addr 和 manf 属性一定要保留

(30)

实例:视图 BABMS

CREATE VIEW BABMS(bar, addr, beer, manf, sales) AS

(SELECT bar, addr, beer, manf,SUM(price) as sales FROM Sales NATURAL JOIN Bars NATURAL JOIN Beers

GROUP BY bar, addr, beer, manf);

(31)

对比两个查询

基于该视图 :

SELECT bar, beer, sales FROM BABMS WHERE addr =

‘Dong Chuan’ AND manf = ’Anheuser-

Busch’;

 没有物化视图的查询:

SELECT bar, beer, SUM(price) FROM Sales NATURAL JOIN Bars

NATURAL JOIN Beers

WHERE addr = ’Dong Chuan’

AND manf = ’Anheuser-Busch’

GROUP BY bar, beer;

结论:基于物化视图的查询,可以节省大量的时间。

(32)

数据立方体模型

以多维立方体来组织数据,多维数组来存贮 数据,支持对多维数据的操作。

超立方体的维表是 bar, beer, drinker, and time.

衡量的属性 (price) 就是超立方体上的点

(33)

数据立方体:

• 维度数据 形成了立 方体的轴。

• 度量值是

哪些单元

的值。

(34)

数据立方体的可视化

在边,角和

角落上的是

聚合数据。

(35)

数据立方体

三维的立方体可以显示,多于三维的如何显示呢?

如何显示 ?

如何显示聚合数据 aggregated values?

假设我们需要描述酒吧,喝酒人,啤酒以及日期四维数据,即

在什么时间,哪个酒吧,哪个人喝了哪种啤酒,化了多少钱?

(36)

立方体的结构 ---数组形式

每一维看作是一个元组的一个组成元素

Sales(‘joe’sbar’,’Bud’,’Mary’,2020-05-27)

每一维有一个特殊的值 *,表示该维是聚合的。

例如: Sales(”Joe’s Bar”, ”Bud”, *, *) 表示Joes酒吧所有客人,

花在 Bud 啤酒上的 开销。

(37)

多维分析操作

切片 Slice

切块 Dice

旋转 Pivot

向上综合 Roll-up

向下钻取 Drill-down

(38)

Drill-Down向下钻取

Drill-down = “de-aggregate” = 分解聚合数 据到各个组成部分。

例如 : Joe’s Bar 酒吧销售非常少的来自制造

商 Anheuser-Busch的啤酒,原因是什么呢? 想

了解一下具体是哪几个品牌 ?

(39)

Roll-Up

Roll-up = 按照某一个或某几个维度聚合

Example:已知每个消费者在每个酒吧喝

BUD啤酒的数目,想了解 所有消费者一共花

费在 BUD 啤酒上的总开销是多少。

(40)

例子 : Roll Up 和 Drill Down

$ means the price charged.

(41)

Examples: Roll Up by bar

Select bar, drinker, sum(price) From sales natural join beers Where manf=“AB”

Group by bar, drinker;

Select drinker, sum(price)

From sales natural join beers Where manf=“AB”

Group by drinker;

(42)

Example: Drill Down on beer

Select drinker, sum(price)

From sales natural join beers Where manf=“AB”

Group by drinker;

Select beer,drinker, sum(price) From sales natural join beers Where manf=“AB”

Group by beer, drinker;

(43)

“slicing and dicing”的形式

Slicing: 切片 让某一个维度具有某个固定的值.

Dicing: 切块,固定某一个或某几个维度.

Select < grouping attributes and aggregations >

From < fact table joined with some dimension tables >

Where< certain attributes are constant >

Group by< grouping attributes >;

(44)

例如:

(45)

Examples: Slicing

Select manf, bar, drinker, sum(price) From sales natural join beers

Group by manf, bar, drinker;

Select bar, drinker, sum(price) From sales natural join beers Where manf=‘Anheuse-Busch’

Group by bar, drinker;

(46)

Example: Dicing

Find the sales of those bar located in Dong Chuan and sold beers from manufacture of “A-B”:

Select bar, drinker, sum(price)

From sales natural join beers natural join bars

Where manf=‘Anheuse-Busch’ and addr=‘Dong Chuan’

Group by bar, drinker;

(47)

SQL中关于立方体的操作

物化视图看作为数据立方体

Create materialized view salesCube as Select drink,bar,beer, sum(price)

From sales

Group by drink,bar,beer WITH CUBE;

(Jim, null, Bud, 20) (Jim, Joe’sbar, null, 45) (Jim, null,null,133)

(null, null, null,345 )

Null 类似于前面多维数据库中的 *

(48)

SQL中关于立方体的操作

Create materialized view salesRollup as Select drink,bar,beer, sum(price)

From sales

Group by drink,bar,beer WITH ROLLUP;

产生元组如下:

(Jim, Joe’sbar, Bud, 20) (Jim, Joe’sbar, null, 45) (Jim, null,null,133)

(null,null,null, 345)

问题:

它们之间的区别在哪里?

(49)

扩展的 SQL语句

计算所有分组属性的各个子集

select drinker, bar, beer, sum( price ) from sales

group by cube( drinker, bar, beer )

共有如下8个分组的子集:

{ (

drinker, bar, beer

), (

drinker, bar

), (

drinker, beer

), (

bar, beer

), (

drinker

), (

bar

),

(

beer

), ( ) }

最后一个空代表没有分组,只有一个值。

(50)

扩展的 SQL语句

计算分组属性中 有序的子集

select drinker , bar , beer , sum( price ) from sales

group by rollup( drinker, bar, beer )

产出了 4个子集:

{ ( drinker, bar, beer ), ( drinker, bar ), ( drinker ), ( ) }

用于层次化的分组。

(51)

数据挖掘

 目的:发现并提取隐藏在内,人

们事先不知道的,但可能有用的

信息和知识。

(52)

数据挖掘功能

概念描述:归纳数据的某些特征

关联分析:发现两个或多个变量取值之间的某种规 律性

分类与预测

聚类

孤立点检测

趋势和演变分析

(53)

关联分析

找相似客户买的一系列书籍 . 如果一个新客户 买了一本书 ,系统会推荐他买其它的书.

一个用户买了 Database System Concepts 很有可 能会买 Operating System Concepts .

超市里 ,买了面包的人一般都会买牛奶

因果分析 : X光和癌症的关系

(54)

如何找关联规则呢 ?

算法: a priori technique 来找频繁的数据项集合。

两个评测指标:

Support:超市里有多少人买了X,又买了Y? sup = Pr( X  Y ) .

支持度 (support)=(X,Y).count/T.count

Confidence:买了X的人有多少人买Y? conf = Pr( Y | X )

置信度 (confidence)=(X,Y).count/X.count

(55)

55

实例

假设数据如上

Assume:

minsup = 30%

minconf = 80%

频繁项集 frequent itemset

:

{Chicken, Clothes, Milk} [sup = 3/7]

关联规则:

Clothes  Milk, Chicken [sup = 3/7, conf = 3/3]

… …

Clothes, Chicken  Milk, [sup = 3/7, conf = 3/3]

t1: Beef, Chicken, Milk t2: Beef, Cheese

t3: Cheese, Boots

t4: Beef, Chicken, Cheese

t5: Beef, Chicken, Clothes, Cheese, Milk t6: Chicken, Clothes, Milk

t7: Chicken, Milk, Clothes

(56)

分类与预测

保险公司如何判断一个客户投保的信用呢? 通过对已有客户数据的分类来预测

例如:

分类规则可以使用很多数据,例如学历,年薪,年龄等.

 person P, P.degree = masters and P.income > 75,000

 P.credit = excellent

 person P, P.degree = bachelors and

(P.income  25,000 and P.income  75,000)

 P.credit = good

(57)

如何建立这些预测规则呢?

决策树技术

(58)

小结

数据仓库如何建立

联机数据分析处理技术

数据挖掘

參考文獻

相關文件

o Zigduino sends ACK once the packet passed dst addr check. o We strongly recommend you using both STATE_TXAUTO and STATE_RXAUTO, and paired with original/your SW

PRINCIPAIS DADOS ESTATÍSTICOS, SEGUNDO AS VENDAS E OUTRAS RECEITAS PRINCIPAL INDICATORS BY SALES AND OTHER RECEIPTS. 千澳門元

Standard guide for remediation of ground water by natural attenuation at petroleum release sites. Toxicological profile for

PRINCIPAIS DADOS ESTATÍSTICOS, SEGUNDO AS VENDAS E OUTRAS RECEITAS PRINCIPAL INDICATORS BY SALES AND OTHER RECEIPTS. 千澳門元

OGLE-III fields Cover ~ 100 square degrees.. In the top figure we show the surveys used in this study. We use, in order of preference, VVV in red, UKIDSS in green, and 2MASS in

New: Overall correct % for each dimension in Maths and presented in a bar

Natural Terrain Landslide Risk Mitigation Measures at Yu Tung Road, Tung Chung.. Natural Terrain Landslide Risk Mitigation Measures at Yu Tung Road,

– What  will  be  the  profit  if  sales  volume  increases  by 5%?..