数据集市与数据仓库

企业规划数据仓库项目的时候,往往会遇到很多数据仓库软件供应商。各供应商除了推销相关的软件工具外,同时也会向企业灌输许多概念。其中,数据仓库和数据集市是最常见的两个术语了。各个供应商术语定义不统一、销售策略不一样,这往往会给企业带来很大的混淆。最典型的问题是:到底是先上一个企业级的数据仓库呢?还是先上一个部门级的数据集市?
  对于数据仓库和数据集市的概念有各种不同的版本,这里参照数据仓库之父Inmon的定义予以说明(来自www.billinmon.com词汇表)。
  数据仓库(如图1所示)是一个集成的、面向主题的数据集合,设计的目的是支持DSS决策支持系统)功能。在数据仓库里,每个数据单元都和特定的时间相关。数据仓库包括原子级别的数据和轻度汇总的数据,是面向主题的、集成的、不可更新的(稳定性)、随时间不断变化(不同时间)的数据集合,用以支持经营管理中的决策制定过程。
  图1所示的以数据仓库为基础的决策支持环境,要求数据仓库能够满足所有最终用户的需求。然而,不同最终用户的需求侧重点是不同的,这就要求数据仓库存储的数据要具有充分的灵活性,以能够适应各类用户的查询和分析;另一方面,最终用户对信息检索要求是高性能—越快越好。但是,对数据仓库而言,灵活性和性能(速度)是一对矛盾体—要保障灵活性以满足尽可能多用户的查询需求会影响整个数据仓库的性能。为了解决灵活性和性能之间的矛盾,数据仓库体系结构中增加了数据集市(如图2所示)—一种小型的部门或工作组级别的数据仓库。数据集市存储为特定用户预先计算好的数据,从而满足用户对性能的需求。


  “仓库”和“集市”的区别

  数据仓库和数据集市之间的区别,可以用图3(来自www.billinmon.com)直观地表示。
  从图中可以看出,数据仓库中数据结构采用规范化模式(关系数据库设计理论),数据集市的数据结构采用星型模式(多维数据库设计理论)。数据仓库中数据的粒度比数据集市的粒度细。图3反映了数据结构和数据内容的两个特征,其他方面的比较则如表1所示。
 


  数据集市能“独立”吗?

  企业规划数据仓库项目的时候,往往会遇到很多数据仓库软件供应商。各供应商除了推销相关的软件工具外,同时也会向企业灌输许多概念。其中,数据仓库和数据集市是最常见的两个术语了。各个供应商术语定义不统一、销售策略不一样,这往往会给企业带来很大的混淆。最典型的问题是:到底是先上一个企业级的数据仓库呢?还是先上一个部门级的数据集市?这其实是是否要上独立型数据集市的问题。
 


  数据集市可以分为两种类型—独立型数据集市和从属型数据集市。独立型数据集市直接从操作型环境获取数据,从属型数据集市从企业级数据仓库获取数据,带有从属型数据集市的体系结构如图2所示。
  数据仓库规模大、周期长,一些规模比较小的企业用户难以承担。因此,作为快速解决企业当前存在的实际问题的一种有效方法,独立型数据集市成为一种既成事实。独立型数据集市是为满足特定用户(一般是部门级别的)的需求而建立的一种分析型环境,它能够快速地解决某些具体的问题,而且投资规模也比数据仓库小很多。
  独立型数据集市的存在会给人造成一种错觉,似乎可以先独立地构建数据集市,当数据集市达到一定的规模再直接转换为数据仓库。有些销售人员会推销这种观点,其实质却常常是因为建立企业级数据仓库的销售周期太长以至于不好操作。
  多个独立的数据集市的累积,是不能形成一个企业级的数据仓库的,这是由数据仓库和数据集市本身的特点决定的—数据集市为各个部门或工作组所用,各个集市之间存在不一致性是难免的。因为脱离数据仓库的缘故,当多个独立型数据集市增长到一定规模之后,由于没有统一的数据仓库协调,企业只会又增加一些信息孤岛,仍然不能以整个企业的视图分析数据。借用Inmon的比喻:我们不可能将大海里的小鱼堆在一起就构成一头大鲸鱼,这也说明了数据仓库和数据集市有本质的不同。
  如果企业最终想建设一个全企业统一的数据仓库,想要以整个企业的视图分析数据,独立型数据集市恐怕不是合适的选择;也就是说“先独立地构建数据集市,当数据集市达到一定的规模再直接转换为数据仓库”是不合适的。从长远的角度看,从属型数据集市在体系结构上比独立型数据集市更稳定,可以说是数据集市未来建设的主要方向。

  数据集市怎么建?

  建立不同规格的数据仓库、数据集市的成本,国外的咨询机构有专门的评估,在一定程度上可以借鉴。但是这些结果在国内也许并不适用,因为国情不同,在国内的构建成本需要专门的调研。以我们为企业构建的客户主题数据集市为例,一般成本在20万元到50万元人民币之间。
  数据仓库(集市)的设计可以采用迭代式的方法。在迭代式开发中,每个迭代为上一次的结果增加了新的功能。功能增加的顺序要考虑到迭代平衡以及尽早发现重大风险。通俗地说,就是在正式交货之前多次给客户交付不完善的中间产品“试用”。这些中间产品会有一些功能还没有添加进去、还不稳定,但是客户提出修改意见以后,开发人员能够更好地理解客户的需求。如此反复,使得产品在质量上能够逐渐逼近客户的要求。这种开发方法周期长、成本高,但是它能够避免整个项目推倒重来的风险,比较适合大项目、高风险项目。
  理论上讲,应该有一个总的数据仓库的概念,然后才有数据集市。实际建设数据仓库(集市)的时候,国内很少这么做。国内一般会先从数据集市入手,就某一个特定的主题(比如企业的客户信息)先做数据集市,再建设数据仓库。数据仓库和数据集市建立的先后次序之分,是和设计方法紧密相关的。而数据仓库作为工程学科,并没有对错之分,主要判别方式应该是能否解决目前存在的实际问题,并为今后可能发生的问题保持一定的可伸缩性。

  “实战”分析

  数据仓库、数据集市到底如何应用呢?让我们从一个例子分析——假设为某银行构建一个分行级别的数据仓库,再为该分行国际业务部构建从属型数据集市。
  数据仓库的数据来源于银行的业务系统,包括储蓄、卡、个贷、外汇宝、中间业务等等,分析的主题包括客户、渠道、产品等。数据仓库的数据粒度根据分析的要求而定,一般包括具体的历史记录(存款、取款、外汇交易、POS消费、中间业务缴费记录)。然后,将这些记录汇总到天、周、月、季度、年等各个层次,具体数据粒度由分析的需求而定。另外,数据仓库还存储一些业务逻辑——为分析而计算的一些指标。比如,客户的价值或客户的忠诚度。这些指标的计算不能通过单一的业务系统取得,它需要从所有业务上综合考虑,这也是数据仓库系统的优点之一。
  假设整个分行有20万个客户,那么数据仓库将包20万个客户所有业务的历史数据、汇总数据以及数据仓库指标数据,数据量会达到几十甚至数百G(这只是非常小规模的数据仓库)。为了满足全行所有部门用户的查询和分析,数据仓库只能采用范式化设计。这样,不管用户有什么查询需求,只要有数据存在就能满足所需。
  假设国际业务部门的客户有2万人(使用外汇宝)。如果不构建数据集市,他们会直接在数据仓库上查询相关的信息,比如外汇宝客户去年一年外汇交易额在各种交易方式(柜台、网上、电话银行等)的分布。这种查询的效率和性能是非常低的,如果各个部门的所有用户都直接在数据仓库上查询相关的信息,数据仓库的性能会下降,以至于无法满足大多数用户对性能的需求——谁都不愿意为一个简单的查询等待数分钟甚至数小时。因此,构建部门级的数据集市是非常必要的,这主要基于性能上的考虑。国际业务部门的数据集市,集中了数据仓库中与本部门直接相关的业务数据,例如2万个客户外汇交易的历史数据以及汇总。它采用星型模式(雪片或两者混合),可以方便OLAP工具的查询和分析。

  背景资料:迭代式开发方法已存在很久了,它还拥有其它不同的名称,如“渐进式”(Evolutionary)、“阶段式”(Staged)、“螺旋式”(Spiral)等等。迭代式开发重要问题之一是迭代阶段需要多长。一般的趋势是让每一个周期尽可能地短,这样就能得到频繁的反馈,及时地知道开发者所处的状况。

