查看原文
其他

大厂8年老司机漫谈数仓架构

涤生-宇哥 涤生大数据
2024-12-05
1.数据仓库概念
数据仓库的概念是于 90 年代由 Bill Inmon 提出, 当时的背景是传统的 OLTP 数据库无法很好的支持长周期分析决策场景,所以数据仓库概念的 4 个核心点,我们要结合着 OLTP 数据库当时的状态来对比理解。
面向主题的:数据仓库的数据组织方式与 OLTP 面向事务处理不同。因为数据仓库是面向分析决策的,所以数据经常按分析场景或者是分析对象等主题形式来组织。
集成的:对于数据仓库来说,经常需要去集合多个分散的、异构的数据源,做一些数据清洗等 ETL 处理,整合成一块数据仓库,OLTP 则不需要做类似的集成操作。
相对稳定的:OLTP 数据库一般都是面向业务的,它主要的作用是把当前的业务状态精准的反映出来,所以 OLTP 数据库需要支持大量的增、删、改的操作。但是对于数据仓库来说,只要是入仓存下来的数据,一般使用场景都是查询,因此数据是相对稳定的。
反映历史变化:数据仓库是反映历史变化的数据集合,可以理解成它会将历史的一些数据的快照存下来。而对于 OLTP 数据库来说,只要反映当时的最新的状态就可以了。
2.数据仓库演进

数据仓库的发展史是一个不断演进的过程,它与技术进步和业务需求的变化紧密相关。从传统的关系型数据库到现代的大数据平台,数据仓库经历了多个阶段的变革。以下是TB传统数据仓库、MPP架构数仓以及Hadoop数仓的发展史概述:

1)传统数据仓库(Oracle, MySQL, PostgreSQL)
在数据仓库的早期阶段,企业主要依赖于关系型数据库系统,如Oracle、MySQL和PostgreSQL,来存储和管理数据。这些系统提供了强大的事务处理能力和数据一致性保证,适合处理结构化数据。然而,随着数据量的增长和分析需求的提高,传统关系型数据库开始面临性能瓶颈和扩展性限制。

2)MPP架构数仓(以Greenplum为例)
为了解决传统关系型数据库的局限性,MPP(Massively Parallel Processing)架构的数仓系统应运而生。Greenplum是一个基于PostgreSQL的MPP数据仓库平台,它通过在多个节点上并行处理数据来提高查询性能和数据处理能力。MPP架构允许数据和计算在多个节点上分布,从而显著提高了数据仓库的查询速度和分析能力。这种架构特别适合数据密集型和计算密集型的应用场景。

3)Hadoop数仓
随着互联网和大数据技术的发展,Hadoop成为了处理大规模数据集的主流平台。Hadoop数仓基于Hadoop分布式文件系统(HDFS)和MapReduce计算框架,能够存储和处理PB级别的数据。Hadoop生态系统中包含了多种工具和组件,如Hive、Pig、HBase等,它们为数据仓库提供了丰富的数据处理和分析能力。Hadoop数仓的出现标志着数据仓库进入了大数据时代,能够处理更加复杂和多样化的数据类型。
3.数据仓库架构对比
针对上述提到的几类数据仓库架构,我们可以从多个维度进行比较和分析,以便更好地理解它们之间的区别和特点。
1 产品特点
企业在建设数据仓库时,需要根据数据量、业务需求、技术能力和预算等因素来选择合适的数据仓库架构。以下是结合企业实际情况,对三种数仓架构产品特点的深度分析:

1)传统关系型数据仓库(如Oracle, MySQL, PostgreSQL)

● 成熟稳定:传统关系型数据库经过长期的发展和市场验证,拥有成熟的技术、稳定的性能和广泛的用户基础。

● 事务支持:提供强大的事务支持,确保数据的一致性和完整性,适合需要高事务处理的场景,如金融等行业。

● 易用性:SQL语言标准化,易于学习和使用。大多数企业员工和开发人员对SQL有较深的理解和使用经验。

● 数据模型:基于关系模型,适用于结构化数据的存储和查询,对于复杂的数据关系和多维数据分析有很好的支持。

● 商业支持:商业数据库通常提供专业的技术支持和服务,适合对服务水平要求较高的企业。

