传统数仓和大数据数仓的区别是什么?

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 传统数仓和大数据数仓的区别是什么?

这是我的第58篇原创

一个圈里的朋友问,有很多传统数仓的朋友想转型大数据数仓,不知道该怎么办。问我能不能给讲讲课。准备一个课比较费劲,主要是得非常系统的讲。我这样日更,已经把所有的时间都占满了。那我就每天写一点,希望能帮助更多想转型大数据数仓的兄弟们。


概念与容器

为什么先说这个,其实很简单:因为绝大多数人都把这两个概念混为一谈。然后就会出现各种各样的问题:oracle不是数据库么,怎么又是数据仓库?Hive不是数据仓库么?怎么又是数据库?


数据仓库、数据库是一个概念,是一些技术的集合。类同于切菜刀法和雕刻刀法;

Oracel、DB2、MySQL、Hive是一个容器,是一种工具。类同于一把刀。


当我们在说数据仓库的时候,我们在说什么?说的是你用的mysql还是oracle?用的是Hive还是Kylin?用的是druid还是doris?都不是!因为这些是实现数据仓库的工具!


我们在说数据仓库的时候,我们实际上说的是一种面向主题,沉淀历史不可变信息,对明细数据进行汇总的,为决策提供在线分析服务的数据技术的集合。


我们在实现数据仓库的时候,需要用到数据仓库设计(数据库设计工具)、数据存储技术(数据库工具)、数据处理技术(ETL工具、监控报警)、数据管理技术(元数据、数据地图、血缘关系)等等技术。

而oracle、mysql、hadoop等都只是数据存储技术中的一种而已。


数据仓库发展历史

1、数据仓库概念诞生

数据仓库概念公认最早的定义者,是数据仓库之父比尔·恩门(Bill Inmon)在1991提出的。在此之前,所有的业务操作数据和分析数据都是存在一个数据库中的,并没有分开。

这个inmon就是inmon、kimball建仓方法论的inmon,是不是很熟悉?

如同绝大多数新概念一样,刚诞生的数据仓库同样遭受到了巨大的失败。inmon的建设理念是自上而下,这个上指的是数据的上游,不是数据分层的上层。

大家都是做数仓的,你肯定理解为什么一开始数据仓库概念会惨败。因为自上而下太难见效,得把所有的业务理清楚,把所有系统的数据理清楚,然后分主题分层一点点的设计,然后按照这个设计一层层的建。而且一旦其中有任何变动,整个设计全废。所以第一批吃螃蟹的那些公司基本上都是小白鼠。

2、数据集市概念诞生

这个时候,有个英雄站出来了,这就是Kimball,他写了一本书《The DataWarehouse Toolkit》,开启了数据集市的狂潮,也开创了另一种数据仓库建设的流派-Kimball的自下而上流派。这个上、下也是上下游的意思。Kimball建议,百鸟在林,不如一鸟在手。先搞一个销售部门,摸清销售部门的需求,等于把下游的需求先锁死。然后再顺藤摸瓜,把数仓的每一层设计好,最后再摸到业务系统(CRM+ERP+人力系统),找业务系统的数据,这样就建立了一个销售部门级的数据集市。

由于这种方法的需求少了,设计工作少,难度也就低了,对应的建设难度和工作量也少,建设速度就快,见效也就快啊,非常利于工作的开展。所以数据集市大行其道。

3、DW\DM融合

两派吵了很久很久,各自都有死忠,也都有对的理由,各自也都说服不了对方。双方也明白了:“one size fits all”一码通用是不可能的。终于在1998年, Inmon提出了新的BI架构CIF(CorporationInformation Factory,企业信息工厂)。

上面这张图就是inmon老爷子画的,看上去很乱对吧?其实按照咱现在的视角看就很清晰了:

这个架构是不是很熟悉?对!这个架构从1998年到现在,就没变过!而且也是所有数据仓库建设的框架性指南。

4、实时数仓

一直到最近两年,实时处理技术的飞速发展,才将数据仓库的架构往前又推了一步,出现了实时数仓。实时数仓又分为批数据+流数据、批流一体两种架构。从这里开始,也就正式进入了大数据环境下的数据仓库范畴。


大数据环境下的数据仓库

1、离线数仓

刚转到大数据环境中的哥们会很奇怪,为啥有一个数仓叫离线数仓?从来没听过啊!