来源:中国计算机用户 作者:上海复旦德门软件有限公司 朱建秋博士

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本课程是在《如何进行中台能力框架设计》、《如何构建数据质量方案》、《如何挖掘大数据应用价值》、《数据湖与数据仓库之争》、《基于数据湖数据中台解决方案》等智慧中台课程基础上,如何基于智慧城中台能力框架规划,重点解决进行数据集架构设计和落地实施核心问题和障碍,并提供数据集建设的一般策略和架构思路借鉴,在数据集建设过程中总是遇到如下困惑:1、缺乏数据集建设策略方法论,无法对繁杂的业务数据进行分类甄别,没有系统化思维?2、数据集建设过程没有步骤,没有章法,缺乏构建路径和一般策略指导?3、智慧城数据集架构设计无从下手,没有数据集全景图参考,没有案例借鉴?4、政府职能部门数据差异化太大,缺乏数据范围分析方法论指导,数据范围不知如何兼顾?5、如何面对各对接系统繁杂,不知如何开展数据溯源工作,缺乏数据溯源工作步骤?6、如何构建智慧城数据集,如何实现数据的归集,如何选择数据集落地实现方式?7、针对数据多样性和场景化,如何设计数据分层处理机制,提高数据集效率?8、如何解决传统数据平台向数据集迁移,有哪些途径和方法,如何设计衍生层数据? 针对以上数据集过程中的共性障碍和困惑,以数据集全景图为引子,抛砖引玉;从而帮助同仁开拓思路,提高数据集架构设计能力。本课程特别适合广大从事智慧中台行业相关人员及爱好学习,为提高个人知识广度,构建个人核心竞争力,为梦想增值的同仁。  为了更好的学习本课程并达到良好的效果,建议同时学习智慧城《智慧中台》、《售前管理》、《行业方案》和《城大脑》系列相关课程,并请持续关注后续课程,谢谢。
本教程为授权出品 一、课程简介数据仓库(Data Warehouse,可简写为DW或DWH),是面向分析的集成化数据环境,为企业决策制定过程,提供系统数据支持的战略集合,是国内外各大公司正在重点投入的战略级技术领域。 二、课程内容《大数据电商数仓项目实战》视频教程,从项目架构的搭建,到数据采集模块的设计、数仓架构的设计、实战需求实现、即席查询的实现,我们针对国内目前广泛使用的Apache原生框架和CDH版本框架进行了分别介绍,Apache原生框架介绍中涉及到的技术框架包括Flume、Kafka、Sqoop、MySql、HDFS、Hive、Tez、Spark、Presto、Druid等,CDH版本框架讲解包括CM的安装部署、Hadoop、Zookeeper、Hive、Flume、Kafka、Oozie、Impala、HUE、Kudu、Spark的安装配置,透彻了解不同版本框架的区别联系,将大数据全生态系统前沿技术一网打尽。在过程中对大数据生态体系进行了系统的讲解,对实际企业数仓项目中可能涉及到的技术点都进行了深入的讲解和探讨。同时穿插了大量数仓基础理论知识,让你在掌握实战经验的同时能够打下坚实的理论基础。 三、课程目标本课程以国内电商巨头实际业务应用场景为依托,对电商数仓的常见实战指标以及难点实战指标进行了详尽讲解,具体指标包括:每日、周、月活跃设备明细,留存用户比例,沉默用户、回流用户、流失用户统计,最近连续3周活跃用户统计,最近7天内连续3天活跃用户统计,GMV成交总额分析,转化率及漏斗分析,品牌复购率分析、订单表拉链表的设计等,让学生拥有更直观全面的实战经验。通过对本课程的学习,对数仓项目可以建立起清晰明确的概念,系统全面的掌握各项数仓项目技术,轻松应对各种数仓难题。 四、课程亮点本课程结合国内多家企业实际项目经验,特别加入了项目架构模块,从集群规模的确定到框架版本选型以及服务器选型,手把手教你从零开始搭建大数据集群。并且总结大量项目实战中会遇到的问题,针对各个技术框架,均有调优实战经验,具体包括:常用Linux运维命令、Hadoop集群调优、Flume组件选型及性能优化、Kafka集群规模确认及关键参数调优。通过这部分学习,助学生迅速成长,获取前沿技术经验,从容解决实战问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值