大数据基础知识
- 大交易数据:电商,例如:B2B、B2C、C2C、团购;
- 大交互数据:社交网络数据、SNS、微博;
- 大数据特征:volume体量大、variety种类多、velocity速度快、value价值密度低;
- 大数据时代下系统需求:高并发读写需求和实时动态获取和更新数据、海量数据的高效率存储和访问的需求、高可扩展和高可用性的需求,需要有快速横向扩展能力;
关系数据库瓶颈
1. 高并发读写需求
问题:
数据库读写压力大,硬盘IO无法承受;
解决:
主从分离,分库分表,缓解写压力,增强读库可扩展性。
2. 海量数据的高效率存储和访问的需求
问题:
存储记录数量有限,SQL查询效率低;
解决:
分库分表,缓解数据增加压力
3. 高可扩展性和高可用性的需求
问题:
横向扩展难,无法通过快速增加服务器节点实现,系统升级和维护造成服务不可用;
解决:
主从分离、增强读库的可扩展性、MMM。
4. 分库分表缺点:
1)受业务规则影响,需求变动导致分库分表维护复杂;2)系统数据访问层代码需修改
5. 主从分离缺点:
1)slave实时性保障,对于实时性很高的场合需要处理;2)高可用性问题,master易产生单点故障问题
6. MMM缺点:
本身扩展性差,一次只有一个master可以写入,只能解决有限数据量下的可用性。
nosql基础知识
- nosql优势:高可用、大数据量、高性能、易扩展、灵活的数据模型。
- CAP原理三要素:一致性、可用性、分区容忍性。(注意:三要素最多同时实现两点,分布式大数据系统分区容忍性是基本要求;大多数web应用牺牲一致性换取高可用性;例如:CA:MySQL;CP:redis、hbase、big table、mongodb;AP:Cassandra)
- nosql核心理论:Google的big table;Amazon的dynamo
- nosql分类:
- 主流nosql数据库:
1). bigtable:a.适合大规模海量数据;b.分布式并发数据处理效率高;c.易扩展支持动态伸缩;d.适用于廉价设备;e.适合读操作不适合写操作;f.不适合传统关系数据库。
2). dynamo:a.高可用、b.总是可写、c.优化可用性,容错性,高效性配置;d.可扩展性差。
3). Cassandra:a.模式灵活;b.真正的可扩展性,c.多数据中心识别。
4). Hbase:列式存储数据库
5). redis:key-value存储系统
6). mongodb:a.面向集合存储;b.模式自由;c.文档型;d.高效的数据存储;e.支持复制和故障恢复;f.自动分片。