NoSQL的核心驱动力是传统关系型数据库无法适配大数据、互联网场景下的新需求,具体可分为两个层面:
数据形态与规模的变化 当前通过谷歌、Facebook等第三方平台,数据获取和采集的门槛大幅降低,数据量呈现爆发式增长,同时数据类型不再局限于结构化数据,半结构化、非结构化数据(如日志、文本、视频、用户行为数据)占比越来越高,传统关系型数据库的固定表结构无法适配这类灵活的数据存储需求。
传统关系型数据库的固有瓶颈 关系型数据库在以下场景存在无法解决的短板:
- 高并发读写场景:互联网应用往往每秒有上万次读写请求,传统关系型数据库的硬盘IO会成为明显瓶颈;
- 海量数据高效处理场景:针对包含亿级以上数据的表,关系型数据库的查询效率会大幅下降,类似淘宝双十亿万级订单生成的场景,传统数据库无法支撑;
- 扩展与高可用需求:关系型数据库以纵向扩展(升级硬件)为主,存在扩展上限,且扩容需要停机维护、数据迁移,无法满足7*24小时不间断服务的互联网业务需求;
- 非结构化数据处理需求:关系型数据库的严格数据模型无法灵活存储半结构化、非结构化数据,适配成本极高。
二、互联网环境下NoSQL的应用优势
灵活的可扩展性 NoSQL采用分布式架构,支持横向扩展,当性能不足时只需动态增加/删除集群节点即可,不需要停机维护,可轻松支撑大规模数据集和高并发访问,远高于传统关系型数据库纵向扩展的上限。
灵活的数据模型 NoSQL不需要预先定义严格的数据表结构,每条记录可以有不同的属性和格式,可同时处理结构化、半结构化和非结构化数据,完美适配迭代快速、数据格式多变的互联网Web2.0应用。
高性能读写能力 NoSQL通过内存存储、索引优化、异步写入、无共享架构(数据存储在本地节点,减少网络IO开销)等设计,可实现极高的读写性能,比如Redis可支持每秒10万次以上的读写操作,在高并发、大数据量场景下的表现远优于关系型数据库。
高可用与容错能力 NoSQL通过数据分区、多副本复制的方式实现冗余备份,不存在单点故障问题,单个节点故障时可自动迁移数据、替换故障节点,在节点故障或网络中断的情况下仍可持续提供服务,升级扩展时也不需要停机。
低成本优势 绝大多数NoSQL数据库是开源的,不需要支付昂贵的许可费用,同时可采用廉价硬件部署,还支持云环境按需付费,部署和维护成本远低于商业关系型数据库。
与云计算、大数据生态适配 NoSQL和云计算、大数据处理模式深度融合,可对接Hadoop、Spark等分布式计算框架,支撑大数据分析、数据挖掘等场景需求。
三、第三方平台数据采集场景中NoSQL的作用
第三方平台数据采集往往具有数据量巨大、数据格式多样、采集并发高、后续需要大数据分析的特点,NoSQL在这类场景的作用如下:
多类型数据统一存储 第三方平台采集的数据包含结构化的用户属性、半结构化的行为日志、非结构化的文本/图片/视频等内容,NoSQL不需要预定义表结构,可灵活存储不同格式的采集数据,减少数据预处理的成本。
支撑高并发采集写入 数据采集往往需要同时接收海量终端的上报请求,NoSQL的高并发写入性能可支撑每秒数万甚至数十万级的写入请求,保证数据采集不丢失、不卡顿。
弹性扩展适配数据增长 第三方平台的采集数据量会随业务拓展持续增长,NoSQL的横向扩展能力可通过增加节点轻松支撑PB级甚至更大量级的存储需求,不需要中断采集业务。
保障采集服务高可用 数据采集需要7*24小时不间断运行,NoSQL的多副本冗余、故障自动转移能力可避免单点故障导致的采集中断,保障采集服务的持续可用。
支撑后续大数据分析 NoSQL存储的采集数据可直接对接Hadoop、Spark等大数据计算框架,可直接用于后续的情感分析、用户画像、风险识别、商业决策分析等业务,比如通用电气就基于大数据框架分析存储在NoSQL中的用户评论数据,为营销活动提供支撑。
总结
NoSQL是大数据时代为弥补传统关系型数据库的短板而诞生的技术,其本质是“Not Only SQL”,和关系型数据库是互补而非替代的关系。它在扩展性、灵活性、性能、成本上的优势,完美适配当前互联网海量、高并发、非结构化的数据场景,在第三方数据采集、互联网业务、大数据分析等领域都有不可替代的作用。不过NoSQL也存在事务一致性弱、复杂查询能力不足、技术成熟度较低的短板,实际应用中往往会采用混合架构,结合关系型数据库和NoSQL的各自优势实现业务支撑。 