新闻中心
专业的数据管理基础设施及服务供应商
数仓为何需要分层建设?怎么分?
发布日期:
2024-03-22

随着信息技术的迅猛发展,数据量呈爆炸式增长,如何高效管理和利用这些数据成为各行业决策支持的关键。数据仓库作为数据存储、处理和分析的核心平台,其重要性日益凸显。而数据仓库的分层建设,则是提升数据仓库效能、优化数据处理流程的重要保障。



为什么需要数仓分层


数仓一般是用来保存大量历史数据的,这些数据可能是业务数据,也可能是日志数据。由于数据量级很大,如果直接查询数仓中的原始数据会造成sql运行很慢,甚至跑不出来结果或者报错。


而分层要做的就是对原始数据重新做归纳整理,在不同层级对数据或者指标做不同粒度的抽象。经过分层后,同一个指标可能在不同层的数据中都有体现,看似重复,实则每个层级中指标的粒度不完全一致,为用户进行数据管理带来6大价值点:


数据结构清晰化:每一个数据分层都有它的作用域,在使用表的时候能更方便地定位和理解。


数据关系条理化:源系统间存在复杂的数据关系,当同时存在多个系统时,取数该如何决策呢?数据仓库会对相同主题的数据进行统一建模,把复杂的数据关系梳理成条理清晰的数据模型,就可避免上述问题了。


数据血缘白盒化:简单理解就是我们最终给业务呈现的是能直接使用的业务表,但是它的来源有很多,如果有一张来源表出问题,我们能够快速准确地定位到问题,清楚它的危害范围,并加以改正。


数据复用最大化:规范数据的分层,能够满足不同使用场景和数据粒度的需求,极大减少重复计算。通过汇总层的引入,避免了下游逻辑的重复计算,节省了开发时间和精力,减少了不必要的数据冗余,实现计算结果复用,存储和计算成本降低。


数据问题简单化:将复杂任务分解成多个步骤来完成,每层只处理单一的步骤,保障数据的准确性,在数据出现问题后,也只需从有问题的步骤开始修复。对于使用者而言,将数据按照层次结构组织可以优化查询路径,减少数据扫描和查询时间,提高查询性能。


业务影响最小化:当源业务系统的业务规则发生变化时,只需调整相应层次的数据处理逻辑,而无需对整个数据仓库进行重构,降低维护成本,提高数据稳定性和连续性,加强数据仓库的可扩展性。



常见数仓分层方式


在实际的工作中,我们都希望自己的数据能够有序流转,设计者和使用者能够清晰地知道数据的全生命周期。优秀可靠的数仓体系,需要明晰良好的数据分层结构。合理的分层,能够使数据体系更加清晰,让复杂问题得以简化。那么常见的数仓分层方式有哪些?每一层的原则又怎么定义呢?下面给大家讲讲当前较为常见的数仓分层方式:



  • 操作数据存储层(ods):存储源系统中的数据,主要用于数据采集、清洗和转换等处理,保持数据原貌。

  • 维度数据存储层(dim):存储数据仓库中的维度信息,如客户维度、时间维度等。通常采用维度建模方式,如星型模型或雪花模型。

  • 数据仓库存储层(dwd/dw/dws):存储数据仓库中的事实表,是数据仓库的核心存储层。可以根据业务需求进一步细分为明细层、轻度汇总层等。

  • 中间结果数据存储层(ids/tmp):存储etl过程中的中间结果,如数据清洗、数据转换和数据计算等临时数据。

  • 数据集市存储层(dm/ads):存储面向特定业务领域的数据集市或应用层数据,主要用于数据分析和报表展示等。




希嘉数据资源中心数据架构方案



数仓在建设过程中,对数据的组织管理上,不仅要根据业务进行纵向的主题域划分,还需要横向的数仓分层规范。优秀的分层设计是项目建设成功的核心要素,让数据易理解和高复用是分层的核心目标。


希嘉结合多年的数据治理和数仓实施经验,综合当前市场数字化转型不断深入的需求,提出了“做精核心数据仓库,开展场景数据服务”新主张,推出了希嘉数据资源中心数据架构方案。该建设方案通过 ods-dwd-dws-ads 的架构完成数据抽取、清洗、转义、分类、重组、合并、拆分、统计等,使大数据得到高性能、低成本、高效率、高质量的使用,为企业级客户构建数字化新基座。


希嘉数仓架构图


ods(数据贴源层):存储来自多个业务系统、前端埋点、爬虫获取等的一系列数据源的数据。希嘉认为,ods层作为最基础的一层同时也是最重要的,如同大厦地基,时刻影响着楼层的稳定性。为此,希嘉以“应采尽采为”原则,保障结构化数据、非结构化数据的采入,最大限度的保存原始数据,完成数据积存。


dwd(数据明细层):与原表保持同一粒度的基础上根据业务过程对ods的数据进行去除脏数据,按照业务过程对表进行归类和关联,经过etl得到与业务过程相对应的事实表。希嘉在dwd层以“一数一源”为原则,解析数据血缘、理清数据资产,实现问题可追溯、漏洞可填补,实现数据从采集、治理、管理到最终发布的全过程白盒化。


dws(数据服务层):把dwd中的表根据事实按照更高的维度进行上卷的聚合操作,得到在某一维度或者多个维度上的汇总数据或指标。在越来越深入的数据管理和服务项目中,希嘉发现 ods-dwd-ads 数据仓库架构面对复杂的业务场景,会出现计算资源混乱和浪费的问题,同时也是烟囱式开发的根源。希嘉针对复杂的业务场景,以“数据共享”为原则,在增加的dws层中抽象出一些通用的维度(例如用户id、性别、时间等),并根据这些维度进行统计,让使用者查询速度快、获取数据易,使用起来更舒适。


ads(数据应用层):存放数据产品个性化的统计指标数据,报表数据。通常根据业务需求,提供数据产品和数据分析需使用的数据。希嘉在ads层以“应用为王”为原则,为某一特定业务需求而建立,基于某一个特定主题或业务领域建模,满足该领域的数据分析和查询需求。


希嘉认为数仓分层的目的是让数据更规范、清晰更易用,而不是为了分层而去分层,所以遵循因实制宜的准则,针对客户实际需求,有选择的、定制化的搭建数据资源中心数据架构,满足客户各类型的运用和分析需求,实现高效数字化转型。



小 结


希嘉深知数据存储并不是数仓建设的最终目的地,所以不断探索和迭代数仓分层架构,旨在降低数据使用门槛,提高数据使用体验,为企业级客户提供易于操作管理的数字化新基座,帮助客户更敏捷的创新业务,更准确的洞察业务,加速释放数据价值。