数据仓库数据存储与处理

一、信息系统中的数据

1、数据仓库的三层数据结构

2、数据分类

信息系统中的数据按照不同的角度,可以有不同的分类标准。

①、主数据-参考数据-交易数据

  1. 主数据
    主数据是关于业务实体的数据,一般包括当事人(雇员、客户、供应商)、产品、财务结构(成本中心、利润中心)、地理位置。通常是不变的信息,比如个人的信息的变动就很少。
  2. 参考数据
    参考数据是用来将其他数据进行分类或者交叉引用的数据,通常也是不变的。
  3. 交易数据
    交易数据是指一次交易相关的数据,如转账金额、订货量等。交易数据会随着每笔交易而变化,而主数据和参考数据则很少变动。

②、状态数据-事件数据

状态数据用于描述对象的状态,而事件数据描述发生的事件,如产品数量就是转态数据,订单量是事件数据。数据仓库通常包括状态数据的历史快照或事件数据的汇总。

③、当前数据-周期数据

当前数据只保留当前的最新数据,新的记录将会改变以前的数据。周期数据则相反,一旦保存,就不再改变或删除数据。

3、元数据

元数据描述了数据的结构、内容、联系、索引等内容。元数据定义了数据仓库中的对象,如表、列、查询等,是数据仓库的重要构件。元数据分为技术元数据与业务元数据。

  1. 技术元数据
    包括基础数据信息、抽取调度信息、映射依赖信息、其他技术信息。基础数据信息指的是对系统实施方案的描述,如表结构、DBMS种类/版本、属性的限制等。抽取调度信息说明数据从数据源进入数据仓库的方法。映射依赖信息描述各表(视图)之间的依赖映射关系。
  2. 业务元数据
    包括企业概念信息、多维数据信息、数据依存信息、数据挖掘信息、查询导航信息。

二、建立数据仓库

随着业务交易的进行,会产生越来越多的数据,通过合理的组织这些数据可以建立数据仓库。

1、建立数据仓库的方法

  1. 建立数据库快照
    为体现数据仓库中数据对时间的变化,可以建立一系列当前数据的快照,这些快照中需要包含时间戳。
  2. 建立概要记录
    概要记录对多条操作型记录进行聚集,把多条记录组合成一条记录。

快照和概要可以通过事件触发,如完成订单,也可以由时间触发,如月末。

数据周期:指从操作型环境中数据发生变化开始,到这个变化反应到数据仓库的时间。

2、数据组织方式

随着新数据的产生,数据仓库中会存储越来越多的数据,这些数据需要按一定的组织方式存储在数据仓库中。

  1. 简单堆积
    按一定的时间间隔,对数据进行提取,是操作型数据的快照。如把每天的数据进行每日综合,然后放到数据仓库里。
  2. 轮转综合
    数据按一定的格式进行轮转的累加。如在一个月的简单堆积后,再对这一个月的数据进行每月综合,然后放进数据仓库。之后还可以进行每年综合···
  3. 连续
    把新的快照追加到以前的连续数据上去。

三、多维数据模型

1、相关概念

  1. 多维数据集
  2. 维度
  3. 度量值

以上这些概念在上一篇文章都有解释,个人觉得那些解释也不容易弄懂,其实还是要结合具体例子来看才容易理解。此外,还有一个概念:数据立方体
数据立方体将数据按照多维视图的方式进行建模,包括维表和事实表。例如,对于销售信息,可以定义三个维:时间、产品、地区。那么就有三个维表:

  1. 时间(年,月,日)
  2. 产品(产品名,产品类型)
  3. 地区(国家,省,市)

    通过数据立方体,就可以由所有维共同确定一个度量值。比如上图中的红色小方块的值,就可以表示2020年三季度上海地区上衣的销量。数据立方体方便多角度、多层次的进行查询与分析,通过每个维上的取值,就可以确定目标度量值。

可以看到,在地区维表中,定义了国家、省、市,而在数据立方体中只有一个地区,这完全是因为图太小了,我画不上去。事实上,这根本不重要,理解数据立方体的作用就好了。

2、数据存储方式

多维数据集可以用R(D1、D2、···、Dn,F)来描述,其中D1、D2、···、Dn对应n个维度。

(1)、基于关系表的存储

以关系数据库为核心,构建多维数据的表示和存储。

