写点什么

(四)收官篇!从分层架构到数据湖仓架构系列:数据服务层和数据应用层及湖仓技术趋势小结

作者:白鲸开源


《新兴数据湖仓设计与实践手册·从分层架构到数据湖仓架构设计(2025 年)》 系列文章将聚焦从数据仓库分层到数据湖仓架构的设计与实践。手册将阐述数据仓库分层的核心价值、常见分层类型,详解分层下的 ETL 架构及数据转换环节,介绍数据仓库分层对应的技术架构,并以贴源层(ODS)、数据仓库层(DW)、数据服务层(DWS)为例,深入剖析数湖仓分层设计,最后探讨数据仓库技术趋势并进行小结。


本文为系列文章末篇,将详细剖析数据仓库分层下的数据服务层和数据应用层设计,并对当下湖仓技术以及未来技术趋势进行系统的总结。


👉上文回顾:

《(一)从分层架构到数据湖仓架构:数据仓库分层的概念与设计》

(二)从分层架构到数据湖仓架构:数据仓库分层下的技术架构与举例

(三)从分层架构到数据湖仓架构系列:数据仓库分层之贴源层和数据仓库层设计

数据服务层设计(DWS,Data Warehouse Service)- 汇总层宽表


 数据服务层(DWS)是基于数据明细层(DWD)构建的汇总层,面向特定业务主题,以宽表形式组织数据,支持分析和业务查询。该层的数据根据不同的主题和分析需求,通过对明细数据进行轻度聚合而成,减少维度数量,以便进行快速、高效的查询。

设计理念与结构

DWS 层通过将 DWD 层的明细数据按主题域(如订单、用户、商品)进行汇总,为分析场景提供预处理的数据支持。数据粒度由细粒度提升至汇总粒度,以更适合多场景的业务查询需求。例如,按交易来源或类型对交易数据进行汇总,可以快速生成每天各主题的行为统计,如商品复购率、用户活跃度等。

特点和用途

  • 面向主题:DWS 层按业务主题划分数据,如销售、库存、客户等,生成覆盖多个指标的宽表。每张宽表通常包含较多字段,支持复杂的业务分析与数据分发。

  • 少表宽表设计:DWS 层表数量相对较少,每张宽表涵盖多个业务内容,减少表关联,提升 OLAP 分析和查询性能。

  • 一致性整合:通过整合多个中间层数据(如 DWD 层),形成一致的企业级汇总事实表(如用户事实表、渠道事实表、终端事实表等),保证数据口径的一致性。

数据聚合与汇总示例

  • 按天轻度汇总:基于 DWD 数据,对各主题对象(如购买行为)按天进行统计。例如,统计某商品的日复购率或销售额,方便后续的时间序列分析。

  • 主题宽表示例:按照业务主题,生成具有较多字段的宽表,用于业务查询、OLAP 分析等。例如,dws_sales_summary 宽表可包含销售额、复购率、用户地域分布等字段。

  • 多层次分析:以不同维度进行汇总,如最近一天特定类目(如厨具)商品在各省的销售总额,或者 Top 10 商品的销售额,支持灵活的多维分析。

场景应用与效率提升

通过汇总层的预聚合,DWS 层可以满足 80%的常见业务分析需求,减少直接查询 ODS 层的计算压力。例如,按 7 天、30 天、90 天等时间窗口的用户行为分析在 DWS 层中可以更加高效。


  • 实时分析支持:对 DWS 层数据进行轻度汇总,有助于实现实时或准实时的用户画像、销售趋势分析等需求。

  • 典型分析场景:如用户在不同时间段登录的 IP 及购买商品数量、各地区的购买力分布等。这些分析支持业务决策和营销策略调整。

命名和分区规范

  • 表命名规范:建议 DWS 层表名以 dws_主题_宽表描述命名,如 dws_sales_summary 或 dws_user_activity.

  • 分区设计:通常按天或周创建分区,便于时间序列查询;若无时间属性,则根据业务需求自定义分区字段。


