你公司到底需不需要引入实时计算引擎?| 推荐

大数据发展至今,数据呈指数倍的增长,对实效性的要求也越来越高,于是像上面这种需求也变得越来越多了。

那这些场景对应着什么业务需求呢?我们来总结下,大概如下:

初看这些需求,是不是感觉很难?

那么我们接下来来分析一下该怎么去实现?

从这些需求来看,最根本的业务都是需要实时查看数据信息,那么首先我们得想想如何去采集这些实时数据,然后将采集的实时数据进行实时的计算,最后将计算后的结果下发到第三方。

数据实时采集

就上面这些需求,我们需要采集些什么数据呢?

  • 买家搜索记录信息
  • 买家浏览的商品信息
  • 买家下单订单信息
  • 网站的所有浏览记录
  • 机器 CPU/MEM/IO 信息
  • 应用日志信息

数据实时计算

采集后的数据实时上报后,需要做实时的计算,那我们怎么实现计算呢?

  • 计算所有商品的总销售额
  • 统计单个商品的销量,最后求 Top5
  • 关联用户信息和浏览信息、下单信息
  • 统计网站所有的请求 IP 并统计每个 IP 的请求数量
  • 计算一分钟内机器 CPU/MEM/IO 的平均值、75 分位数值
  • 过滤出 Error 级别的日志信息

数据实时下发

实时计算后的数据,需要及时的下发到下游,这里说的下游代表可能是:

1、告警方式(邮件、短信、钉钉、微信)

在计算层会将计算结果与阈值进行比较,超过阈值触发告警,让运维提前收到通知,及时做好应对措施,减少故障的损失大小。

2、存储(消息队列、DB、文件系统等)

数据存储后,监控大盘(Dashboard)从存储(ElasticSearch、HBase 等)里面查询对应指标的数据就可以查看实时的监控信息,做到对促销活动的商品销量、销售额,机器 CPU、MEM 等有实时监控,运营、运维、开发、领导都可以实时查看并作出对应的措施。

  • 让运营知道哪些商品是爆款,哪些店铺成交额最多,哪些商品成交额最高,哪些商品浏览量最多;
  • 让运维可以时刻了解机器的运行状况,出现宕机或者其他不稳定情况可以及时处理;

  • 让开发知道自己项目运行的情况,从 Error 日志知道出现了哪些 Bug;
  • 让领导知道这次促销赚了多少 money。

从数据采集到数据计算再到数据下发,整个流程在上面的场景对实时性要求还是很高的,任何一个地方出现问题都将影响最后的效果!

实时计算场景

前面说了这么多场景,这里我们总结一下实时计算常用的场景有哪些呢?

  • 交通信号灯数据
  • 道路上车流量统计(拥堵状况)
  • 公安视频监控
  • 服务器运行状态监控
  • 金融证券公司实时跟踪股市波动,计算风险价值
  • 数据实时 ETL
  • 银行或者支付公司涉及金融盗窃的预警

……

另外我自己在我的群里也有做过调研(不完全统计),他们在公司 Flink(一个实时计算框架)使用场景有这些:

总结一下大概有下面这四类:

1、实时数据存储

实时数据存储的时候做一些微聚合、过滤某些字段、数据脱敏,组建数据仓库,实时 ETL。

2、实时数据分析

实时数据接入机器学习框架(TensorFlow)或者一些算法进行数据建模、分析,然后动态的给出商品推荐、广告推荐

3、实时监控告警

金融相关涉及交易、实时风控、车流量预警、服务器监控告警、应用日志告警

4、实时数据报表

活动营销时销售额/销售量大屏,TopN 商品

说到实时计算,这里不得不讲一下和传统的离线计算的区别!

实时计算 VS 离线计算

再讲这两个区别之前,我们先来看看流处理和批处理的区别:

流处理与批处理

看完流处理与批处理这两者的区别之后,我们来抽象一下前面文章的场景需求(实时计算):

