精华内容
下载资源
问答
  • 数据仓库架构

    2015-08-02 23:48:13
    数据仓库架构数据仓库架构体系。
  • 数据仓库架构Oracle

    2013-05-26 13:16:33
    数据仓库架构Oracle,数据仓库架构Oracle,数据仓库架构Oracle,数据仓库架构Oracle,数据仓库架构Oracle
  • 数据仓库架构基本架构主要数据仓库架构1. 数据集市架构2. Kimball数据仓库架构3. 混合型数据仓库架构操作数据存储参考资料 基本架构 “架构”是什么?这个问题从来就没有一个准确的答案。在软件行业,一种被普遍接受...

    基本架构

    “架构”是什么?这个问题从来就没有一个准确的答案。在软件行业,一种被普遍接受的架构定义是指系统的一个或多个结构。结构中包括软件的构建(构建是指软件的设计与实现),构建的外部可以看到属性以及它们之间的相互关系。这里参考此定义,把数据仓库架构理解成构成数据仓库的组件及其之间的关系,那么就有了如图1-1 所示的数据仓库架构图。

    图中显示的整个数据仓库环境包括操作型系统和数据仓库系统两大部分。操作型系统的数据由各种形式的业务数据组成,这其中可能有关系数据库、TXT或CSV文 件、HTML或XML文档,还可能存在外部系统的数据,比如网络爬虫抓取来的互联网数据等,数据可能是结构化、半结构化、非结构化的。这些数据经过抽取、转换和装载(ETL)过程进入数据仓库系统。

    这里把ETL过程分成了抽取和转换装载两个部分。抽取过程负责从操作型系统获取数据该过程一般不做数据聚合和汇总,但是会按照主题进行集成,物理上是将操作型系统的数据全量增量复制到数据仓库系统的RDS中。转换装载过程并将数据进行清洗、过滤、汇总、统一格式化等一系列转换操作,使数据转为适合查询的格式, 然后装载进数据仓库系统的TDS。传统数据仓库的基本模式是用一些过程将操作型系统的数据抽取到文件,然后另一些过程将这些文件转化成MySQL或Oracle这样的关系数据库的记录。最后,第三部分过程负责把数据导入进数据仓库。

    • RDS(RAW DATA STORES)是原始数据存储的意思。将原始数据保存到数据仓库里是个不错的想法。ETL过程的bug或系统中的其他错误是不可避免的,保留原始数 据使得追踪并修改这些错误成为可能。有时数据仓库的用户会有查询细节数据的需求,这些细节数据的粒度与操作型系统的相同。有了RDS,这种需求就很容易实现,用 户可以查询RDS里的数据而不必影响业务系统的正常运行。这里的RDS实际上是起到了操作型数据存储(ODS)的作用,关于ODS相关内容本小节后面会有详细论述。
    • TDS(TRANSFORMED DATA STORES)意为转换后的数据存储。这是真正的数据仓库中的数据。大量的用户会在经过转换的数据集上处理他们的日常查询。如果前 面的工作做得好,这些数据将被以保证最重要的和最频繁的查询能够快速执行的方式构建。

    这里的原始数据存储和转换后的数据存储是逻辑概念它们可能物理存储在一起,也可能分开。当原始数据存储和转换后的数据存储物理上分开时,它们不必使用同样的软硬件。传统数据仓库中,原始数据存储通常是本地文件系统,原始数据被组织进相应的目录中,这些目录是基于数据从哪里抽取或何时抽取建立(例如以日期作为文件或目录名称的一部分); 转换后的数据存储一般是某种关系数据库。

    自动化调度组件的作用是自动定期重复执行ETL过程。不同角色的数据仓库用户对数据的更新频率要求也会有所不同,财务主管需要每月的营收汇总报告,而销售人员想看到每天的产品销售数据。作为通用的需求,所有数据仓库系统都应该能够建立周期性自动执行的工作流作业。传统数据仓库一般利用操作系统自带的调度功能(如 Linux的cron或Windows的计划任务)实现作业自动执行。

    数据目录有时也被称为元数据存储,它可以提供一份数据仓库中数据的清单。
    用户通过它应该可以快速解决这些问题:

    • 什么类型的数据被存储在哪里
    • 数据集的构建有何区别
    • 数据最后的访问或更新时间等。

    此外还可以通过数据目录感知数据是如何被操作和转换的。一个好的数据目录是让用户体验到系统易用性的关键
    查询引擎组件负责实际执行用户查询。传统数据仓库中,它可能是存储转换后数据的(Oracle、MySQL等关系数据库系统内置的)查询引擎,还可能是以固定时间间隔向其导入数据的OLAP立方体,如Essbase cube。
    用户界面指的是最终用户所使用的接口程序。可能是一个GUI软件,如BI套件的中的客户端软件,也可能就是一个浏览器

    主要数据仓库架构

    在数据仓库技术演化过程中,产生了几种主要的架构方法,包括数据集市架构、Inmon企业信息工厂架构、Kimball数据仓库架构和混合型数据仓库架构。

    1. 数据集市架构

    数据集市是按主题域组织的数据集合,用于支持部门级的决策。有两种类型的数据集市:独立数据集市和从属数据集市。

    独立数据集市集中于部门所关心的单一主题域,数据以部门为基础部署,无须考虑企业级别的信息共享与集成。例如,制造部门、人力资源部门和其他部门都各自有 他们自己的数据集市。独立数据集市从一个主题域或一个部门的多个事务系统获取数据,用以支持特定部门的业务分析需要。一个独立数据集市的设计既可以使用实体关 系模型,也可以使用多维模型。数据分析或商业智能工具直接从数据集市查询数据,并将查询结果显示给用户。一个典型的独立数据集市架构如图1-2所示。

    因为一个部门的业务相对于整个企业要简单,数据量也小得多,所以部门的独立数据集市具有周期短、见效快的特点。如果从企业整体的视角来观察这些数据集市, 你会看到每个部门使用不同的技术,建立不同的ETL的过程,处理不同的事务系统,而在多个独立的数据集市之间还会存在数据的交叉与重叠,甚至会有数据不一致的情 况。从业务角度看,当部门的分析需求扩展,或者需要分析跨部门或跨主题域的数据时,独立数据市场会显得力不从心。而当数据存在歧义,比如同一个产品,在A部门 和B部门的定义不同时,将无法在部门间进行信息比较。

    另外一种数据集市是从属数据集市。如Bill Inmon所说,从属数据集市的数据来源于数据仓库。数据仓库里的数据经过整合、重构、汇总后传递给从属数据集市。从属数据集市的架构如图1-3所示。

    建立从属数据集市的好处主要有:

    • 性能:当数据仓库的查询性能出现问题,可以考虑建立几个从属数据集市,将查询从数据仓库移出到数据集市。
    • 安全:每个部门可以完全控制他们自己的数据。
    • 数据一致:因为每个数据集市的数据来源都是同一个数据仓库,有效消除了数据不一致的情况。

    Inmon企业信息工厂架构
    Inmon企业信息工厂架构如图1-4所示,我们来看图中的组件是如何协同工作的。

    • 应用系统: 这些应用是组织中的操作型系统,用来支撑业务。它们收集业务处理过程中产生的销售、市场、材料、物流等数据,并将数据以多种形式进行存储。操作型系统也叫源系统,为数据仓库提供数据。
    • ETL过程: ETL过程从操作型系统抽取数据,然后将数据转换成一种标准形式,最终将转换后的数据装载到企业级数据仓库中。ETL是周期性运行的批处理过程。
    • 企业级数据仓库: 是该架构中的核心组件。正如Inmon数据仓库所定义的,企业级数据仓库是一个细节数据的集成资源库。其中的数据以最低粒度级别被捕获,存储在满足三范式设计的关系数据库中。
    • 部门级数据集市: 是面向主题数据的部门级视图,数据从企业级数据仓库获取。数据在进入部门数据集市时可能进行聚合。数据集市使用多维模型设计,用于数据 分析。重要的一点是,所有的报表工具、BI工具或其他数据分析应用都从数据集市查询数据,而不是直接查询企业级数据仓库。
    2. Kimball数据仓库架构

    Kimball数据仓库架构如图1-5所示。

    对比上一张图可以看到,Kimball与Inmon两种架构的主要区别在于核心数据仓库的设计和建立。Kimball的数据仓库包含高粒度的企业数据,使用多维模型设计,这也意味着数据仓库由星型模式的维度表和事实表构成。分析系统或报表工具可以直接访问多维数据仓库里的数据。在此架构中的数据集市也与Inmon中的不同。这里的数据集市是一个逻辑概念,只是多维数据仓库中的主题域划分,并没有自己的物理存储,也可以说是虚拟的数据集市

    3. 混合型数据仓库架构

    混合型数据仓库架构如图1-6所示。

    所谓的混合型结构,指的是在一个数据仓库环境中,联合使用Inmon和Kimball两种架构。从架构图可以看到,这种架构将Inmon方法中的数据集市部分替换成了一个多维数据仓库,而数据集市则是多维数据仓库上的逻辑视图。使用这种架构的好处是,既可以利用规范化设计消除数据冗余,保证数据的粒度足够细;又可以利用多维结构 更灵活地在企业级实现报表和分析

    操作数据存储

    操作数据存储又称为ODS,是Operational Data Store的简写,其定义是这样的: 一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、操作性的、集成的全体信息的需求。对比1.1节中数据仓库的定义不难看出,操作型数据存储在某些方面具有类似于数据仓库的特点,但在另一些方面又显著不同于数据仓库。

    • 像数据仓库一样,是面向主题的。
    • 像数据仓库一样,其数据是完全集成的。
    • 数据是当前的,这与数据仓库存储历史数据的性质明显不同。ODS具有最少的历史数据(一般是30天到60天),而尽可能接近实时地展示数据的状态。
    • 数据是可更新的,这是与静态数据仓库又一个很大的区别。ODS就如同一个事务处理系统,当新的数据流进ODS时,受其影响的字段被新信息覆盖。
    • 数据几乎完全是细节数据,仅具有少量的动态聚集或汇总数据。通常将ODS设计成包含事务级的数据,即包含该主题域中最低粒度级别的数据。
    • 在数据仓库中,几乎没有针对其本身的报表,报表均放到数据集市中完成;与此不同,在ODS中,业务用户频繁地直接访问ODS。

    在一个数据仓库环境中,ODS具有如下几个作用:

    • 充当业务系统数据仓库之间的过渡区。数据仓库的数据来源复杂,可能分布在不同的数据库,不同的地理位置,不同的应用系统之中,而且由于数据形式的多样 性,数据转换的规则往往极为复杂。如果直接从业务系统抽取数据并做转换,不可避免地会对业务系统造成影响。而ODS中存放的数据从数据结构、数据粒度、数据之间的逻辑关系上都与业务系统基本保持一致,因此抽取过程只需简单的数据复制而基本不再需要做数据转换,大大降低了复杂性,同时最小化对业务系统的侵 入。
    • 转移部分业务系统细节查询的功能。某些原来由业务系统产生的报表、细节数据的查询能够在ODS中进行,从而降低业务系统的查询压力
    • 完成数据仓库中不能完成的一些功能。用户有时会要求数据仓库查询最低粒度级别的细节数据,而数据仓库中存储的数据一般都是聚合或汇总过的数据,并不存储每笔交易产生的细节数据。这时就需要把细节数据查询的功能转移到ODS来完成,而且ODS的数据模型是按照面向主题的方式组织的,可以方便地支持多维分析。 即数据仓库从宏观角度满足企业的决策支持要求,而ODS层则从微观角度反映细节交易数据或者低粒度的数据查询要求。

    参考资料

    [Book]Hadoop构建数据仓库实践, 第1章第3节 —— 操作型系统与分析型系统

    展开全文
  • 数据仓库架构师笔试题
  • 淘宝数据仓库架构

    2015-08-03 06:47:25
    淘宝数据仓库架构 该ppt描述了淘宝的技术机构 很好的一份资料
  • 数据仓库架构实际例子
  • Oracle数据仓库架构

    2009-11-10 13:54:50
    Oracle数据仓库架构、Oracle数据仓库架构
  • BW4HANA数据仓库架构.png
  • 淘宝数据仓库架构介绍 淘宝数据仓库的发展演变
  • 002-数据仓库架构

    2015-01-07 13:22:05
    数据仓库架构设计介绍,ODS、UDM等
  • 数据仓库架构分层

    2019-11-27 20:41:53
    数据仓库架构分层 数据仓库标准上可以分为四层:ODS(临时存储层)、PDW(数据仓库层)、DM(数据集市层)、APP(应用层)。 ODS层: 为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。...

    数据仓库架构分层

    数据仓库标准上可以分为四层:ODS(临时存储层)、PDW(数据仓库层)、DM(数据集市层)、APP(应用层)。

     

     

    ODS层:

    为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。一般来说ODS层的数据和源系统的数据是同构的,主要目的是简化后续数据加工处理的工作。从数据粒度上来说ODS层的数据粒度是最细的。ODS层的表通常包括两类,一个用于存储当前需要加载的数据,一个用于存储处理完后的历史数据。历史数据一般保存3-6个月后需要清除,以节省空间。但不同的项目要区别对待,如果源系统的数据量不大,可以保留更长的时间,甚至全量保存;

    PDW层:

    为数据仓库层,PDW层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。这一层的数据一般是遵循数据库第三范式的,其数据粒度通常和ODS的粒度相同。在PDW层会保存BI系统中所有的历史数据,例如保存10年的数据。

    DM层:

    为数据集市层,这层数据是面向主题来组织数据的,通常是星形或雪花结构的数据。从数据粒度来说,这层的数据是轻度汇总级的数据,已经不存在明细数据了。从数据的时间跨度来说,通常是PDW层的一部分,主要的目的是为了满足用户分析的需求,而从分析的角度来说,用户通常只需要分析近几年(如近三年的数据)的即可。从数据的广度来说,仍然覆盖了所有业务数据。

    APP层:

    为应用层,这层数据是完全为了满足具体的分析需求而构建的数据,也是星形或雪花结构的数据。从数据粒度来说是高度汇总的数据。从数据的广度来说,则并不一定会覆盖所有业务数据,而是DM层数据的一个真子集,从某种意义上来说是DM层数据的一个重复。从极端情况来说,可以为每一张报表在APP层构建一个模型来支持,达到以空间换时间的目的数据仓库的标准分层只是一个建议性质的标准,实际实施时需要根据实际情况确定数据仓库的分层,不同类型的数据也可能采取不同的分层方法。

     

    为什么要对数据仓库分层:

    1、用空间换时间,通过大量的预处理来提升应用系统的用户体验(效率),因此数据仓库会存在大量冗余的数据;

    2、如果不分层的话,如果源业务系统的业务规则发生变化将会影响整个数据清洗过程,工作量巨大

    3、通过数据分层管理可以简化数据清洗的过程,因为把原来一步的工作分到了多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作,把一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样我们比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要局部调整某个步骤即可。


     

    展开全文
  • 数据仓库架构设计

    2016-01-15 14:15:00
    数据仓库架构由于其技术选择非常广泛,看上去复杂,不过背后有一套比较稳定的思路,这也是数据仓库架构设计的一个要点,稳定中蕴含变化,变化中蕴含稳定。 总 体来说,数据仓库架构分成两大块,一是硬件架构,二是...

    一.

    数据仓库架构,是IT架构的一个分支,随着数据在企业的核心作用的增强,数据仓库的架构日益重要。数据仓库架构由于其技术选择非常广泛,看上去复杂,不过背后有一套比较稳定的思路,这也是数据仓库架构设计的一个要点,稳定中蕴含变化,变化中蕴含稳定。

    总 体来说,数据仓库架构分成两大块,一是硬件架构,二是软件架构。硬软架构又可以分成封闭式和开放式。封闭式硬件架构代表厂商有teradata,其硬件是 专属的,必须使用特殊的硬件才能运行。开放式硬件架构的代表有oracle,可以运行在各种硬件上,不过开放和封闭之间的界限也逐步的融合,oracle 也开始打包hp的专属硬件来推广其dw的方案,而teradata也开始用基于suse的os可运行的硬件上提供其dw产品。封闭式硬件好处是开箱即用, 经过厂商的严格测试,保障性比较高,开放式硬件则需要企业具备很强大的技术实力,能够有一支具备硬件,存储,操作系统综合知识和能力的团队,在组合成一套 可以运行dw软件的基础平台,并且在发现问题的时候要能很快速的定位问题的原因并解决。

    数据仓库的软件架构选择更加丰富。从数据库软件,etl软件,展现软件,数据挖掘软件,每一种类型里面都具备非常多的选择。

    这些软件的选择是架构设计的一部分,架构设计的重要核心一部分是综合这些软件的一套思路,在一套dw架构设计的思路下,软件可以很灵活的进行选择。

     

    二.

    数据仓库架构设计的出发点是什么?需要解决哪些问题?

    所 谓架构,好比大厦,好的设计大厦具备很好的抗震,抗自然灾害能力,框架式建筑能够重新打造内部结构。而数据仓库架构也是解决类似的问题,其实很多数据仓库 在开始起步的时候是不谈架构的,本来就是小作坊,无须谈到架构这个高度。但是如果要考虑建设一个能支撑容纳5-10年业务的时候,架构的好坏就体现出来 了。

    一 个好的架构其实就是经验的沉淀物,架构是在理清楚数据仓库的基本的任务,并能让这些任务高效低成本的实现。举个简单的例子来理解一下,数据仓库中同步数据 和汇总数据的依赖模块非常之多,如果其中若干模块出错,该如何处理?如果架构设计不好,就会陷入维护人员不断的寻找问题,清理现场,手工调度等问题出现, 场面应该十分混乱。好的架构首先是模块化,模块内部具备自动清理现场功能,而模块间则具备自动断点重新启动功能,在模块常规出错的时候,能依靠系统自助解决问题,同时能把处理问题的过程记录下来供后续分析。这样的架构能够极大的提升维护的效率,减轻维护人员的维护量。整个dw系统也具备了抗异常能力。

     

    三.

    数据仓库的架构设计,有时候一个好的架构设计的出发点往往来源于当前系统的缺陷。如何面对当前系统的缺陷是架构能否持续发展的一个关键点之一。业界存在很多对商业,开源etl工具的评测,那么这些评测要点应该从哪些方面进行才能甄别出适合企业的工具呢?

    1.成本。成本永远是企业关心的一个核心问题,特别在如今经济寒冬,更是如此。

    2.效率。能否高效的处理海量的数据是一个基础要素,搞数据仓库的都知道,数据量永远是一个经常被拿出来讨论的话题。

    3.线性扩展。能支持线性扩展的系统在计划支撑多年的系统中特别重要,可以非常方便的做出年度预算。

    4.协同工作。解决多人协同开发问题。

    5.调度。能否很方便的一目了然的看到整体调度,站在一个非常高的高度来管理各种数据流。

    6.兼容性。能否兼容各种异构数据。

    7.准确的监控系统。

    8.高效的开发框架。

     

    四.

    数据仓库的物理架构,包含硬件物理架构和软件物理架构。硬件物理架构包含集中式和分布式2中,在企业里面都有运用。

    集中式硬件物理架构偏向于使用非常power的小型机或者大型机,非常高端的海量存储,管理简单,在不计投入的情况下性能也能满足企业需求。

    分 布式硬件物理架构目前非常流行,特征是采用价格低廉的中低端机器组成计算集群,不同的技术驱动下,在share nothing的架构下可以采用本机的硬盘, 在share everything的架构下偏向使用集中存储,分布式集群在网络上的要求比较高,扩展性比较好,配合好的软件可以达到线性扩展的要求。

    软件物理架构主要特征区别就是行存储和列存储。这个也是曾经很多厂商津津乐道的地方,根据需求的不同,2种方式可以灵活采用。

    大部分db软件都是采用行存储,而列存储的特征在于高效的单列值压缩,在选择列比较少的时候需要io要求很低,速度很快,不过行存储的db目前在压缩效率上也在迅速提升,大部分需求还是选择行数据进行观察,行存储也更加便于表的按记录拆分进行并行化。

    转载于:https://www.cnblogs.com/zzjhn/p/5133180.html

    展开全文
  • 数据仓库架构师面试题,里面包含了各家的面试题,难度比较大,欢迎下载
  • 在GeeksforGeeks上看到了几篇关于数据仓库架构、维度数据建模的文章,进行翻译整理并加入了一些自己的理解,输出了这篇文章。 一、数据仓库架构 数据仓库是将不同来源的数据在统一的模式下组织起来的异构集合。构建...


    本篇文章主要介绍了数据仓库的整体架构、数仓中常用的维度数据建模方法以及星型模型和雪花模型的区别。

    一、数据仓库架构

    数据仓库是将不同来源的数据在统一的模式下组织起来的异构集合。构建数据仓库有两种方法:自顶向下和自底向上。

    1. 自顶向下

    自顶向下的架构如下图:
    在这里插入图片描述
    图中各主件的作用如下:

    1. External Sources
      外部源是不管收集的数据是何种类型的数据源。数据可以是结构化的、半结构化的和非结构化的。结构化的数据,比如:关系型数据库中的表等;半结构化的数据,比如:Json串、XML文件等;非结构化的数据,比如:图片、音频、视频等。

    2. Stage Area
      由于从外部数据源抽取的数据没有特定的格式,因此需要对这些数据进行处理,以将其加载到数据仓库中。为此,建议使用ETL工具:

      E(Extracted): 从外部数据源抽取数据。
      T(Transform): 将抽取的数据转换成标准格式。
      L(Load): 将标准格式的数据加载进数据仓库。

    3. Data-warehouse
      在自顶向下的方法中,数据仓库存储最原始的数据。

    4. Data Marts
      数据集市也是存储组件中的一部分。它存储由不同主题组织起来的数据。

    5. Data Mining
      数据挖掘就是对数据仓库中的大量数据进行分析处理。利用数据挖掘算法找出数据仓库中隐藏的数据价值。

    自顶向下的方法是被数据仓库之父Bill Inmon定义的——数据仓库作为公司的中央仓库,而数据集市从完整的数据仓库创建而来。

    • 自顶向下优点
    1. 由于数据集市是从数据仓库创建而来,因此提供了数据集市的一致维度视图。
    2. 这种模型可以很好的应对业务数据的变化。大公司会更喜欢采用这种方法。
    3. 从数据仓库创建数据集市比较容易。
    • 自顶向下缺点
    1. 设计和维护的成本比较高。

    2. 自底向上

    自底向上架构如下图:
    在这里插入图片描述
    整个数据的流转过程:

    1. 首先,数据会从外部数据源被抽取过来。
    2. 数据经过ETL之后,不再进入数据仓库,而是被加载进数据集市。每个数据集市针对的是不同的业务主题,并且可以直接提供报表功能。
    3. 将数据集市整合进数据仓库。

    自下而上的方法是Ralph Kimball(数据仓库和BI领域的权威专家)提出的——首先创建数据集市,并为分析提供单个业务视图,在创建完整的数据集市之后再创建数据仓库。

    • 自底向上优点
    1. 由于是先创建数据集市,所以会快速生成报表。
    2. 数据仓库可以根据数据集市进行扩展。
    3. 设计成本比较低。
    • 自底向上缺点
    1. 由于维度视图的局限性,造成这种方法没有对数据的一个全局把控。

     

    二、维度数据建模

    维度建模的概念是由Ralph Kimball提出的,是许多OLAP(Online Analytical Processing,联机分析处理)系统使用的数据模型。维度建模有两个比较常用的建模模型:星型模型雪花模型,模型由事实表维度表组成。

    维度建模步骤如下图:
     
    在这里插入图片描述

    1. Identifying the business objective
      第一步就是确定业务对象,比如,销售(Sales)、人力资源(HR)、促销(Marketing)等。业务对象的选择直接影响着之后所用数据的质量,是数据建模中非常重要的一步。
    2. Identifying Granularity
      确定要存储到表中的数据的粒度。
    3. Indentify Dimensions and ites Attributes
      维度用来对数据仓库中的事实数据进行分类。比如,数据维度可能会是时间中的年、月、日,也可能是地域中的省、市、区县等等。
    4. Indentifying the Fact
      确认事实表,比如,商品价格、尺寸等。
    5. Building of Schema
      构建模型,比较常用的模型有:星型模型和雪花模型。

    三、星型模型和雪花模型

    1. 星型模型

    星型模型是数仓建模中较为常用的模型,它包含一个或多个事实表,以及连接到事实表上的维度表。星型模型相较于雪花模型在查询处理方面是更为高效的。

    星型模型之所以被称为星型,是因为它的物理模型就像是一个恒星的形状,中心是一个事实表,事实表上连着维度表。如下图:
    Star
    在上图中,SALES就是一个事实表,其他的都是维度表,并各自都有属于自己的属性。事实表中存储业务流程中的定量数据;维度表中存储事实数据的描述性特征。事实数据,比如图中的:销售价格、数量、重量等。

    • 星型模型优点
    1. 关联查询比较简单,没有过于复杂的关联关系。
    2. 由于一些维度表已经预先进行了合并,因此不需要过多的join操作,那么关联查询效率就会更高。
    • 星型模型缺点
    1. 数据并不像3NF那样规范化。
    2. 由于一些维度表已经预先进行了合并,就会造成数据的冗余存储,占用了更多的空间。
       

    2. 雪花模型

    雪花模型可以认为是星型模型的变体。雪花模型在星型模型的基础上,对维度表进行了更规范化的拆分,就会促使某些维度表拆分出更细分的维度表。看下图:
    Snowflake
    图中就把Employee表拆分成了Employee和Department两张维度表,Department维度表可以提供一个部门更详细的信息,比如名字和位置。还有也把Customer维度表拆分成了Customer和City两张维度表,City维度表有关于一个城市的详细信息,比如城市名、邮政编码、所属省和国家。

    雪花模型和星型模型的主要区别在于,雪花模型的维度表是规范化存储的,减少了冗余。这样做的好处是易于维护和节省存储空间,缺点就是需要更多的连接来执行查询,性能较差。

    通常情况下,不建议使用雪花模型,因为它会增加维度模型的复杂度,可理解性差,而且需要连接更多的表来满足查询,性能低。

    最后总结一下雪花模型有哪些优缺点。

    • 雪花模型优点
    1. 提供了规范化的数据,数据完整性高。
    2. 由于数据时高度规范化的,因此占用的存储空间较小。
    • 雪花模型缺点
    1. 高度结构化的数据,在另一方面也增加了模型的复杂度。
    2. 规范化的数据,在查询的时候会有更多的join连接,就会导致较差的性能。
    展开全文
  • 一、数据仓库架构 二、数据主题域设计 三、星型模型设计 四、数仓技术架构
  • IBM 数据仓库架构

    2009-12-29 16:11:12
    描述ibm 的数据仓库架构与设计,数据模型设计
  • 实时OLAP数据仓库架构优化演进 最初的架构 Druid简介 Druid和其他OLAP的对比  使用Druid以后的架构
  • 数据仓库架构方案

    2016-06-16 20:09:17
    数据仓库架构方案概念图          

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,297
精华内容 2,118
关键字:

数据仓库架构