目录
离线数据仓库主要基于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
往期推荐: