电商实时数仓分层与ODS层数据采集解析

需积分: 5 0 下载量 8 浏览量 更新于2024-07-06 1 收藏 2.07MB PDF 举报
"本文主要介绍了电商实时数仓的分层结构以及ODS层数据采集,对比了实时计算与实时数仓的区别,并探讨了离线、实时、即席查询的差异。" 在构建实时数仓的过程中,第1层通常是ODS(Operational Data Store,操作数据存储)层,它负责原始数据的采集。对于电商场景,数据来源广泛,包括日志服务、业务数据等。为了确保时效性,实时计算会直接从数据源采集数据并快速得出结果,但这种做法牺牲了复用性,使得随着需求增加,开发成本会显著上升。 因此,实时数仓引入了分层概念,以提高数据的复用性。通常包括ODS、DWD(Data Warehouse Detail,详细数据层)、DIM(Dimension,维度数据层)、DWM(Data Warehouse Modeling,数据模型层)和DWS(Data Warehouse Service,数据服务层)。ODS层主要存储原始数据,通过工具如Flink CDC从数据源抽取并暂存于Kafka。DWD层对数据进行初步清洗和分流,如按订单、页面访问等分类。DIM层处理维度数据,这些数据常驻HBase,因为它们是不可删除且需要长期存储的,而Kafka不适合作为存储维度数据的平台。DWM层对部分数据进行进一步加工,形成可复用的公用数据。DWS层则通过轻度聚合多个事实数据,生成主题宽表,存储在Clickhouse中,供ADS(Application Data Service,应用数据服务)层使用,ADS通常会根据可视化需求筛选和聚合数据,但不落地存储,直接用于前端展示。 离线计算与实时计算的核心区别在于需求的固定性和时效性。离线计算,如MapReduce,适用于大数据批量处理,输入数据在计算开始前已知且不再变化,适合生成日报等固定需求。而实时计算则强调实效性,适合处理动态变化的数据,满足实时监控和快速响应的需求。此外,即席查询(Ad-Hoc Query)提供临时性的查询需求,工具如Presto以其内存计算速度满足快速查询,而Kylin通过预计算提供多维分析,适用于Hive上的Cube操作。 电商实时数仓通过ODS层的数据采集和多层结构,实现了数据的高效管理和复用,同时结合离线和实时计算,以及即席查询工具,以满足不同场景下的数据分析需求。