通过 DWS 层的数据汇总与主题划分,企业可以在汇总宽表的基础上,迅速提取核心业务指标,为上层业务查询、报表和 OLAP 分析提供高效、结构化的数据支持。

数据服务层(DWS)职责与设计原则

DWS 层(数据汇总层)基于 DWD 层的明细数据,按业务主题对数据进行聚合,以宽表形式存储,支持业务查询、OLAP 分析和数据分发。DWS 层将多个 DWD 层表中分散的数据进行汇总,按主题整合到单一宽表中,例如用户、订单、商品、物流等。每张宽表涵盖相关主题的多个维度和指标字段,以满足业务方的多维度分析需求。

DWS 层的核心任务

  1. 主题汇总将 DWD 层的明细数据按照业务主题进行聚合,创建单独的宽表。例如,在“用户”主题下,用户注册信息、收货地址和征信数据等内容可以整合到一张宽表中,方便后续的数据查询和分析。

  2. 主题建模针对特定业务主题,如流量、订单、用户,构建数据模型,将相关数据从 DWD 层抽取并聚合。DWS 层提供的宽表通常按时间分层,如按天、月汇总的流量会话、每日新增用户、每日活跃用户等。

  3. 维度汇总提前将查询需求中的常用维度数据进行聚合处理。例如,将营销渠道、用户来源等维度数据提前整合,简化后续的查询逻辑。

设计规范

  1. 宽表设计 DWS 层通常为每个主题提供 1 至 3 张宽表,宽表覆盖多个业务指标,能够满足 70%以上的业务需求。典型的宽表包括用户行为宽表、商品宽表、物流宽表和售后宽表等。其中,用户行为宽表是字段最丰富的,可能包含 60 至 200 个字段,以支持更全面的用户分析。

  2. 命名和分区规范

  3. 命名:DWS 层表名以 dws_开头,后接业务主题和时间周期标识(如_1d 代表每日汇总,_1w 代表每周汇总)。

  4. 分区:通常按天或小时创建分区(如_hh 表示小时分区),如无时间维度,则根据业务逻辑选择分区字段。

  5. 示例命名:

  6. dws_asale_trd_byr_subpay_1d:按买家粒度的交易分阶段付款每日汇总。

  7. dws_asale_trd_itm_slr_hh:按卖家粒度的商品小时汇总。

  8. 数据存储 DWS 层数据采用 Impala 内表和 Parquet 文件格式存储,具备高效的查询性能。一般以覆盖旧表的方式更新数据,定期生成历史快照用于数据存档和溯源分析。

典型的 DWS 宽表设计示例

  • 用户维度宽表示例



表注释:每日购买行为


分区字段:dt(STRING 类型)


存储格式:PARQUET


存储路径:/warehouse/gmall/dws/dws_sale_detail_daycount/


表属性:"parquet.compression" = "lzo"



  • 商品维度宽表示例



表注释:商品粒度交易最近一天汇总事实表


分区字段:ds(STRING 类型,注释为“分区字段 YYYYMMDD”)


生命周期:36000

DWS 层的作用与数据集市的关系

DWS 层通常被称为数据集市层,因其按业务主题对数据进行预处理和汇总,形成可供业务直接使用的宽表。如果 DWS 层提供的数据直接用于业务应用,则其可以被视为数据集市。DWS 层中的数据集市宽表适合业务用户查询、生成报表、支持 OLAP 分析等。


DWS 层是数据仓库的重要组成部分,提供了一个结构化、按主题分层的数据视图,通过提前汇总和聚合数据,DWS 层有效降低了查询和计算成本,是数据仓库面向业务的核心数据服务层。

数据应用层设计(ADS,Application Data Store)


数据应用层(ADS)用于存储个性化的统计指标和报表数据,为数据产品、业务应用和数据分析提供专门的数据支持。ADS 层的数据是高度汇总或定制化的数据集,覆盖流量、订单、用户等主题,以宽表形式存储,支持多维分析、查询、数据分发等。该层的数据粒度通常较粗,涵盖汇总数据和部分重要的明细数据,满足用户对近期数据的分析需求。