其实离线数仓就是咱以前做的传统数仓,数据以T+1的形式计算好放在那里,给前台的各种分析应用提供算好的数据。这也被称为“大数据的批处理”。只不过原本的单体环境工具(oracle、informatica等)基本都被替换成了大数据体系内(Hadoop、Hive、Sqoop、oozie等)的工具而已。

大数据环境中工具清单:

  • 数据采集:flume/logstash+kafka,替代传统数仓的FTP;
  • 批量数据同步:Sqoop、Kettle,跟传统数仓一样用Kettle,部分商用ETL工具也开始支持大数据集群;
  • 大数据存储:Hadoop HDFS/Hive、TiDB、GP等MPP,替代传统数仓的Oracle、MySQL、MS SQL、DB2等;
  • 大数据计算引擎:MapReduce、Spark、Tez,替代传统数仓的数据库执行引擎;
  • OLAP引擎:Kylin/druid,(Molap,需预计算)、Presto/Impala,(Rolap,无需预计算),替代BO、Brio、MSTR等各种BI工具。

2、实时计算

就是因为有实时数据处理,所以才会有离线数据处理。相对应的也就有实时数仓和离线数仓。实时数仓最开始是在日志数据分析业务中被广泛使用,后来在各种实时战报大屏的推动,实时数仓开始应用。

与离线计算相比,实时计算这边减少了数据落地,替换了数据计算引擎,目前纯流式数据处理基本上就只有Spark Streaming了。Storm会丢数据,Flink是批流一体的。实时数据计算好结果后,可以落地到各种数据库中,也可以直接对接到大屏进行展示。


大数据环境下的数据仓库架构

1、Lambda 架构

Lambda架构核心就三个:批数据处理层、流数据处理层和服务层。批数据处理层应对历史长时间数据计算,流数据处理层应对短时间实时数据计算。如果一个需求要历史到当前所有数据的累加结果,那就在服务层将两部分数据进行累加就好了。

Lambda架构需要维护两套计算引擎,如果需要历史到现在实时数据的累加,则需要在两边同时做相同的计算,然后还得加总一下,非常麻烦。因此就有了最近非常火热的Kappa架构。

2、Kappa 架构

Kappa架构的设计很有意思。Lambda架构反正还是分离线和实时两部分的,所以可以从离线库和实时消息队列取数,分别计算后,在服务层加总就可以了。

Kappa的设计理念是:干脆不要离线了,全部都进行流式计算。流式计算的数据来源是消息队列,那我把所有需要计算的数据放在消息队列里就好了,然后让流计算引擎计算所有数据不就好了?

因为所有数据都存在Kafka,上面接Flink批流一体数据处理引擎将kafka的数据计算好存在服务层的table n中。如果需求有变化了,就讲kafka的offset调整一下,Flink则重启一个任务重新计算,存在table N+1中,当N+1的数据进度赶上table n了,就停掉table n的任务。

3、Kappa 架构+查询+分析展示

Kappa架构只到数据服务层,Flink本身只是一个计算引擎,因此还需要一个提供快速查询的工具和一个展示的工具。所以现在的架构就变成了这样:


总结

综上所述,传统数仓和大数据环境下的数仓还是有很多区别的:

  • 数仓设计的工具都是一样的,这个不会变;
  • 由于大数据集群中,表关联的代价比较大,因此数仓建模会更多的使用宽表,所以这里会有一些变化;
  • 数据处理和调度工具用kettle基本都OK,没啥太大变化,但是需要了解一下Flume、Kafka等工具;
  • 数据存储这边需要深入了解一下,这是单体数据库和集群数据库的差别,会有分布式一致性的各种乱七八糟的问题
  • 数据计算引擎也有变化,也是单体数据库和集群数据库的差别。分布式计算会有数据倾斜、join代价高等问题,所以优化的方法和方向也不一样;
  • 数据总体架构设计的时候也会有所变化,传统数仓整个BI套件就ok了,大数据环境下可能要面对更多的各种复杂需求,所需的大数据组件就变多了,需要系统学习。


建议传统数据仓库工程师的转型路线:

传统数仓-离线数仓(批数据处理)-实时数据处理(流数据处理)-lambda架构-kappa架构(批流一体)。


另外,还有一些朋友一直在问,数据仓库、数据湖、数据中台都有啥区别啊?这些也都很火啊,能不能讲讲?这些也早已分享过了,

