实时计算是常见的大数据计算场景。业务部门需要实时反馈产品的被点击、浏览、收藏、购买、评价等数据,对时延的要求一般是秒级,甚至毫秒级。而批处理计算引擎一般需要几分钟或者几小时才能返回结果,显然无法满足该场景的计算需求。基于实时计算的需求,流式计算引擎应运而生。目前,应用得较多的流式计算引擎主要有Spark、Storm和Flink。

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

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

部分企业对实时计算和离线计算共存的需求十分迫切。大部分的报表和任务还是以离线计算为主,对实时要求较高的应用需要使用实时计算引擎。

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

一个企业如果维护两套独立的计算平台,那么成本较高,运维难度大,且两个平台的数据准确性和一致性难以保障。如何高效地解决两套计算引擎共存的问题

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

二、实时数据仓库

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

1.ODS层

从数据源中抽取贴源数据并将其存储在Kafka中,构成了实时数据仓库的ODS层。

2.DWD层

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

3.DWS层

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

4.APP层

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

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

5.DIM 层

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

大数据实时计算流程介绍相关推荐

  1. Flink大数据实时计算系列-Flink写出多个parquet小文件处理方法、Presto的介绍与使用场景

    Flink大数据实时计算系列-Flink写出多个parquet小文件处理方法.Presto的介绍与使用场景 Presto的安装与使用 目录 Flink写出多个parquet小文件处理方法 Presto ...

  2. Flink大数据实时计算系列-列式存储parquet文件格式介绍、Flink进行rowformat格式文件保存

    Flink大数据实时计算系列-列式存储parquet文件格式介绍 Flink进行rowformat格式文件保存 列式存储parquet文件格式介绍

  3. Flink大数据实时计算系列-Flink的state介绍、Flink丰富的状态访问、Flink状态的分类

    Flink大数据实时计算系列-Flink的state介绍.Flink丰富的状态访问.Flink状态的分类 目录 Flink的state介绍 Flink丰富的状态访问 Flink状态的分类 Flink参 ...

  4. 1. 大数据实时计算介绍

    Spark Streaming,其实就是一种Spark提供的,对于大数据,进行实时计算的一种框架.它的底层,其实,也是基于我们之前讲解的Spark Core的.基本的计算模型,还是基于内存的大数据实时 ...

  5. 【大数据实时计算框架】Storm框架

    一.大数据实时计算框架 1.什么是实时计算?流式计算? (一)什么是Storm? Storm为分布式实时计算提供了一组通用原语,可被用于"流处理"之中,实时处理消息并更新数据库.这 ...

  6. 大数据实时计算工程师/Hadoop工程师/数据分析师职业路线图

    大数据实时计算工程师/Hadoop工程师/数据分析师职业路线图 http://edu.51cto.com/roadmap/view/id-29.html http://my.oschina.net/i ...

  7. 接近淘宝 80%的大数据实时计算平台,从0搭建的经验和坑

    上周一,来自武汉的直播平台斗鱼TV宣布C轮融资,腾讯领投的 15 亿人民币,距其获得 B 轮1亿美元不到半年,也是大写的牛逼. 但小寻更关心他们的大数据架构,作为一个在 2 年多时间里崛起的公司,其流 ...

  8. .NET 大数据实时计算--学习笔记

    摘要 纯 .Net 自研大数据实时计算平台,在中通快递服务数百亿包裹,处理数据万亿计!将分享大数据如何落地以及设计思路,技术重难点. 目录 背景介绍 计算平台架构 项目实战 背景介绍 计算平台架构 分 ...

  9. Flink大数据实时计算系列-案例初体验:HotPages

    Flink大数据实时计算系列-案例初体验:HotPages 目录 HotPages代码 输入日志 运行结果 HotPages代码 /*** Copyright (c) 2018-2028 尚硅谷 Al ...

最新文章

  1. 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解(转)
  2. Google又放大招:高效实时实现视频目标检测 | 技术头条
  3. 复解析蕴含不可延拓性
  4. 与NWBC相关的服务器端配置
  5. Java 8 (10) CompletableFuture:组合式异步编程
  6. csc.exe的环境变量设置
  7. linux安装ffmpeg版本太多,Linux安装FFmpeg的方法
  8. 拟态防御_纯素食汉堡的拟态
  9. Android应用的安全的攻防之战
  10. 100个经典的C语言算法
  11. 使用函数进行邮件发送的示例
  12. jQuery UI DatepickerDatetimepicker添加 时-分-秒 并且,判断
  13. 7z增量更新参数使用
  14. AFURLRequestSerialization
  15. 油猴脚本(tampermonkey)推荐与下载
  16. 学生成绩管理系统 需求规格说明书
  17. 闽南理工学院教务网络管理系统所有服务器,闽南理工学院教务管理网络系统登录入口 http://222.77.99.244:8094/jwweb/,精英高考网...
  18. 20年磨一剑,南京大学周志华团队出版专著总结演化学习引领性研究(再次送书)...
  19. 【条形码识别】条形码中数字的识别的matlab仿真
  20. ps怎么加底部阴影_PS三分钟之如何在PS中给物体添加阴影

热门文章

  1. tcp ip协议 服务器和客户端区别,网络与TCP/IP协议-总结
  2. python识别颜色并提取轮廓_pythonopencv检测并提取目标颜色
  3. 基于taro开发微信小程序
  4. 线代复习小结 矩阵等价、相似、合同的区别以及向量组等价 2019/09/13
  5. ArcGIS地质图矢量化技巧
  6. 创建数据库,有次要文件的数据库,以及给现有数据库添加次要数据库,
  7. ArcGIS教程:创建条形图
  8. 向量中断、中断向量、向量地址3个概念是什么关系?
  9. Ubuntu虚拟机没有网络图标或者无法获取IP地址
  10. getPhoneNumber 响应 416