ADS 层的核心功能

  1. 应用场景定制在 DWS 层基础上,面向应用场景进一步聚合数据,生成高定制化的宽表(如用户行为、订单趋势)。这些数据可以直接供业务系统调用或导入至应用系统(如 MySQL、Redis、Druid)中,用于前端展示、实时查询和分析。

  2. 满足部门需求 ADS 层的数据按业务部门需求进行划分,仅包含与部门分析相关的数据子集。例如,流量数据集市提供流量分析指标,用户数据集市提供活跃度、转化率等用户行为数据,为业务方提供更直观的分析数据。

  3. 数据集市和宽表支持数据集市在 ADS 层按主题划分,如流量、订单、用户等,生成字段丰富的宽表。这些宽表汇总了各类业务指标和维度,支持多种分析需求,广泛用于 OLAP 分析、KPI 展示和业务监控。

数据生成和存储方式

  • 数据生成 ADS 层的数据源于 DWD 和 DWS 层,按业务需求从这些基础层数据中抽取并加工。ADS 层表的数据更新频率依赖于业务需求,可以是每日或每小时刷新。

  • 存储与分区使用 Impala 内表和 Parquet 格式存储 ADS 数据,按天或业务字段进行分区,以优化查询效率。对于没有时间属性的表,根据具体业务选择适当的分区字段。

  • 表命名规范库名暂定为 ads,表名格式建议为 ads_主题_业务表名,按业务需求进行定制。

数据应用层示例

  • 用户行为宽表用于存储用户的互动、消费等行为数据,包含各类用户活动信息,如评论、点赞、收藏、分享、GMV 等字段。每张宽表大约包含 60-200 个字段,满足多维度的用户分析需求。  



分区字段:dt(STRING 类型)


存储格式:PARQUET


  • 商品销售汇总表汇总商品的销售数据,按日或更细粒度进行存储,为分析商品的销售趋势、库存管理等提供支持。


常用分析指标与应用场景

  1. 用户活跃度

  2. 日活、周活、月活:统计用户的活跃频率,通过设备 ID 计算不同时间范围内的活跃用户。

  3. 留存率:统计新增用户的留存情况,计算 1 天、7 天等时间范围内的用户留存率。

  4. 用户增长与回流

  5. 新增用户:基于每日新增用户的统计。

  6. 回流用户:分析在一段时间内回归活跃的用户数量。

  7. 用户转化与行为分析

  8. 转化率:从商品详情到下单、支付的转化率。

  9. 复购率:按用户或商品的复购情况统计,支持商品或品类的复购趋势分析。

  10. 商品分析

  11. 销售额和 GMV:按商品或品类计算销售额和 GMV,分析热销产品。

  12. Top N 商品:计算销售排名前 N 的商品,支持流行度和消费偏好的分析。

  13. 用户留存与流失分析

  14. 沉默用户:统计登录时间为 7 天前且登录频率极低的用户。

  15. 流失用户:识别近期未登录或活跃度降低的用户,便于后续的用户运营和召回策略。

数据应用层的角色与更新策略

  • 应用层角色 ADS 层主要面向业务方和数据产品团队,数据经过多层处理和汇总后直接支持报表、KPI、OLAP 分析和仪表盘等应用。作为面向最终用户的数据集市,ADS 层能够快速响应业务需求。

  • 更新方式旧数据通常采用覆盖更新,按业务需求定期刷新,确保数据时效性。

临时表支持

  • TMP 层数据处理过程中常需临时表以支持复杂计算,ADS 层提供独立的 TMP 层(DW TMP)用于存储这些中间计算结果,避免主数据表的反复更新,提高数据处理的效率和稳定性。通过 ADS 层的数据集市和宽表设计,企业能够更灵活地支持多种数据产品和分析需求,为业务增长、用户行为分析、市场洞察等提供强有力的数据支撑。

层次调用规范

