汇总:大数据实时计算流程介绍

优采云 发布时间: 2022-12-16 03:36

  汇总:大数据实时计算流程介绍

  实时计算是一种常见的大数据计算场景。业务部门需要实时反馈产品的点击、浏览、采集、购买、评价等数据,时延要求一般在秒级甚至毫秒级。批计算引擎通常需要几分钟或几小时才能返回结果,显然不能满足这种场景的计算需求。基于实时计算的需求,流式计算引擎应运而生。目前应用广泛的流式计算引擎主要有Spark、Storm和Flink。

  一个典型的实时计算流程如下图所示。首先通过Flume传递实时采集数据,然后通过消息队列缓存采集数据。之后使用流式计算引擎进行计算,最后将计算结果存储在高速查询引擎中,以便日后高效利用数据,支持报表开发、多维分析或数据挖掘,等等

  典型的实时计算流程

  1、实时计算和离线计算如何高效共存

  一些企业迫切需要实时计算和离线计算并存。大部分报表和任务还是基于离线计算,实时性要求高的应用需要使用实时计算引擎。

  最直观的想法就是为离线计算和实时计算场景搭建计算平台,让两个平台共存。这就是通常所说的Lambda架构的处理方式,如下图(1)所示。

  

  搭建离线计算和实时计算场景的计算平台

  如果企业维护两个独立的计算平台,成本高,运维困难,两个平台的数据准确性和一致性也难以保证。如何高效解决两个计算引擎共存的问题

  Kappa的流批一体化架构和处理方式可以有效解决两者高效共存的问题,其架构图如上图(2)所示。Kappa架构的核心组件是消息队列、数据仓库、流批一体化计算引擎和高效查询引擎。目前最流行的流批一体计算引擎是Flink。

  2、实时数据仓库

  实时数仓与离线数仓最大的区别在于,通过使用消息队列、流批一体计算引擎、查询引擎等工具,整个平台的计算和查询效率更高,可以满足业务的实时需求。因此,实时数据仓库需要更高的计算能力。如果短期内数据量突然增加,那么就要考虑实时数仓的性能和稳定性。相比之下,离线数仓对数据量的增加不那么敏感,性能更稳定。另外,从分层建模的角度来看,实时数仓的层次不宜过多,否则会增加响应延迟。

  分层框架和技术选择

  1. ODS层

  源数据从数据源中提取出来,存储在Kafka中,构成实时数仓的ODS层。

  

  2.DWD层

  通过在Kafka中实时订阅流式业务数据,利用Flink计算引擎进行ETL、清洗、聚合、多表关联等操作,获取实时明细数据并存储在Kafka中。

  3.DWS层

  DWS层是通过Flink计算引擎对DWD层的详细数据进行聚合汇总得到的。基于业务差异化的需要,DWS层分为轻汇总层和高汇总层。轻汇总层的主要目的是支撑APP层的应用需求。高层汇总层的主要目的是满足业务对统计数据的高效查询需求,如实时大屏、数据产品等。

  4.APP层

  基于业务的差异化需求,轻汇总层会使用不同的存储介质。比如OLAP需求一般存储在ClickHouse或者Kylin中。查询需求一般存储在Elasticsearch、HBase或MongoDB中。高层汇总层的数据量一般较小。为了满足高效的查询需求,数据一般存储在高速查询介质中,如MySQL、HBase等。如果数据量较小,可以将数据存储在内存数据库Redis中,进一步提高查询效率。

  APP层为数据应用层,基于以下各层数据开发各种应用,如BI、多维分析、及时查询、数据检索、定价、反欺诈等。

  5.DIM层

  DIM层的主要存储引擎有MySQL、Redis、HBase。在数据量比较少的情况下,可以使用内存数据库,效率更高。HBase可以有效支持Append操作,查询结果秒级返回。对于维度可变的场景,可以有限的使用HBase存储。

  解决方案:我的新网站正式上线啦,提供各种采集地理数据以及可视化工具

  我的网站BLT-LEAD已经正式上线,提供了包括POI数据采集、人流数据采集、数据可视化、坐标转换、拣选等一系列地图工具,地址:,并且很*敏*感*词*正在开发中,欢迎使用!另外,如果您需要采集人流数据、全国POI数据、共享单车等数据,以及网站、小程序开发,欢迎与我联系,欢迎长期合作!以下是部分数据采集结果图:

  

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线