● 成本:oracle软件费用+实施费用+服务器费用,同等数据量的数据场景下,费用成本较高

● 数据处理速度:处理速度和硬件设备配置有关,无法应对海量数据场景

● 数据应用场景:相对单一,主要是以分析决策为主的bi报表应用为主

● 性能优化:大致上的优化原理分为:数据分块的存放,便于数据的转储和管理,二是中间处理优化,提升数据提供的速度。
适用情况: 适用于数据规模相对较小、数据结构稳定、对事务处理要求高的企
业环境。对于报表生成、BI分析等常规业务场景,传统数据仓库可以很好地满
足需求。
2)MPP架构数据仓库(如Greenplum)

● 高性能计算:MPP架构通过在多个节点上并行处理数据,显著提高了查询速度和数据处理能力,适合处理大规模数据集和复杂查询。

● 弹性扩展:MPP数据仓库支持水平扩展,可以通过增加节点来提升系统性能和存储容量,适应数据量的快速增长。

● 复杂查询:适合执行复杂的数据分析和数据挖掘任务,能够快速响应用户的查询需求,提供实时或近实时的数据分析结果。

● 成本效益:GP产品免费,基本每2-3t一个节点,硬件配置要求不高,整体成本要求不高。虽然初期投资可能较高,但随着数据量的增长,MPP架构的扩展性和性能优势可以带来更好的成本效益。

● 数据处理速度:相比于传统数仓,速度能提升几倍至几十倍

● 性能优化:模型优化,借助于执行计划,也可以借助数据加工方式,提高已加工的模型复用性提升。
适用情况: 适合数据量大、需要高性能分析和报告的大型企业。特别适用于数
据仓库和商业智能(BI)应用,如零售、医疗、政府等行业,这些行业需要对
大量数据进行快速分析以支持决策制定。
3)Hadoop数据仓库

● 大数据支持:Hadoop数据仓库基于分布式架构,能够存储和处理PB级别的大数据集,适合处理互联网级别的大规模数据。

● 多样性数据处理:支持结构化、半结构化和非结构化数据的处理,适用于多样化数据源的集成和分析。

● 成本效益:Hadoop本身是开源的,可以节省软件许可费用。此外,Hadoop可以在普通的硬件上运行,降低了硬件成本。

● 生态系统丰富:Hadoop生态系统包含了多种工具和组件,如Hive、Pig、HBase等,为数据处理、分析和可视化提供了丰富的选择。

● 灵活性和可扩展性:Hadoop架构的灵活性和可扩展性使其能够适应不断变化的业务需求和技术发展。

● 数据处理速度:相比于传统数仓,速度能提升几倍至几十倍,但是由于Hadoop架构的灵活性和可扩展性,瓶颈阈值要高于MPP架构数据仓库很多

● 数据应用场景:借助于hadoop生态的多样性,能够支撑包含bi报表,用户画像,数据服务,营销,推荐等多样化数据应用

● 性能优化:除了传统数仓和gp数仓的优化措施爱,还可以对hadoop底层的性能甚至硬件,虚拟机调优。
总结来说,企业在选择数据仓库架构时,需要综合考虑自身的业务需求、数据
特性、技术能力和成本预算。传统关系型数据仓库适合结构化数据处理和高事
务场景;MPP架构数据仓库适合大规模数据集的高性能分析;Hadoop数据仓
库适合大数据环境下的多样化数据处理和分析。通过合理选择和应用这些架
构,企业可以构建出满足自身需求的高效、可靠和可扩展的数据仓库系统。
4.Hadoop数据仓库的优势

想必很多同学会有一个疑问,为什么现在传统数仓或者mp架构的数据仓库很少见了。现在我们就以互联网金融信贷公司为例,讲讲搭建基于Hadoop的大数据数据仓库的优势。这种数据仓库的建立不仅能够提升公司的数据处理能力,还能够在业务发展、风险管理、客户服务、决策支持等多个方面带来显著的优势。
1 运营视角
1)提升客户体验
个性化服务:通过分析客户的交易数据、行为模式和偏好,互联网金融信贷公司能够提供更加个性化的金融产品和服务,满足客户的特定需求。
精准营销:利用大数据分析,公司可以识别潜在的高价值客户群体,实施精准营销策略,提高转化率和客户忠诚度。

