实时数仓应用价值(上)
欢迎关注WX公众号:数据运营入表资产化服务
获取更多算法源码材料
2023数据资源入表白皮书,推荐系统源码下载-CSDN博客
浅析研发支出费用化和资本化的区别-CSDN博客
商业银行数据资产估值白皮书,推荐系统源码下载-CSDN博客
用友BIP数据资产入表解决方案白皮书,推荐系统源码下载-CSDN博客
?
一、实时数仓架构解决了什么问题
二、离线数仓如何分层以及每个层级的用途
三、数仓分层的必要性
四、Lambda架构
五、Kappa架构
六、具体五种方案的解析
七、选型建议
八、分享
九、结语&延伸思考
一、实时数仓架构解决了什么问题
传统数据仓库主要处理T+1数据,即今天产生的数据分析结果明天才能看到,这已经无法满足企业对实时数据处理的需求。因此,实时数仓架构应运而生,其能够提供实时数据处理的能力,以满足企业对于数据实时性的迫切需求。
实时数仓架构可以提高数据处理的速度和效率,使企业能够更快地获取数据洞察,从而更好地支持决策和业务运营,为企业提供更好的数据支持。
二、离线数仓如何分层以及每个层级的用途
在介绍实时数仓前,我们先回顾下离线数仓的分层架构,这将对我们后面理解实时数仓架构设计具有很大帮助。
数仓一般分为以下几层:
- ODS层(操作数据层):这一层是数仓的最底层,主要存储原始数据,保持数据原貌不做任何修改,起到备份数据的作用。数据采用压缩,减少磁盘的存储空间。
- DWD层(数据仓库明细层):这一层需要对ODS层的数据按照主题进行加工和划分,构建最细粒度的明细事实表。同时,它需要保持数据的原子性,也就是说每条数据记录都必须有对应的源系统记录。DWD层是构建其他数据层的基础,需要保证其数据质量。
- DWS层(数据仓库汇总层):这一层主要对DWD层的数据进行汇总,以构建更高级别的汇总表。这些汇总表可以提供更快速的数据访问和更高效的数据分析。DWS层的表通常按照不同的主题和维度进行组织,例如时间、地区、产品等。
- ADS层(应用数据服务层):这一层主要提供数据服务和应用功能,例如报表、查询、分析等。它直接支持企业的各种数据应用,如报表制作、决策支持、商业智能等。
三、数仓分层的必要性
数仓分层的必要性主要体现在以下几个方面:
- 清晰数据结构:分层可以使得数据结构更加清晰,每一层都有其特定的作用域,方便用户理解和使用数据。
- 数据血缘追踪:通过分层,可以追踪数据的来源和去向,快速定位问题,并清楚了解问题的危害范围。
- 数据复用,减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少重复计算,避免每个数据开发人员都重新从源系统抽取数据进行加工,节省了用户的开发时间和精力。
- 把复杂问题简单化:通过分层,可以把一个复杂的任务分解成多个步骤来完成,每一层只处理单一的一个步骤,便于维护数据的准确性。
- 屏蔽原始数据和业务的影响:分层可以屏蔽原始数据和业务的影响,提高数据稳定性和连续性。同时,通过规范和屏蔽源头业务系统的复杂性,保证下游数据用户使用数据的便捷和规范。
- 提高数据管理效率:分层使得数据在整个仓库中的流转更为清晰,方便掌握数据的生命周期,每一层负责特定的职责,便于使用者理解使用,提高了数据管理效率。
四、Lambda架构
Lambda架构将数据分为实时数据和离线数据。
针对实时数据使用流式计算引擎进行计算(例如Flink),针对离线数据使用批量计算引擎(例如Spark)计算。然后分别将计算结果存储在不同的存储引擎上对外提供数据服务。
这种架构的优点是离线数据和实时数据各自计算,既能保障实时为业务提供服务,又能保障历史数据的快速分析。它分别结合了离线计算引擎与流式计算引擎二者的优势。
但是有一个缺点是离线数据和实时数据的一致性比较难保障,一般在离线数据产生后会使用离线数据清洗实时数据来保障数据的强一致性。
五、Kappa架构
这种架构将数据源的数据全部转换为流式数据,并将计算统一到流式计算引擎上。
这种方式的特点使架构变得更加简单,但是不足之处是需要保障数据都是实时的数据,如果数据是离线的话也需要转化为流式数据的架构进行数据处理,具体架构可结合这张图来看。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!