实时计算需要不断的从 MQ 中读取采集的数据,然后处理计算后往 DB 里存储,在计算这层你无法感知到会有多少数据量过来、要做一些简单的操作(过滤、聚合等)、及时将数据下发。

相比传统的离线计算,它却是这样的:

在计算这层,它从 DB(不限 MySQL,还有其他的存储介质)里面读取数据,该数据一般就是固定的(前一天、前一星期、前一个月),然后再做一些复杂的计算或者统计分析,最后生成可供直观查看的报表(dashboard)。

离线计算的特点

  • 数据量大且时间周期长(一天、一星期、一个月、半年、一年)
  • 在大量数据上进行复杂的批量运算
  • 数据在计算之前已经固定,不再会发生变化
  • 能够方便的查询批量计算的结果

实时计算的特点

在大数据中与离线计算对应的则是实时计算,那么实时计算有什么特点呢?由于应用场景的各不相同,所以这两种计算引擎接收数据的方式也不太一样:离线计算的数据是固定的(不再会发生变化),通常离线计算的任务都是定时的,如:每天晚上 0 点的时候定时计算前一天的数据,生成报表;然而实时计算的数据源却是流式的。

这里我不得不讲讲什么是流式数据呢?我的理解是比如你在淘宝上下单了某个商品或者点击浏览了某件商品,你就会发现你的页面立马就会给你推荐这种商品的广告和类似商品的店铺,这种就是属于实时数据处理然后作出相关推荐,这类数据需要不断的从你在网页上的点击动作中获取数据,之后进行实时分析然后给出推荐。

流式数据的特点

  • 数据实时到达
  • 数据到达次序独立,不受应用系统所控制
  • 数据规模大且无法预知容量
  • 原始数据一经处理,除非特意保存,否则不能被再次取出处理,或者再次提取数据代价昂贵

实时计算的优势

实时计算一时爽,一直实时计算一直爽,对于持续生成最新数据的场景,采用流数据处理是非常有利的。例如,再监控服务器的一些运行指标的时候,能根据采集上来的实时数据进行判断,当超出一定阈值的时候发出警报,进行提醒作用。再如通过处理流数据生成简单的报告,如五分钟的窗口聚合数据平均值。复杂的事情还有在流数据中进行数据多维度关联、聚合、塞选,从而找到复杂事件中的根因。更为复杂的是做一些复杂的数据分析操作,如应用机器学习算法,然后根据算法处理后的数据结果提取出有效的信息,作出、给出不一样的推荐内容,让不同的人可以看见不同的网页(千人千面)。

使用实时数据流面临的挑战

1、数据处理唯一性(如何保证数据只处理一次?至少一次?最多一次?)

2、数据处理的及时性(采集的实时数据量太大的话可能会导致短时间内处理不过来,如何保证数据能够及时的处理,不出现数据堆积?)

3、数据处理层和存储层的可扩展性(如何根据采集的实时数据量的大小提供动态扩缩容?)

4、数据处理层和存储层的容错性(如何保证数据处理层和存储层高可用,出现故障时数据处理层和存储层服务依旧可用?)

总结

本文从日常需求来分析该如何去实现这类需求,需要实时采集、实时计算、实时下发,并用图片把需求完成后的效果图展示了出来,接着我们分析了对实时性要求高的计算这块,然后将离线计算与实时计算进行了对比、批处理与流处理进行对比、离线计算的特点与实时计算的特点进行了对比,再加上我自己的调研结果,归纳了实时计算的四种使用场景,提出了使用实时计算时要面临的挑战。因为各种需求,也就造就了现在不断出现实时计算框架,而下文我们将重磅介绍我们推荐的实时计算框架 —— Flink。

Image placeholder
puzc1993
未设置
  63人点赞

没有讨论,发表一下自己的看法吧

推荐文章
你公司所拥有的数据,真正被使用的有多少?

