随着业务越来越大,数据也是越来越多,怎么能让业务在数据大的时候还能保证快呢。
互联网的业务无外乎线上OLTP场景和线下OLAP场景,这两种场景,数据量增大后,我们应该分别怎么应对呢。
【OLTP】
在业务初期,单库单表,就能满足绝大部分业务需求,其典型的架构为:
(1)DAS:数据访问层;
(2)DB:数据库;
当数据量越来越大,例如达到1亿注册量时,我们必然遇到性能和存储瓶颈,这时我们应该怎么做?
此时需要对数据库进行水平切分。
常见的水平切分算法有“范围法”和“哈希法”。
范围切分,一般就是按主键划分,采用区间的方式,将数据水平切分到多个数据库实例上去。
哈希法,一般我们会选定某个业务主键,采用哈希的方式,将数据水平切分到两个数据库实例上去。
通过对比,我们可以发现:
(1)范围切分,实现足够简单,但是存在后续负载不均衡的问题,不同的区间用户活跃度不一样。
(2)哈希法,通过hash随机,能实现数据和负载的均衡,但是扩容后存在hash数据迁移问题。
画外音:互联网通过水平扩展来应对大流量。
【OLAP】
在数据量上来后,我们一般都会采用大数据平台进行数据分析。MapReduce 能很好的解决大数据的计算问题,但是我们怎么能让数据更快呢?此时需要对数据进行实时计算了,比如Flink。
大数据实时分析主要基于流式数据,也就是数据源源不断的产生,并被计算。Flink 主要处理有界流和无界流两种形式。
(1)有界流,就是通常的批处理,Flink专为固定大小数据集特殊设计的算法,让批处理有出色的性能
(2)无界流的数据必须持续处理,因为输入是无限的,在任何时候输入都不会完成。Flink擅长精确的时间控制和状态化,使得运行时能够推断事件结果的完整性,从而运行任何处理无界流的应用。
Flink以及大数据各种计算引擎,到底怎么实现更大数据、更快处理的呢?相信大家一定愿意更加深入的了解。
福利来了!!!
免费直播,带你走进大数据计算引擎设计精华。
事件:三天突破大数据四大分布式计算引擎
人物:凤凰金融大数据一把手,王端阳老师
时间:8.18-8.20,20:00(先领资料预习,学习效果更好)
DAY1 (8.18)
(1)离线计算和实时计算的应用场景
(2)大数据离线计算框架MapReduce的编程模型
(3)MapReduce实现共同好友推荐的编程思路
(4)共同好友推荐的编程实现案例
(5)如何解决计算过程中遇到的数据倾斜
DAY2 (8.19)
(1)基于内存的大数据计算引擎Spark特性详解
(2)Spark最核心概念弹性分布式数据集RDD
(3)使用Scala编程语言实现网页浏览量统计
(4)理解数据处理系统的分类和特征
(5)从MR到Spark看大数据计算框架的演变
DAY3 (8.20)
(1)大数据实时计算框架Storm的体系架构
(2)Storm编程拓扑图与编程案例
(3)Mapreduce和Spark有哪些不足
(4)Flink的体系架构和编程案例
(5)从零开始到大数据架构师的成长之路
有技术资料预习么(以下所有课程,免费)?
《实现MapReduce》 《Kafka高性能的消息封装流程架构设计源码剖析》 《手写简单实现Hadoop》
如何参加免费训练营,领取课程资料?
扫码获取直播地址,免费领资料
祝大家在P8之路上前行,阅读原文,福利等你。