点击查看:一口气说穿数据中台-给你架构师的视角,数据库、数据仓库、数据湖、数据中台全给你讲清楚了。

点击查看:如何搭建一个数据仓库,给你完整的数仓建设流程。

点击查看:一口气讲完数据仓建模方法--数据仓库架构师碎碎念,给你所有建模方法。

点击查看:【资料包】数据仓库建设完整资料包,给你业务梳理、指标体系梳理、维度梳理、事实表梳理、命名规范、数据仓库设计文档,外加数仓维度建模电子书和大厂数仓建设实战经验。


兄弟,祝你好运!转型成功!工资涨涨涨!

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
2月前
|
分布式计算 大数据 Serverless
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
在2024云栖大会开源大数据专场上,阿里云宣布推出实时计算Flink产品的新一代向量化流计算引擎Flash,该引擎100%兼容Apache Flink标准,性能提升5-10倍,助力企业降本增效。此外,EMR Serverless Spark产品启动商业化,提供全托管Serverless服务,性能提升300%,并支持弹性伸缩与按量付费。七猫免费小说也分享了其在云上数据仓库治理的成功实践。其次 Flink Forward Asia 2024 将于11月在上海举行,欢迎报名参加。
244 6
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
|
1月前
|
分布式计算 大数据 OLAP
AnalyticDB与大数据生态集成:Spark & Flink
【10月更文挑战第25天】在大数据时代,实时数据处理和分析变得越来越重要。AnalyticDB(ADB)是阿里云推出的一款完全托管的实时数据仓库服务,支持PB级数据的实时分析。为了充分发挥AnalyticDB的潜力,将其与大数据处理工具如Apache Spark和Apache Flink集成是非常必要的。本文将从我个人的角度出发,分享如何将AnalyticDB与Spark和Flink集成,构建端到端的大数据处理流水线,实现数据的实时分析和处理。
72 1
|
1月前
|
数据采集 分布式计算 OLAP
最佳实践:AnalyticDB在企业级大数据分析中的应用案例
【10月更文挑战第22天】在数字化转型的大潮中,企业对数据的依赖程度越来越高。如何高效地处理和分析海量数据,从中提取有价值的洞察,成为企业竞争力的关键。作为阿里云推出的一款实时OLAP数据库服务,AnalyticDB(ADB)凭借其强大的数据处理能力和亚秒级的查询响应时间,已经在多个行业和业务场景中得到了广泛应用。本文将从个人的角度出发,分享多个成功案例,展示AnalyticDB如何助力企业在广告投放效果分析、用户行为追踪、财务报表生成等领域实现高效的数据处理与洞察发现。
67 0
|
5月前
|
数据采集 运维 Cloud Native
Flink+Paimon在阿里云大数据云原生运维数仓的实践
构建实时云原生运维数仓以提升大数据集群的运维能力,采用 Flink+Paimon 方案,解决资源审计、拓扑及趋势分析需求。
18531 54
Flink+Paimon在阿里云大数据云原生运维数仓的实践
|
4月前
|
数据挖掘 OLAP OLTP
深入解析:OLTP与OLAP的区别与联系
【8月更文挑战第31天】
1585 0
|
5月前
|
存储 机器学习/深度学习 大数据
参与开源大数据Workshop·杭州站,共探企业湖仓演进实践
Apache Flink 诚邀您参加 7 月 27 日在杭州举办的阿里云开源大数据 Workshop,了解流式湖仓、湖仓一体架构的最近演进方向,共探企业云上湖仓实践案例。
181 12
参与开源大数据Workshop·杭州站,共探企业湖仓演进实践
|
4月前
|
消息中间件 存储 大数据
大数据-数据仓库-实时数仓架构分析
大数据-数据仓库-实时数仓架构分析
164 1
|
4月前
|
存储 运维 Cloud Native
"Flink+Paimon:阿里云大数据云原生运维数仓的创新实践,引领实时数据处理新纪元"
【8月更文挑战第2天】Flink+Paimon在阿里云大数据云原生运维数仓的实践
294 3
|
5月前
|
机器学习/深度学习 分布式计算 运维
MaxCompute产品使用合集之生产环境的a表和开发环境的a表的主要区别是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4月前
|
分布式计算 关系型数据库 Serverless
实时数仓 Hologres产品使用合集之如何将ODPS视图表数据导入到Hologres内表
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。

热门文章

最新文章