首页 > 代码库 > 数据仓库为什么要分层

数据仓库为什么要分层

  1. 如何分层
    • 结合Inmon和Kimball的集线器式和总线式的数据仓库的优点,分层为ODS-DW-DM-OLAP/OLAM/app
    • ODS层是将OLTP数据通过ETL同步到数据仓库来作为数据仓库最基础的数据来源。在这个过程中,数据经过了一定的清洗,比如字段的统一,脏数据的去除等,但是数据的粒度是不会变化的。ODS层的数据可以只保留一定的时间。
    • DW层是采用Inmon集线器架构的方式,针对某一主题subject area,通过使用范式建模的方法,构建EDW层数据。当然跟操作型数据库的范式建模也不太一样,数据仓库是允许有冗余的,因为当数据量很大的时候,增加冗余可以减少表之间的关联次数,可以一定的提高效率。
    • DM层是采用Kimball的总线式的数据仓库架构,针对部门(比如财务部门)或者某一主题(比如商户、用户),通过维度建模(推荐星型模型),构建一致性维度,经过一定的汇总,建设数据集市模型。数据集市可以为OLAP提供服务。
  2. 为什么要分层
    • 空间换时间。通过建设多层次的数据模型供用户使用,避免用户直接使用操作型数据,可以更高效的访问数据。
    • 把复杂问题简单化。讲一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
    • 便于处理业务的变化。随着业务的变化,只需要调整底层的数据,对应用层对业务的调整零感知.
  3. 分层的价值
    • 高效的数据组织形式【易维护
      面向主题的特性决定了数据仓库拥有业务数据库所无法拥有的高效的数据组织形式,更加完整的数据体系,清晰的数据分类和分层机制。因为所有数据在进入数据仓库之前都经过清洗和过滤,使原始数据不再杂乱无章,基于优化查询的组织形式,有效提高数据获取、统计和分析的效率。
    • 时间价值【高性能】
      数据仓库的构建将大大缩短获取信息的时间,数据仓库作为数据的集合,所有的信息都可以从数据仓库直接获取,数据仓库的最大优势在于一旦底层从各类数据源到数据仓库的ETL流程构建成型,那么每天就会有来自各方面的信息通过自动任务调度的形式流入数据仓库,从而使一切基于这些底层信息的数据获取的效率达到迅速提升。
      从应用来看,使用数据仓库可以大大提高数据的查询效率,尤其对于海量数据的关联查询和复杂查询,所以数据仓库有利于实现复杂的统计需求,提高数据统计的效率。
    • 集成价值【简单化】
      数据仓库是所有数据的集合,包括日志信息、数据库数据、文本数据、外部数据等都集成在数据仓库中,对于应用来说,实现各种不同数据的关联并使多维分析更加方便,为从多角度多层次地数据分析和决策制定提供的可能。
    • 历史数据【历史性】
      记录历史是数据仓库的特性之一,数据仓库能够还原历史时间点上的产品状态、用户状态、用户行为等,以便于能更好的回溯历史,分析历史,跟踪用户的历史行为,更好地比较历史和总结历史,同时根据历史预测未来。

数据仓库为什么要分层