实时数仓到底是什么呢?与传统数仓有什么区别?

数仓,即存放数据的仓库,包括全量数据、历史数据。类型上又分为实时数仓、离线数仓,所谓实时数仓是指数据的实时性更高、延迟性低,一般是统计一天以内的数据,支持毫秒级的统计,在建设工具上一般采用Flink,而离线数仓则统计历史数据,在建设工具上一般采用Hive。对于实时性要求比较高的场景,如实时的交易分析、实时数据看板(比如双十一的成交额看板)、实时业务监控、实时数据接口服务等,我们就需要实时数仓了。

在数仓的开发实现中包含四个模块,即物理存储、数据抽象、runtime作业执行、编程接口。那么离线数仓和实时数仓有什么区别呢?在物理存储模块,离线数仓一般使用HDFS存储,实时数仓使用Kafka消息队列进行存储,在数据抽象模块,离线数仓使用HIve表,实时数仓使用streamtable。在作业执行模块,离线数仓使用mapreudce,而实时数仓使用FlinkStreaming。在编程模块,离线数仓使用HiveSQL进行开发,实时数仓使用FlinkSQL 进行开发。这就是实时数仓和离线数仓在开发实现上的区别了。

介绍完了数仓概念、实时数仓和传统数仓的区别之后,我们再来看看技术选型。

在实时数仓的建设中对于大规模数据的处理架构有Lambda架构、Kappa架构,从业界使用情况、灵活性、容错性、成熟度、迁移成本、批/流处理代码来看,Lambda都是最佳的方案。在实时计算引擎上,Flink是最佳的选择方案,因为比较准确、延时低、业界内使用多、易用性高。在实时存储引擎上,综合业务维度索引、高并发情况、高性能查询特征,一般推荐ClickHouse

介绍完技术选型之后,我们来看看实时数仓和实时存储两块如何实现?

在实时数仓中包含四层,即数据接入层ODS、数据明细层DWM、数据汇总层DWS、数据应用层APP。如下图所示,ODS层是数据的源头,包含系统的消息队列数据、系统日志、流量埋点数据、系统消息,不同业务线可能采用的方式存储数据,但是在接入数仓时需要统一来源接入,这样可以方便数据的处理以及数据一致性。在数据明细层,一般分两类进行数据建设,一类是业务数据明细、一类是按维度进行数据拆分,比如在美团中,商家的地理位置、评分、菜品、价格就是明细数据,也可以按地域维度、商家维度、菜品维度、价格维度进行建设。在汇总层主要基于共性维度进行建模分析,比如系统的日活、月活等数据,在汇总层就可以统一的运算。在APP层主要就是把实时数据写入应用系统的数据库,用于建设实时看板、实时特征应用、实时分析。

在整个业务系统的架构设计中分为两部分,即实时数仓和实时存储。对于实时数仓我们已经介绍了,而对于实时存储,一般满足三个需求,即支持海量数据存储、支持分布式高可用、支持高性能查询。对于海量数据的写入,业界内一般采用clickhouse大数据库存储。为了保障系统的高可用,互联网通用的模式是分布式部署,一般借助分布式协调框架Zookeeper来进行实现,数据写入某一个分片时,zookeeper告诉同一个分片的其它副本,副本来拉取数据,保障同一分片内的数据是一致的。在数据查询中,借助于存储数据库clickhouse的稀疏索引优势,将时间维度和内容进行稀疏索引建立,之后就可以基于内容进行查询了。

在互联网流量为王的时代,通过数据精准的了解用户情况,进行准确的营销和运营才能把用户长久的留在自己平台,从而保障业务的长久发展,在滴滴的打车业务中采用实时数仓,可以知道某个时间点某个区域的乘客发单情况、司机应答情况,从而采取对应的优惠券触发或加派司机进行调度支持等策略,现在滴滴推出的特惠快车背后也有实时数仓的功劳呢,系统通过实时数仓发现该时间点乘客较少、司机比较空闲,于是通过比较优惠价格,提高乘客打车欲望、增加司机收入。
 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大数据与传统数仓在分层上存在一些区别传统数仓通常采用经典的三层架构,包括操作层(ODS)、集成层(DWH)和应用层(OLAP)。在这种架构下,数据从操作系统抽取到ODS层,再经过清洗、集成和变换等处理,加载到DWH层,最后通过OLAP工具提供给业务应用。 而大数据分层架构通常包括原始数据层、数据处理层和数据应用层。 1. 原始数据层:大数据架构中的原始数据层类似于传统数仓中的操作层(ODS),用于存储从各种数据源获取的原始数据。这些数据可以是结构化数据、半结构化数据或非结构化数据,例如日志文件、传感器数据等。 2. 数据处理层:大数据架构中的数据处理层负责对原始数据进行处理和转换。这一层通常包括数据提取、转换和加载(ETL)过程,以及数据存储和处理的技术,如Hadoop、Spark、Hive等。数据处理层的目标是实现数据的清洗、聚合、计算和建模等操作,以便为数据应用层提供准备好的数据。 3. 数据应用层:大数据架构中的数据应用层类似于传统数仓中的应用层(OLAP)。这一层主要用于数据分析、数据挖掘和业务智能等应用。数据应用层可以使用各种工具和技术,如机器学习、数据可视化和实时分析等,来探索和发现数据中的模式、趋势和洞察,并为业务决策提供支持。 总的来说,大数据架构与传统数仓在分层上的区别主要在于原始数据层和数据处理层的引入。大数据架构更加灵活和可扩展,可以处理各种类型和规模的数据,而传统数仓则更适用于结构化数据和传统的数据处理方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值