如今,很多公司的领导者基本都可以认定一个事实:你的公司有很多数据。但有一个非常重要问题是,任何组织内部,可能都会有大量数据从来没有被收集、处理或使用过,当然造成这种现象的原因有很多。我们可以把这些数据

vue引入swiper vue使用swiper vue脚手架使用swiper /引入js文件/引入css文件

vue引入swipervue使用swipervue脚手架使用swiper/引入js文件/引入css文件欢迎加入前端交流群来获取视频资料以及前端学习资料:749539640转载文章请注明出处! 如果只是

跳来跳去,到底去大公司还是小公司?

作者:一颗卤蛋,https://dwz.cn/NA3E0JFG职场生涯总会面临着选择,尤其对我们这些IT人来说,跳槽的频率应该是所有行业中相当大的了。那么我们跳来跳去,究竟该选择什么样的公司?大or小

上市公司招聘 PHP 高级架构师, 负责公司资讯网站

薪资35-40k*14【职位介绍】负责公司资讯平台开发,管理后端小团队岗位职责:负责公司资讯平台开发,管理后端小团队 负责平台开发、测试和维护工作; 岗位要求:计算机专业5年以上PHP开发经验,熟悉m

又一知名公司炸雷,大量公司员工被带走调查

10月21日上午,港股上市公司“51信用卡”位于杭州西溪谷的办公地点突然遭警方调查。01.警方突袭杭州警方突击调查了51信用卡公司,据网上的视频信息看出,大约出动了上百名警力,带走了CEO兼公司法定代

DBA跳槽应该去大公司还是小公司?99%的人这样说…

职场生涯总会面临着选择,尤其对我们这些IT人来说,跳槽的频率应该是所有行业中相当大的了。那么我们跳来跳去,究竟该选择什么样的公司?大or小。 工作三年多了,经历一大一小,最近也面试了不少家公司,形态各

小公司锻炼人?还是大公司发展好?

编辑:zone来源:女朋友教我写代码作者:石小秀今天分享一下悉尼大学硕士小姐姐的经验,看她对大公司和小公司的一些看法?NO.12018年,花光了80万留学经费的我回国了。年少轻狂啊,觉得自己海归名校硕

你的公司是需要数据科学家还是数据工程师?差别有点大

越来越多的企业关注AI,企业组织也意识到拥有相关人才和技能非常重要。特别是最近对AI、机器学习(ML)、非ML预测分析和“大数据”的应用,使得数据科学家的需求有了显著的增长,未来还将继续。事实上,对数

Laravel-Binlog 扩展(用于实时监听 MySQL 数据变更、数据同步等场景)

Laravel-Binlogv0.2.1 (该扩展当前用于我司测试环境实时同步Mysql数据变更到ElasticSearch,稳定性待测试!!哈哈哈)我司正式环境走的阿里云DTS数据订阅 基于Sw

亿级海量数据的实时读写和复杂查询实践

摘要:本文分享了每日亿级增量数据的实时读写、复杂查询场景实践介绍,涉及MySQL分表分库策略、数据异构、TiDB使用和优化、微服务架构等内容。  作者:黄哲铿  黄哲铿,中通商业CTO,前1号店技术总

核心业务“瘦身”进行时!手把手带你搭建海量数据实时处理架构

01背景 在线交易服务平台目的是减轻核心系统计算压力和核心性能负荷压力,通过该平台可以将核心系统的交易数据实时捕获、实时计算加工、计算结果保存于SequoiaDB中。并能实时的为用户提供在线交易查询服

浙江小学生戴上“金箍”:售价3千5的脑机接口头环,实时监测上课走神,自动报送老师家长

当最新“黑科技”被用在教育上,一件引起热议的怪事就发生了:小学生上课,要带上孙悟空的“金箍”了。这个硬件是一种脑机接口头环,可以检测脑电波,评判学生上课、写作业时是否集中了注意力,并给学生的集中注意力

PB级数据实时查询,滴滴Elasticsearch多集群架构实践

