阿里云实时数仓
自建大数据集群往往复杂、难维护、部署成本高,借助阿里云现有的产品生态体系可以绕开这些问题。这里记录一套基于阿里云托管产品搭建实时数仓的方案,按需开通对应产品即可满足业务需求。
面临的痛点
1)底层数据库无法承载海量数据。随着企业发展,10T、100T 乃至 PB、EB 级的数据量既存不下,也无法支撑快速查询响应、数据分析和数据挖掘等工作。
2)实时计算性能存在不足。需要可靠的计算引擎进行毫秒级实时计算,并且数据质量要可靠、可控、可遥测。
3)数据模型调整效率不够快。不能灵活地调整数据模型结构,难以快速支撑业务场景的报表需求。
应用场景
实时数仓
总体数据开发流程:

链路概括起来是:数据拉取 -> 数据缓冲 -> 实时计算 -> 下沉落库。

组件选型
Flink
阿里云全托管的 Flink 实时计算引擎,免去了企业自建 Yarn、Flink 等节点以及繁琐的配置工作。它主要负责处理 DataHub 消息总线中的业务数据,按数据的业务场景把计算结果合理下发到后续链路。依托阿里云生态,元数据管理也更加便利。
DataHub
DataHub 的作用相当于数据缓冲层,为实时数据流提供高性能的存储与流传输。Flink 计算中途产生的部分 DWD、DWS 层临时数据以及下游数据,都经由它做任务转发与存储,起到消息总线的作用。topic 单日读写可达 T 级数据量,数据流转高效、稳定。这个组件同样是全托管的,无需关注节点数量。
Hologres
实时数仓Hologres - 大数据交互式分析 – 分析服务一体化
Flink 计算完成之后,对应层级的数据输出下沉到 Hologres 数仓中。Hologres 支持行存、列存以及按字段匹配的分区存储,解决海量数据存储问题,并实现了 PB 级数据的亚秒级分析。Hologres 的存储使用阿里自研的 Pangu 分布式文件系统(类似 HDFS),本身架构属于大数据数仓设计体系,整体采用 Storage Disaggregation(存储计算分离)架构,计算节点可以横向扩展,提高并行计算能力,解决海量数据查询的时效问题。

处理流程

数仓分层

在大数据领域,ODS、DWD、DWS 和 ADS 是常见的数据分层概念,用于组织和管理数据。它们在数据处理和使用方面各有分工。
- ODS(Operational Data Store,运营数据存储层):面向操作性业务的数据存储层,通常用于存储源系统的原始数据,保留数据的完整性和详细性。ODS 层的主要目标是支持实时或准实时的操作性需求,例如在线交易处理和实时查询。这一层的数据通常不做大规模加工和计算,而是直接用于操作性业务。
- DWD(Data Warehouse Detail,数据仓库明细层):面向数据仓库的明细数据层,存储经过清洗、集成和转换的数据,通常是面向主题的、可查询的数据。DWD 层的数据经过 ETL(抽取、转换和加载)处理,用于支持数据分析、报表和决策支持等任务,具有较高的质量和一致性,通常以事实表和维度表的形式组织。
- DWS(Data Warehouse Summary,数据仓库汇总层):存储经过聚合、汇总和预计算的数据,提供更高层次的数据摘要和分析性能。DWS 层的数据通常以汇总表或预计算的指标为主,用于支持复杂的数据分析、数据挖掘和商业智能需求。
- ADS(Application Data Service,应用数据服务层):面向应用程序的数据存储层,存储经过进一步加工、计算和优化的数据。ADS 层的数据通常是针对具体应用的数据视图或数据集,经过适配和优化,以提供更高效的数据访问和处理能力。
概括来说:ODS 层服务于操作性业务,保留原始数据的完整性;DWD 层提供清洗、集成、转换后的可查询数据;DWS 层做汇总和预计算,换取更高的查询性能;ADS 层则面向具体应用,提供加工优化后的数据。
这种分层设计有几个好处:
- 数据处理和管理的分离:把数据分为不同层次,处理和管理的责任也随之分开。DWD 层负责原始数据的提取、清洗和集成,DWS 层负责聚合和汇总,ADS 层提供面向应用的数据服务,数据处理因此模块化、更灵活。
- 数据质量和一致性:DWD 层保留原始数据的完整性和细节,可用于数据质量分析和数据溯源;DWS 层提供聚合汇总后的数据,查询性能更好;ADS 层保证数据在不同应用场景下的一致性和准确性。
- 查询性能和应用开发效率:通过汇总和预计算,DWS 层能加快数据分析和决策过程;ADS 层提供面向应用的数据服务和接口,简化应用开发,提高开发效率。
小结
这套方案的核心思路是把集群运维交给云厂商:DataHub 负责数据缓冲与流转,Flink 负责实时计算,Hologres 承接存储与分析,全链路托管,不用自己维护节点。配合 ODS/DWD/DWS/ADS 的分层设计,各层数据职责清晰,查询性能和报表开发效率都有保障。对于不想投入人力自建大数据集群的团队,这是一条务实的路径。
评论 / COMMENTS