一文详解:实时数仓VS离线数仓

目录

一、离线数仓VS实时数仓

离线数仓

实时数仓

二、不同的数仓架构

离线大数据架构

Lambda 架构

Kappa 架构

三、对比总结

四、实时数仓建设思路

离线数据仓库主要基于sqoop、hive等技术来构建T+1的离线数据,通过定时任务每天拉取增量数据导入到hive表中,然后创建各个业务相关的主题维度数据,对外提供T+1的数据查询接口。

实时数仓当前主要是基于数据采集工具,如canal等将原始数据写入到Kafka这样的数据通道中,最后一般都是写入到类似于HBase这样存储系统中,对外提供分钟级别、甚至秒级别的查询方案。

一、离线数仓VS实时数仓

离线数仓

离线数仓是一个用于存储和处理批处理数据的系统,其数据处理和分析是基于批处理作业进行的。

特点:

批处理:数据在一定时间周期内收集、存储,然后一次性处理。

数据时效性:通常数据的时效性为T+1,即数据在产生后的下一个时间单位(如小时、天)内进行处理。

高容量:设计用于存储大量历史数据。

数据存储:一般将数据存储在如HDFS、Hive等系统中,以支持大规模数据的存储和查询。

实时数仓

实时数仓是指能够实时地处理和分析数据,确保数据仓库中的数据是最新的、最准确的,并且能够实时响应用户的查询和分析需求的一种数据仓库系统。

特点:

实时性:能够实时或接近实时地处理数据,通常在秒级或分钟级内完成数据的收集、处理和分析。

快速响应:能够迅速响应用户的查询和分析需求,提供即时的数据支持。

高吞吐量:随着实时技术的发展,实时数仓的数据吞吐量也相对较高。

数据存储:一般将数据存储在如Kafka、HBase、Redis、Clickhouse等系统中,以支持快速的数据读写和查询。

二、不同的数仓架构

离线大数据架构

数据源通过离线的方式导入到离线数据中。下游应用根据业务需求选择直接读取 DM 或加一层数据服务,比如 MySQL 或 Redis。数据仓库从模型层面分为三层:

ODS,操作数据层,保存原始数据;

DWD,数据仓库明细层,根据主题定义好事实与维度表,保存最细粒度的事实数据;

DM,数据集市/轻度汇总层,在 DWD 层的基础之上根据不同的业务需求做轻度汇总;

典型的数仓存储是 HDFS/Hive,ETL 可以是 MapReduce 脚本或 HiveSQL。

Lambda 架构

Lambda 架构问题:同样的需求需要开发两套一样的代码:这是 Lambda 架构最大的问题,两套代码不仅仅意味着开发困难(同样的需求,一个在批处理引擎上实现,一个在流处理引擎上实现,还要分别构造数据测试保证两者结果一致),后期维护更加困难,比如需求变更后需要分别更改两套代码,独立测试结果,且两个作业需要同步上线。

资源占用增多:同样的逻辑计算两次,整体资源占用会增多,多出实时计算这部分。

Kappa 架构

Lambda 架构虽然满足了实时的需求,但带来了更多的开发与运维工作,其架构背景是流处理引擎还不完善,流处理的结果只作为临时的、近似的值提供参考。后来随着 Flink 等流处理引擎的出现,流处理技术很成熟了,这时为了解决两套代码的问题,LickedIn 的 Jay Kreps 提出了 Kappa 架构。

Kappa 架构可以认为是 Lambda 架构的简化版(只要移除 lambda 架构中的批处理部分即可)。

在 Kappa 架构中,需求修改或历史数据重新处理都通过上游重放完成。

Kappa 架构最大的问题是流式重新处理历史的吞吐能力会低于批处理,但这个可以通过增加计算资源来弥补。

三、对比总结

首先,从架构上,实时数仓与离线数仓有比较明显的区别,实时数仓以 Kappa 架构为主,而离线数仓以传统大数据架构为主。Lambda架构可以认为是两者的中间态。

其次,从建设方法上,实时数仓和离线数仓基本还是沿用传统的数仓主题建模理论,产出事实宽表。另外实时数仓中实时流数据的join 有隐藏时间语义,在建设中需注意。

最后,从数据保障看,实时数仓因为要保证实时性,所以对数据量的变化较为敏感。在大促等场景下需要提前做好压测和主备保障工作,这是与离线数据的一个较为明显的区别。