上图中包含一个事实表和三个维表,事实表通过外键与维表关联。维表用来描述维,如果维过于复杂的话,可以通过多个维表来描述一个维。事实表存储了关联各维表的外键和度量值(销售量、销售额)。

(2)、基于多维数据库的存储

数据存储在大量的多维数组中,而不是存放在关系表中。

通过多维数据库存储数据时,n维数组可以用F(D1,D2,···,Dn)来表示,那么度量值fi=F(d1i,d2i,···,dni)。可以看到,相比于事实表中需要存储与维关联的外键,多维数组中并不存储多维数据模型中的维度。这是因为多维数组能够很好的体现多维数据模型的特点,例如需要查找北京地区平板的销量,直接查找多维数组的第二行、第二列就可以了。

这里所说的不需要存储维指的是多维数组中存的值不包含维信息,就像在java中int [] a = {11,32,21},那么a中只保存数据,但不保存下标,例如a[1]=32,而没有保存1这个下标。

查询数据时,多维数据库方式比关系表方式要快。这是因为对于多维数组而言,确定每个维的下标,就可以直接得到数据,而在关系表中,需要从前往后比对每一条数据,直到找到目标数据。
多维数据库存储会占用较多空间,例如,假设没有北京地区手机的销售量,在多维数据库中,北京和手机确定的地方就必须空着,但是对于关系表而言,则可以不存储这条记录。

3、子方体

可以看到,对于n维数据立方体,通过指定每个维上的值,就可以确定最终度量值。那么,如果将某些维汇总,数据立方体的维就会减少,新的数据立方体就被称为子方体。比如,在销售信息中,将地区汇总为所有地区对应的销售额的和,那么只需要指定时间维和产品维的值,就可以确定最终度量值,如"2020年一季度上衣的销售额",就只指定了时间和产品,而表达的含义是则是该时间该产品在所有地区销售额之和。
那么,n维立方体有多少个子方体呢(也包括该n维立方体)?设第k个维有Lk个汇总方式(如求总和,求最大值等),那么共有 (L1+1)*(L2+1)*···*(Ln+1) 个子方体。如果每个维仅有一种汇总方式,那么就有2n个子方体。

三、多维分析

多维分析指的是对以维形式组织起来的数据(多维数据集)采取切片、切块、钻取、旋转等操作,达到剖析数据的目的。

1、多维分析基本操作

(1)、钻取

钻取可以改变维的层次,包括上卷、下钻、钻过、钻透。

  1. 上卷
    上卷指的是减少维数,即将某些维进行汇总。
  2. 下钻
    与上卷相反,是由汇总数据到细节数据。
  3. 钻过
    钻过指涉及多个事实表。
  4. 钻透
    钻透指的是透过最底层的数据立方体到达关系数据库。

(2)、切片/切块

切片与切块操作指的是在一部分维上选定之后,度量值在剩下维上的分布。如果剩余2个维,称之为切片;剩余3个维,则称之为切块。有时候,剩余的维数大于3也称之为切块。

上卷是将维汇总,而切片与切块是在在维上选定值,比如销售信息中,地区维选择北京,查看信息在时间与产品维上的度量值。

(3)、旋转

旋转指的是变换观察方向,即在表格中重新安排维的放置。

2、OLAP的分类

OLAP根据存储数据的方式,可以分为3类:ROLAP、MOLAP、HOLAP。

  1. ROLAP
    ROLAP是基于关系数据库的OLAP实现,以关系数据库为核心,以关系型结构进行多维数据的存储与表示。
  2. MOLAP
    MOLAP是基于多维数据库的OLAP实现,以多维数据库为核心,数据在存储中形成立方体结构。
  3. HOLAP
    HOLAP是基于混合数据组织的OLAP实现,比如底层是关系表,高层是多维表,这种方式更加灵活。

四、数据仓库的逻辑模型

数据仓库的逻辑模型分为星型模式、雪花模式、事实星座模式。

  1. 星型模式
    星型模式包含一张事实表和一系列维表,形成星型结构。
  2. 雪花型模式
    如果星型模式中的某些维过于复杂,通过规范化将某些维用多个维表描述,就形成了雪花型模式。
  3. 事实星座模式
    如果存在多个事实表共用维表的情况,则形成事实星座模式。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值