最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 开发技术 > Python语言 >
如何实现快速分析实时数据的解决方案
ITPUB发表于 2021-01-15 15:33 次浏览
在过去几年里,实时计算的受欢迎程度呈爆炸式增长。这缘于互联网、物联网、人工智能技术的的高速发展,以及国家政策层面的大力支持。然而,在企业层面上,实时计算这种技术仍难以得到有效应用。究其原因,主要在于技术门槛高,开发、运维成本难以控制,缺乏成熟的产品化功能。

【OLTP】

在业务初期,单库单表,就能满足绝大部分业务需求,其典型的架构为:

 

如何实现快速分析实时数据的解决方案

 
(1)DAS:数据访问层;
(2)DB:数据库;
 
当数据量越来越大,例如达到1亿注册量时,我们必然遇到性能和存储瓶颈,这时我们应该怎么做?

此时需要对数据库进行水平切分。

如何实现快速分析实时数据的解决方案

 

常见的水平切分算法有“范围法”和“哈希法”。
 
范围切分,一般就是按主键划分,采用区间的方式,将数据水平切分到多个数据库实例上去。
哈希法,一般我们会选定某个业务主键,采用哈希的方式,将数据水平切分到两个数据库实例上去。
 
通过对比,我们可以发现:
(1)范围切分,实现足够简单,但是存在后续负载不均衡的问题,不同的区间用户活跃度不一样。
(2)哈希法,通过hash随机,能实现数据和负载的均衡,但是扩容后存在hash数据迁移问题。 
画外音:互联网通过水平扩展来应对大流量。
 
【OLAP】

在数据量上来后,我们一般都会采用大数据平台进行数据分析。MapReduce 能很好的解决大数据的计算问题,但是我们怎么能让数据更快呢?此时需要对数据进行实时计算了,比如Flink。

 
大数据实时分析主要基于流式数据,也就是数据源源不断的产生,并被计算。Flink 主要处理有界流和无界流两种形式。


 

如何实现快速分析实时数据的解决方案

(1)有界流,就是通常的批处理,Flink专为固定大小数据集特殊设计的算法,让批处理有出色的性能

(2)无界流的数据必须持续处理,因为输入是无限的,在任何时候输入都不会完成。Flink擅长精确的时间控制和状态化,使得运行时能够推断事件结果的完整性,从而运行任何处理无界流的应用。

 

Flink以及大数据各种计算引擎,到底怎么实现更大数据、更快处理的呢?相信大家一定愿意更加深入的了解。


免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