综上,实时数仓主要解决数据时效性问题,结合机器学习框架可以处理实时推荐、实时获取广告投放效果等智能化业务场景。实时数仓的建设应早日提上日程,未来企业对数据时效性的要求会越来越高,实时数仓会很好的解决该问题。

四、实时数仓建设思路

构建实时数仓需要根据业务需求选择合适的技术架构,并通过ETL工具来实现数据的实时采集、处理和分析,最终将结果存储到实时数据仓库中,并进行数据可视化和应用开发。

帆软软件推出的FineDataLink提供了一套完整而灵活的解决方案,可以帮助用户快速构建可靠的高时效/近实时数据仓库系统。在构建高时效/近实时数据仓库时,帆软FDL有以下优势:

1. 操作界面简洁清晰,无代码配置,字段自动映射,无需专业的编程能力即可完成任务配置。

2. 提供统一的错误队列管理、预警机制、日志管理,支持脏数据阈值设置通知功能,可通过短信、邮件、平台消息等进行消息提醒,保证企业敏感数据的安全性。

3. 打破数据壁垒,实现低成本业务系统的数据实时同步,从多个业务数据库实时捕获源数据库的变化并毫秒内更新到目的数据库。

综上所述,数仓建设是企业数据管理和决策支持的关键环节,在实践中,企业需要根据自身业务需求和数据规模,选择合适的数仓建设方案和技术方案,以提高企业数据资产的价值和利用效率。

FineDataLink——小到数据库对接、API对接、行列转换、参数设置,大到任务调度、运维监控、实时数据同步、数据服务API分享,另外它可以满足数据实时同步的场景,应有尽有,功能很强大。如果您需要进行实时数仓建设,帆软FDL会是您的最优解。

了解更多数据仓库与数据集成关干货内容请关注>>>FineDataLink官网

免费试用、获取更多信息,点击了解更多>>>体验FDL功能

FCA报考入口:FCA-FineDataLink

往期推荐:

关于实时ODS层数仓搭建的三个问题-CSDN博客

数据管道为什么选择Kafka作为消息队列?-CSDN博客

【FCA FineDataLink认证指南】解锁高薪职业新机遇,提升职场竞争力-CSDN博客

上百节课视频详细讲解,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 本课程采用由浅入深,层层递进的讲解方式, 让你轻松掌握企业级数仓架构的搭建及使用, 使用该架构可以胜任企业级实时数仓离线数仓构建。 课程内容: 1. 项目背景介绍 2. 数据建模应用 3. 基于Kylin的OLAP分析 4. 需求分析与项目设计 5. 订单与销售额指标计算 6.行为指标计算 7.Druid的安装和使用 8.流式数仓实现 适用人群: 1、对企业级数据仓库构建感兴趣,有一定大数据基础。 2、对目前职业有进一步提升要求,希望从事数据行业高薪工作的在职人员。 3、对数据行业感兴趣的相关人员。 基础课程主讲内容包括: 阶段一:千亿级实时数仓项目总体介绍 1. 数据仓库在企业里面的重要性 2. 千亿级实时数仓的项目演示 阶段二: 数据建模的应用 1. 为什么要数据建模 2. 维度和指标的概念 3. 指标和维度建模案例 阶段三. 数据仓库从0到1的过程 1. 数仓典型分层思想(ODS、DWB、DWS、DM、ADS) 2. 数仓建设0到1的过程实战 3. 企业级数据仓库设计的规范 阶段四:基于Kylin的OLAP分析 1. Kylin自带的example案例介绍 2. Kylin的Cube创建 3. Kylin的数据膨胀介绍 阶段五:需求分析与项目设计 1. 需求分析 2. canal搭建 3. canal数据写入kafka 阶段六:订单与销售额指标计算 1. 销售额指标体系介绍 2. flink实时消费Kafka订单数主题数据 3. 订单金额指标统计 阶段七:行为指标计算 1. 模拟通过埋点方式采集行为数据 2. 使用Flink Streaming计算用户行为相关指标 3. Flink CEP实现转化率分析 阶段八: Druid的安装和使用 1. Druid实时数据摄入 2. Druid基于JSON查询语法 3. Imply Pivot可视化数据分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值