数据挖掘:概念与技术(第三版)之第四章的学习记录

本章主要介绍数据仓库与联机分析处理。
本章为KDD中的数据挖掘知识引入进行了铺垫。
学习完本章要能够把数据仓库,数据立方体,OLAP,星形、雪花型、和事实星座这些概念进行区分,并有序的组织在一起。

数据仓库

第一章我就介绍了数据仓库,在那里详细对比了一下数据仓库与数据库。不清楚的同学,可以回过去看看第一章
当然,在这里书上也是做了非常详细的解释说明,我就不多说了。这里我着重谈一下数据仓库的价值。照大牛William H.Inmon的话来说,”数据仓库就是一个面向主体的、集成的、时变的、非易失的数据集合”。使用数据仓库的相对于数据库来说,自然有它的独到好处。这篇文章详细论述了使用数据仓库的好处 。点击这里查看

OK,到这里我相信大家已经对数据仓库有了一定的认识。现在我们应该考虑一下数据仓库有哪些体系结构?
实际上,在第一章的时候我就说过了,数据挖掘是一门偏向应用的的学科。因此这门学科的体系的建立呀,发展呀实际上都是跟现实应用挂上钩的。我们来回顾一下这个发展过程。
以电商行业来说好了。基本每家电商公司都会经历,从只需要业务数据库到要数据仓库的阶段。
电商早期启动非常容易,入行门槛低。找个外包团队,做了一个可以下单的网页前端 + 几台服务器 + 一个MySQL,就能开门迎客了。这好比手工作坊时期。
第二阶段,流量来了,客户和订单都多起来了,普通查询已经有压力了,这个时候就需要升级架构变成多台服务器和多个业务数据库(量大+分库分表),这个阶段的业务数字和指标还可以勉强从业务数据库里查询。初步进入工业化。
第三个阶段,一般需要 3-5 年左右的时间,随着业务指数级的增长,数据量的会陡增,公司角色也开始多了起来,开始有了 CEO、CMO、CIO,大家需要面临的问题越来越复杂,越来越深入。高管们关心的问题,从最初非常粗放的:“昨天的收入是多少”、“上个月的 PV、UV 是多少”,逐渐演化到非常精细化和具体的用户的集群分析,特定用户在某种使用场景中,例如“20~30岁女性用户在过去五年的第一季度化妆品类商品的购买行为与公司进行的促销活动方案之间的关系”。
这类非常具体,且能够对公司决策起到关键性作用的问题,基本很难从业务数据库从调取出来。原因在于:业务数据库中的数据结构是为了完成交易而设计的,不是为了而查询和分析的便利设计的。业务数据库大多是读写优化的,即又要读(查看商品信息),也要写(产生订单,完成支付)。因此对于大量数据的读(查询指标,一般是复杂的只读类型查询)是支持不足的。而怎么解决这个问题,此时我们就需要建立一个数据仓库了,公司也算开始进入信息化阶段了。数据仓库的作用在于:数据结构为了分析和查询的便利;只读优化的数据库,即不需要它写入速度多么快,只要做大量数据的复杂查询的速度足够快就行了。那么在这里前一种业务数据库(读写都优化)的是业务性数据库,后一种是分析性数据库,即数据仓库。

OK,假如我们也按照业务的发展来构造数据仓库的话,我们会有三个模型:企业仓库,数据集市、虚拟仓库。
企业仓库搜集了关于主题的所有信息,包含整个企业的所有部门的所有细节数据和汇总数据;数据集市只包含企业范围内数据的一个子集,例如销售部门的数据集市,开发部门的数据集市;虚拟仓库是操作数据库上(Mysql)的视图的集合,有这种虚拟仓库模型的产生很显然是历史遗留问题或者仅当过渡使用的。
我们要明白的是,一个数据仓库的设计和建造是需要花费巨大精力的,这不仅需要建造者足够熟悉企业的业务,并对之进行商业建模,还需要考虑到诸多部门数据之间的融合协作问题。
因此,我们在建造数据仓库的时候,通常有这么三种设计思路:自顶向下、自底向上以及递增、进化
关于具体的说明,参考书上P87,并且要理解图4.2。书P99,4.3.1节和4.3.2节同样谈到了数据仓库的设计。

更多的,可以参见这篇文章。数据仓库的基本架构。其中要特别注重对元数据的管理。数据仓库元数据管理