在数据仓库分层架构中,必须遵循严格的调用规范,以确保数据流动的单向性,避免复杂的依赖关系和反向调用。


  • 禁止反向调用:下层数据不可调用上层数据,保持数据流向的单向性和清晰性。

  • 调用规范:

  • oODS 层:仅允许被 DWD 层调用。

  • oDWD 层:允许被 DWS 和 ADS 层调用。

  • oDWS 层:仅允许被 ADS 层调用。

  • oADS 层:可调用 DWD、DWS 及其他 ADS 表,但建议优先使用汇总度更高的数据,以减少数据冗余和性能消耗。

调用路径概述

数据的标准调用路径包括:


  • ODS -> DWD -> DWS -> ADS

  • ODS -> DWD -> ADS

数据仓库技术趋势与小结

数据仓库分层架构为企业构建了高效、稳定的海量数据管理体系,支持数据治理、业务逻辑隔离、数据追踪和复用。通过 ODS、DWD、DWS 和 ADS 的分层设计,数据在逐层传递和加工中实现标准化和清洗,确保了一致性和数据可追溯性。 这一架构不仅提高了数据使用的规范性,还降低了系统耦合,提升了数据共享的便捷性。


  • ODS 层:作为原始数据接入层,ODS 层负责保留细粒度数据,通过 ETL 或 CDC 方式捕获源系统的变更数据,确保数据完整性。

  • DWD 层:标准化数据并进行清洗和脱敏,去除冗余,确保数据一致性,为后续分析和建模提供了基础。

  • DWS 层:将 DWD 数据聚合为符合业务主题的宽表,构建面向主题的数据服务,优化计算性能并促进数据复用。

  • ADS 层:进一步聚合数据,生成高性能、面向应用的宽表,支持数据产品和业务应用场景,如 OLAP 分析、KPI 监控和仪表盘展示。


随着数据规模和数据源的多样化,数据仓库的架构和技术也在不断演进,当前的主要趋势包括:


  1. 实时数据处理与 CDC 技术:传统的批量数据处理已经无法满足现代企业的需求,CDC 技术成为数据实时同步和更新的主流方法,确保数据仓库中数据的实时性。

  2. 数据湖与数据仓库的融合:在成为行业的热门趋势,例如 Data Lakehouse 架构,将数据湖的灵活性与数据仓库的高效分析能力相结合,为企业提供更强的数据管理能力。

  3. DataOps 与自动化数据管理:随着企业对数据管理自动化要求的提高,DataOps 逐渐成为数据管理的核心工具。例如,白鲸开源的 DataOps 工具能够实现从数据采集到数据质量控制的全流程自动化管理。


结合新一代数据湖仓(Hudi、Iceberg、GaussDB、Redshift、Greenplum、Doris、Starrocks、偶数、PieDB、MatrixDB 等)配合白鲸开源的 WhaleStudio 工具,可以快速根据本文的设计实践建立起批流一体的数据湖仓。整体上,无论是湖、仓、实时数仓、都要遵循分层设计架构明确了各层的调用边界,禁止反向调用,确保数据流动顺畅,降低了系统复杂度。


白鲸开源 WhaleStudio 是 ApacheDolphinScheduler 和 Apache SeaTunnel 原班人马打造的商业版数据同步与调度工具,提供功能更多、稳定性更强的商业版本解决用户调度,数据开发、数据同步和 ETL 的问题,目前支持 200+ 种数据库(信创、云、开源、ERP 等)的 ETL 与数据开发,全面替换 Informatica 与 Talend 等工具相应功能,在中信证券等多个行业头部企业都有成功商业版和实施替换案例。


如有意咨询,发送邮件至 service@whaleops.com,或者扫码二维码咨询:



发布于: 57 分钟前阅读数: 7
用户头像

白鲸开源

关注

一家开源原生的DataOps商业公司。 2022-03-18 加入

致力于打造下一代开源原生的DataOps 平台,助力企业在大数据和云时代,智能化地完成多数据源、多云及信创环境的数据集成、调度开发和治理,以提高企业解决数据问题的效率,提升企业分析洞察能力和决策能力。

评论

发布
暂无评论
(四)收官篇!从分层架构到数据湖仓架构系列:数据服务层和数据应用层及湖仓技术趋势小结_大数据_白鲸开源_InfoQ写作社区