Elasticsearch是基于Lucene实现的分布式搜索引擎,提供了海量数据实时检索和分析能力。Elastic 公司开源的一系列产品组成的ElasticStack,可以为日志服务、搜索引擎、系统监

Mysql数据实时同步实践

关于小米内部使用的数据库你知道多少?背景Mysql由于自身简单、高效、可靠的特点,成为小米内部使用最广泛的数据库,但是当数据量达到千万/亿级别的时候,mysql的相关操作会变的非常迟缓;如果这时还有实

揭秘|每秒千万级的实时数据处理是怎么实现的?

01背景闲鱼目前实际生产部署环境越来越复杂,横向依赖各种服务盘宗错节,纵向依赖的运行环境也越来越复杂。当服务出现问题的时候,能否及时在海量的数据中定位到问题根因,成为考验闲鱼服务能力的一个严峻挑战。线

DTCC2019 爱奇艺实时数据传输服务

数据库间实时数据传输服务可简化业务系统的数据架构,使其专注于业务开发。DBIO是爱奇艺研发的数据库间实时数据传输服务,用于同异构数据库间实时复制与数据变更捕获,是业务系统数据共享的核心通道。作者:郭磊

Hyperf 发布 Session、极简 DB、zk 配置中心组件和支持 Twig/Plates 视图引擎支持

更新内容 本周更新主要新增极简DB组件,Zookeeper配置中心,和Session组件,以及为视图组件增加了Twig和Plates视图引擎的支持,同时为计划任务组件增加了集群执行的支持。极简DB组件

Go语言高级编程_6.4 分布式搜索引擎

6.4分布式搜索引擎 在Web一章中,我们提到MySQL很脆弱。数据库系统本身要保证实时和强一致性,所以其功能设计上都是为了满足这种一致性需求。比如writeaheadlog的设计,基于B+树实现的索

搜索引擎百度已死,但其他业务在重生

年初有一篇《搜索引擎百度已死》的文章在全网刷屏,文章尖锐指出百度搜索有一半以上结果导向了自己的百家号,而百家号上大量低劣和营销的内容严重误导了用户,事后百度回应说其百家号的内容占比小于10%。与此同时

Nebula 架构剖析系列(二)图数据库的查询引擎设计

摘要上文(存储篇)说到数据库重要的两部分为存储和计算,本篇内容为你解读图数据库Nebula在查询引擎QueryEngine方面的设计实践。在Nebula中,QueryEngine是用来处理Nebula

日志监控实践 – 监控Agent集成Lua引擎实现多维度日志采集

作者简介:董涵   百度资深研发工程师负责百度智能运维(Noah)服务管理和分布式监控架构研发工作,在分布式系统和大规模数据处理、可用性工程方向有广泛的实践经验。干货概览对于互联网行业来说,最有价值的

MongoDB 存储引擎与内部原理

一、存储引擎(Storage)mongodb3.0默认存储引擎为MMAPV1,还有一个新引擎wiredTiger可选,或许可以提高一定的性能。mongodb中有多个databases,每个databa

TPC-C解析系列04_TPC-C基准测试之数据库事务引擎的挑战

OceanBase这次TPC-C测试与榜单上Oracle和DB2等其他数据库在硬件使用上有非常大的不同,OceanBase的数据库服务器使用的是204+3台型号是ecs.i2.16xlarge阿里云E

微软张若非:搜索引擎和广告系统,那些你所不知的AI落地技术

这两年,被誉为“ 皇冠上的明珠”的自然语言处理领域发展愈发火热,成为了业内新宠,而 搜索和广告这两大老牌技术领域似乎已被大家遗忘。其实,这两大接地气的工程领域仍是各企业竞相抢夺的市场之一。近日,AI科

SQL Server 2014的数据库引擎新增功能(参考sqlserver官方文档)

SQLServer2014数据库引擎引入了一些新功能和增强功能,这些功能可以提高设计、开发和维护数据存储系统的架构师、开发人员和管理员的能力和工作效率。  以下是 数据库引擎已增强的方面。数据库引擎功