大数据入门:大数据数据仓库解析
大数据入门:大数据数据仓库解析
在大数据时代,数据仓库的选型策略变得至关重要。从传统数据仓库到现代大数据环境下的数据仓库,其核心的技术架构随着最新技术趋势不断演进。本文将为您详细解析大数据环境下的数据仓库,包括离线数仓、实时计算以及两种主流的数仓架构(Lambda架构和Kappa架构)。
数据仓库的概念最早在1991年被提出,而近年来随着大数据趋势的发展,实时数据处理技术的快速发展推动了数据仓库技术架构的不断演进。目前,实时数据仓库主要分为两种架构:批数据+流数据和批流一体。
1. 离线数仓
离线数仓,即传统数仓,其数据以T+1的形式计算并存储,为前台的各种分析应用提供预计算好的数据。在大数据时代,这种模式被称为“大数据的批处理”。具体的技术组件替换如下:
- 数据采集:Flume/Logstash + Kafka 替代传统数仓的FTP
- 批量数据同步:Sqoop、Kettle 替代传统数仓工具
- 大数据存储:Hadoop HDFS/Hive、TiDB、GP等MPP数据库替代Oracle、MySQL等传统数据库
- 大数据计算引擎:MapReduce、Spark、Tez 替代传统数据库执行引擎
- OLAP引擎:Kylin/Druid(Molap,需预计算)、Presto/Impala(Rolap,无需预计算)替代BO、Brio、MSTR等BI工具
2. 实时计算
实时数仓最初在日志数据分析业务中广泛应用,随后在各种实时战报大屏的推动下得到进一步发展。与离线计算相比,实时计算减少了数据落地环节,主要替换了数据计算引擎。目前,纯流式数据处理主要采用Spark Streaming,而Flink则实现了批流一体的处理能力。实时计算的结果可以存储到各种数据库中,也可以直接对接到大屏进行展示。
3. 大数据环境下的两种数仓架构
Lambda 架构
Lambda架构的核心包括批数据处理层、流数据处理层和服务层。批数据处理层负责处理历史长时间数据计算,流数据处理层则应对短时间内的实时数据计算。如果一个需求需要历史到当前所有数据的累加结果,那么就在服务层将两部分数据进行累加。
Kappa 架构
Kappa架构的设计理念是将所有数据都进行流式计算。数据来源是消息队列(如Kafka),流计算引擎(如Flink)计算所有数据并存储结果。当需求发生变化时,可以通过调整Kafka的offset,重启任务重新计算,并将新结果存储到新的表中。当新表的数据进度赶上旧表时,就可以停止旧表的任务。
关于大数据环境下的数据仓库,以上内容为大家提供了基本的介绍。总体来说,大数据时代的数据仓库架构设计需要更多结合具体的业务需求进行考量。