OK,上面我们从整体上讨论了数据仓库的设计。那么具体的数据在数据仓库中是怎样存储的呢?我们之前就说了,数据仓库存在的目的是为了进行数据分析和处理。因此,其内部的结构也一定要适合这个操作。所以,在这里我们引入了多维数据模型这一概念
书上4.2.2节具体谈到了比较流行的多维数据模型(星形、雪花形 、事实星座),这个也比较好理解。这篇文章讲得也很详细。数据仓库的多维数据模型

好了。到这里我们已经清楚了多维数据模型作为一种新的逻辑模型赋予了数据新的组织和存储形式,而真正体现其在分析上的优势还需要基于模型的进行有效的操作和处理,也就是OLAP(On-line Analytical Processing,联机分析处理)。其实这就是我们之前一直反复提到的,对数据进行分析和操作。这个”分析和操作“实际上就是指的OLAP。数据科学家们为了将OLAP操作的原理解释清楚,还非常贴心搞出了数据立方体这么个东西来帮助我们理解(可惜,初学的时候这个东西把我坑惨了)。

那么什么是数据立方体呢? 实际上数据立方体只是多维模型的一个形象的说法。搞出这个东西一方面是出于更方便地解释和描述多维模型,同时也便于我们想象和理解;另一方面是为了与传统关系型数据库的二维表区别开来。我们要注意的是立方体本身只有三维,但多维模型不仅限于三维模型,可以组合更多的维度。借助数据立方体,我们可以把多维模型以三维的方式为代表进行展现和描述,为了加以拓展和延伸,然后又推广到其他的高维。

搞清楚了数据立方体之后,我们就可以很顺利的引入”OLAP”这个概念。
OLAP(On-line Analytical Processing,联机分析处理)是在基于数据仓库多维模型的基础上实现的面向分析的各类操作的集合。首先要声明的是这里介绍的有关多维数据模型和OLAP的内容基本都是基于ROLAP,因为其他几种类型极少接触,而且相关的资料也不多。
其实说白了,OLAP就是在数据仓库上的各种操作的集合。但是!!!!注意了!!!在数据仓库上还可以进行其他操作!!!!
实际上,书P101,4.3.3小节写到,数据仓库有三类应用:信息处理、分析处理、数据挖掘。
其中,信息处理对应的是基本的查询和统计分析;分析处理对应的就是OLAP操作,数据挖掘对应的就是KDD。
本文开篇就写到,本章为KDD中的数据挖掘知识引入进行了铺垫。所以,其实数据仓库的这三类应用是线性发展起来的。随着需求的增加,自然需要更强力的应用。之所以把OLAP作为数据挖掘的铺垫章节是因为这两者的联系实在是太紧密了,数据挖掘实际上实在OLAP的基础之上发展起来的。

OK,说了这么多。就是希望大家对整体的一个脉络有一个清楚的认识。书接上文,那么在数据仓库上的OLAP操作具体有哪些呢?
书上P96页,4.2.5节和4.2.6节给出了详细的解释,这篇文章说得也特别清楚易懂,一定要看一下。数据立方体与OLAP

诸如OLAP的上卷操作,下钻操作实际上都是对维进行聚集和发散操作。那么OLAP的服务器要在数秒之内回答决策支持查询,它的具体的技术细节是什么呢?P103,4.4.1节~4.4.3节讲解了具体的技术细节(物化和索引),仔细看下应该能理解。在这里要明确的是,所述的技术细节是建立在多维数据模型之上的!!!这篇文章也简要谈论了一下 OLAP,可以看一下OLAP的基本特征

再我们熟悉了以上的所有概念之后,我们现在来讨论OLAP与数据挖掘的区别和联系
这篇文章详细论述了这个问题。数据挖掘十问
其中书上P102页,4.3.4节讨论了数据挖掘中一种特别重要的挖掘方式,即多维数据挖掘(OLAM)与OLAP的联系和发展。总的来说,数据挖掘是在OLAP之上发展而来的,它身上具有OLAP的很多种特征。而OLAP本身确实也是比较强大的,并且在实际应用中也有很好的表现。并且考虑到实际情况,对数据进行OLAP操作不会比KDD少太多。所以在此基础之上发展而来的数据挖掘,特别是多维的数据挖掘非常强调数据挖掘与OLAP技术的集成。

参考文章,强烈推荐!
数据仓库系列文章
数据挖掘十问

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值