2)优化产品策略

产品创新:通过分析市场趋势和客户需求,公司能够快速推出创新的金融产品,如基于数据分析的定制化贷款方案。

服务优化:通过实时监控客户反馈和市场动态,公司能够及时调整和优化现有产品,提高服务质量。

3)数据挖掘与模型建立
基于Hadoop的数据仓库可以支持各种数据挖掘和机器学习算法的应用,帮助公司挖掘隐藏在海量数据中的规律和趋势,构建用户画像模型等,提升信贷审批效率和精准度。

4) 决策支持

决策效率:Hadoop数据仓库提供的数据分析和报告能够加速决策过程,提高决策效率。

战略规划:通过对市场趋势、客户行为和业务性能的深入分析,公司能够制定更有效的长期战略规划。
2 风控视角
1)信用风险评估:利用大数据分析,通过分析用户的交易记录、还款历史和社交网络行为等数据,Hadoop可以帮助信贷公司构建更为精准的信用评分模型,预测客户的违约概率。
2)欺诈检测:通过实时分析交易模式和行为数据,Hadoop数据仓库能够帮助公司及时发现和预防欺诈行为。

3)基于Hadoop的大数据数据仓库为互联网金融信贷公司提供了一个高效、低成本、灵活的风控集市建设方案。通过利用Hadoop的分布式计算和存储能力,公司能够更好地管理海量数据,提升风险管理效率,同时降低成本和提高数据安全性。
3 技术视角
1)高效数据处理

Hadoop的分布式特性使得数据仓库能够同时处海量数据,这对于互联网金融信贷公司来说是至关重要的,因为它们每天需要处理海量的交易数据。

高性能计算:Hadoop的高性能计算能力可以满足复杂的数据分析需求,如信用评分、风险预测等。

2) 可扩展性和灵活性

水平扩展:随着数据量的增长,Hadoop数据仓库可以通过增加节点来扩展,而无需更换现有硬件,这降低了成本并提高了系统的可扩展性。

灵活的数据集成:Hadoop能够与多种数据源集成,包括结构化和非结构化数据,这使得互联网金融信贷公司能够整合来自不同渠道的数据。

3) 全面数据收集与整合
互联网金融信贷公司数据通常来自于多个来源,包括内部系统,外部数据提供商或者第三方数据,通过Hadoop平台,可以收集和整合各种来源的数据,包括用户信息、交易记录、风险评估等多方面数据,实现全面的数据收集和整合,有助于建立更加完整、全面的客户画像。

4) 实时数据处理与分析
Hadoop提供了高效的数据处理和分析能力,可以实现对大规模数据的实时处理和分析,使得公司能够更加及时地了解客户需求、市场趋势和风险情况,从而做出更加精准的业务决策。又比如通过实时监控用户行为和交易模式,可以快速识别潜在的风险,可以及时的采取措施进行干预和管理。


涤生大数据往期精彩推荐


1.企业数仓DQC数据质量管理实践篇

2.企业数据治理实战总结--数仓面试必备

3.OneData理论案例实战—企业级数仓业务过程

4.中大厂数仓模型规范与度量指标有哪些?

5.手把手教你搭建用户画像系统(入门篇上)

6.手把手教你搭建用户画像系统(入门篇下)

7.SQL优化之诊断篇:快速定位生产性能问题实践

8.SQL之优化篇:一文搞懂如何优化线上任务性能,增效降本!

9.新能源趋势下一个简单的数仓项目,助力理解数仓模型

10.基于FlinkSQL +Hbase在O2O场景营销域实时数仓的实践

11.开发实战角度:distinct实现原理及具体优化总结

12.涤生大数据实战:基于Flink+ODPS历史累计计算项目分析与优化(一)

13.涤生大数据实战:基于Flink+ODPS历史累计计算项目分析与优化(二)

14.5分钟了解实时车联网,车联网(IoV)OLAP 解决方案是怎样的?

15.企业级Apache Kafka集群策略:Kakfa最佳实践总结

16.玩转Spark小文件合并与文件读写提交机制

17.一文详解Spark内存模型原理,面试轻松搞定



继续滑动看下一个
涤生大数据
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存