浅谈Spring Boot数据访问
曹廷,付宇
武汉软件工程职业学院,湖北武汉,430205
摘 要:NoSQL非关系型数据库已成为大数据处理领域研究的热点,它以高并发读写、高扩展性和高可用性等优点获得各大互联网公司的青睐。本文介绍了NoSQL数据库的概念、基本数据类型和几种流行的NoSQL数据库应用。
关键字:NoSQL数据库;大数据处理;非关系型数据库
近年来,随着互联网web2.0技术的发展,数据库应用面临着新的挑战,对数据模型分布式架构,数据存储等技术提出了新的要求。传统的RDBMS在某些业务场景下表现越来越乏力,无法满足互联网对数据扩展、读写速度、支撑容量及建设和运营成本的要求。为了解决这些问题NoSQL数据库应运而生,许多NoSQL数据库产品在短时期内大量涌现,如HBase、Cassandra、CouchDB、MongoDB、Redis、Neo4j等。
一、Spring Boot数据访问概述
NoSQL(Not Only SQL)一词最早出现于1998年,是一个不提供SQL功能的开源轻量级关系型数据库。2009年,在一次关于分布式开源数据的讨论中,再次提出了NoSQL的概念,这时的NoSQL主要指非关系型、分布式、不符合ACID特性的数据库设计模式。目前,我们认为NoSQL是关于快速而高效的处理数据,专注于性能、可靠性和敏捷性的一组概念。它不遵循传统关系型数据库的ACID原则,而遵循BASE原则和CAP理论。CAP理论是指在一个分布式系统中一致性可用性分区容错性,三者不可兼得。 BASE原则是Basically Available、Soft state和Eventually consistent三个短语的缩写,是对CAP理论中一致性和可用性权衡的结果,是基于CAP理论逐渐演化而来的。以购物网站为例,ACID系统更加关注数据的一致性和完整性,它认为用暂时的页面阻塞换取确保系统返回可靠准确的信息更加合理。而BASE系统更加关注系统的可用性,它认为短期内数据不一致与无法下单相比并不是那么重要,因为阻塞一个订单,就损失一个客户。
相对于传统关系型数据库,NoSQL数据库的优点是扩展性强,读写速度快,数据模型灵活,成本低。NoSQL数据库去掉关系数据库的关系特性,使数据之间没有关系,扩展相对容易。NoSQL数据库结构简单,缓存性能高,所以读写速度快。NoSQL无需事先为数据建立字段,可以随时存储自定义的数据格式。所以,NoSQL数据库在处理大数据时表现更好。
二、 Spring Boot整合MyBatis
1. 键值存储模型
Key-value数据存储是NoSQL数据库最简单的一种存储方式,也是目前业界比较推崇的方式。键值数据模型就是一张哈希表,key是查找数据地址的唯一关键字,而value是数据存储的实际内容,数据库并不关心,也无需知道其中的内容,由应用程序负责理解所存数据的含义。模型采用哈希函数实现关键字到值的映射关系,主要用于数据库访问均通过主键来查询数据的情况。Key-value数据存储模型的优点是查找速度快,缺点是数据无结构。
2. 列式存储模型
传统的关系型数据库,擅长以行为单位进行增删查改,因此关系型数据库也被称为面向行的数据库。而列式存储数据库,以列为单位来存储数据,即属于同一列的数据,会尽可能地存储在硬盘的同一区域,而不是将属于同一行的数据放在一起。列式存储模型的优点是查找速度快,扩展性强,易进行分布式扩展,缺点是功能相对局限。
3. 文档存储模型
文档存储模型与键值存储模型的结构相似,也是一个key对应一个value,value主要内容通常是jason或xml等格式的文档,是有语义的。文档存储模型数据存储的最小单位是文档,同一张表中存储的文档属性可以不同。文档存储模型的优点是对数据结构要求不严格,数据表结构灵活可变,不需要像关系数据库一样预先定义表结构,缺点是查询性能不高,缺乏统一的查询语法。
4. 图存储模型
图存储模型是基于图理论构建的,使用节点、属性和边表示实体与实体间的关系。节点代表实体,属性存储实体的相关信息,边连接节点与节点或者节点与属性,表示两者间的关系,有方向性。节点间可有多种不同的关系类型,这样既能表现域实体之间的关系,也可以表示辅助关系。图数据存储模型的优点是查询性能高,可以利用图结构相关算法,缺点是不利于做分布式集群方案。
三、NoSQL数据库应用简介
1. Dynamo
Dynamo是亚马逊公司提出的一种key-value模式数据库,它的最大特点是去中心化的分布式系统。Dynamo背后的商业驱动是亚马逊需要创建一个高可用的Web页面来支持来自世界各地24小时不间断的交易。Dynamo的系统成本较低,它不需要通过昂贵的服务器来达到良好的性能,只需要普通机器加入到集群里就行;由于 Dynamo 是去中心化地设计,在集群中它的每一台机器都是对等的,不会有单点问题。
2. Hbase
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。[]HBase利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作协同服务。HBase适用于需要对大数据进行随机、实时访问的场合,如社交网站的消息提醒业务。
3. MangoDB
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo数据库最大的特点是它支持的查询语言非常强大,几乎可以实现类似关系数据库单表查询的绝大部分功能。传统的数据库由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB同样也是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。
四、结语
参考文献
[1] 张征,李小丽. NoSQL数据库数据模型以及系统介绍.科学与财富, 2015,36.
[2] 张杰.浅谈NoSQL. 计算机光盘软件与应用,2013,23.
[3] 李伟.大数据下的NoSQL数据库技术分析.信息通信,2014,139.