「数据仓库篇」数据仓库分层的必要性

一、文章概述

本文主要介绍多年来大数据小伙伴们一直在探讨的问题,数据仓库分层的必要性。


本文主要是探讨数据仓库分层的意义,给刚刚接触数仓的同学一些提示,行业大牛就不要看了。

  • 为什么要分层,在数据建设初期,为了满足业务方的需求,大部分开发同学简单粗暴的直接访问底层数据,用SQL计算出业务指标。各种重复计算,造成严重的资源浪费。
  • 分层的价值,分层可以是数据血缘关系更加清晰。
  • 成本分摊,通过数据分层和数据主题建设,清晰明了的规划处各个业务方占用数据存储情况,对日后资源申请,数据生命周期管理提供强有力的数据依据。


二、为什么要分层

数据从繁多的业务DB数据、埋点日志、外站数据等形形色色的异构数据源中经过各种ETL变换,到最终的报表、仪表盘、API、OLAP等,需要让用户看到统一一致性的数据。针对这些常规的需求,我们需要在做数据管理的时候,能有清晰的血缘关系,明确的权限管理,这样才能对数据有一个合理的把控能力。主要考虑一下几个原因:

  1. 空间换时间:通过建设多层数据模型供用户使用,避免用户直接操作底层操作型数据,可以更高效的访问数据。
  2. 清晰的数据血缘关系:方便各个业务团队,在某个业务数据出现问题,或者是梳理数据逻辑的时候,能够清晰准确的找到自己想要的表。
  3. 减少数据重复计算:规划数据分层,有条件的公司可以做数据中台,提炼出通用性的中间表,减少重复计算。
  4. 复杂问题简单化:将一个需要关联多个业务表才能产出结果的业务逻辑,分成多步计算,这样可以将复杂的问题简单化,这样当每一层数据出问题或者修改业务逻辑时,不用修复所有的数据,只需要在本层以及下级依赖中进行相关操作。
  5. 数据脱敏:在数据的最原始层对相关的业务数据进行数据脱敏,这样后续的依赖的数据都已经做了脱敏操作,必须关键数据暴露。
  6. 便于处理业务的变化:随着业务的变化,只需要调整底层的数据,数据中台、数据集市等应用型层级对业务调整0感知。


三、分层的价值

1.清晰的数据组织形式【易维护】

数据仓库拥有得天独厚的数据组织形式,能够提供非常完善的数据体系,数据结构,清晰的数据分类和分层机制。所有数据在进入数据仓库之前,需要做数据清晰、数据规范化、数据过滤等操作,避免原始数据的杂乱无章。后续在数据中台中,以清晰的数据脉络和数据主题对外提供简单一致性查询服务。


2.高效率数据查询【时间短】

数据仓库合理的分层大大缩减了数据访问时间,在数据仓库体系中,建立一个合理的数据中台,数据中台作为一个按业务场景分层的数据集合,所有信息都可以从数据中台出。一旦数据中台建设完毕,数据可以按照数据血缘关系初步生成。从数据应用角度来看,使用数据中台去建立数据集市可以大大提高查询效率,因此数据中台利于实现复杂的业务需求,提高数据统计的效率。


3.保证数据一致性【指标一致】

良好的数据中台,能保证数据统一由数据中台出,方便构建合理的指标库(通过版本、规则责任人等信息构建一致性的指标库),以保证公司内部核心指标的一致性。


4.数据生命周期管理【节省资源】

通过合理的数据仓库分层,只需要确保底层的ODS保留历史全量数据,其他层级数据可以根据重要程度,占用空间大小等诸多因素合理划分数据中间表的生命周期。


四、成本分摊

通常情况下,每个大型互联网公司都会由大数据部门统一管理数据仓库,大数据部门只是负责管理数据,并不是数据的所有者。在数据暴增的互联网时代,每天都有大量的日志入库,对数据进行合理的分层和主题划分,能够清晰的明确各个业务团队的数据占用硬盘情况,方便评估每条业务线每年的数据增幅;在后期申请服务器资源时,合理的把成本分摊到各个业务方。方便公司机器成本分摊。


分享到:


相關文章: