value值里可以存放一组数据,取出来再解析。关键是key的设计,一般设计成查询条件的组合,中间用冒号分隔。
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了维西免费建站欢迎大家使用!
NewSQL是对一类现代关系型数据库的统称,这类数据库对于一般的OLTP读写请求提供可横向扩展的性能,同时支持事务的ACID保证。这些系统既拥有NoSQL数据库的扩展性,又保持传统数据库的事务特性。NewSQL重新将“应用程序逻辑与数据操作逻辑应该分离”的理念带回到现代数据库的世界,这也验证了历史的发展总是呈现出螺旋上升的形式。
在21世纪00年代中,出现了许多数据仓库系统 (如 Vertica,Greeplum 和AsterData),这些以处理OLAP 请求为设计目标的系统并不在本文定义的NewSQL范围内。OLAP 数据库更关注针对海量数据的大型、复杂、只读的查询,查询时间可能持续秒级、分钟级甚至更长。
NoSQL的拥趸普遍认为阻碍传统数据库横向扩容、提高可用性的原因在于ACID保证和关系模型,因此NoSQL运动的核心就是放弃事务强一致性以及关系模型,拥抱最终一致性和其它数据模型 (如 key/value,graphs 和Documents)。
两个最著名的NoSQL数据库就是Google的BigTable和Amazon的Dynamo,由于二者都未开源,其它组织就开始推出类似的开源替代项目,包括Facebook的 Cassandra (基于BigTable和Dynamo)、PowerSet的 Hbase(基于BigTable)。有一些创业公司也加入到这场NoSQL运动中,它们不一定是受BigTable和Dynamo的启发,但都响应了NoSQL的哲学,其中最出名的就是MongoDB。
在21世纪00年代末,市面上已经有许多供用户选择的分布式数据库产品。使用NoSQL的优势在于应用开发者可以更关注应用逻辑本身,而非数据库的扩展性问题;但与此同时许多应用,如金融系统、订单处理系统,由于无法放弃事务的一致性要求被拒之门外。
一些组织,如Google,已经发现他们的许多工程师将过多的精力放在处理数据一致性上,这既暴露了数据库的抽象、又提高了代码的复杂度,这时候要么选择回到传统DBMS时代,用更高的机器配置纵向扩容,要么选择回到中间件时代,开发支持分布式事务的中间件。这两种方案成本都很高,于是NewSQL运动开始酝酿。
NewSQL数据库设计针对的读写事务有以下特点:
1、耗时短。
2、使用索引查询,涉及少量数据。
3、重复度高,通常使用相同的查询语句和不同的查询参考。
也有一些学者认为NewSQL系统是特指实现上使用Lock-free并发控制技术和share-nothing架构的数据库。所有我们认为是NewSQL的数据库系统确实都有这样的特点。
什么是NoSQL数据库?从名称“非SQL”或“非关系型”衍生而来,这些数据库不使用类似SQL的查询语言,通常称为结构化存储。这些数据库自1960年就已经存在,但是直到现在一些大公司(例如Google和Facebook)开始使用它们时,这些数据库才流行起来。该数据库最明显的优势是摆脱了一组固定的列、连接和类似SQL的查询语言的限制。有时,NoSQL这个名称也可能表示“不仅仅SQL”,来确保它们可能支持SQL。 NoSQL数据库使用诸如键值、宽列、图形或文档之类的数据结构,并且可以如JSON之类的不同格式存储。
nosql是not only sql的意思。是近今年新发展起来的存储系统。当前使用最多的是key-value模型,用于处理超大规模的数据。
以下是摘自百度百科中的一部分
NoSQL 是非关系型数据存储的广义定义。它打破了长久以来关系型数据库与ACID理论大一统的局面。NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。该术语在 2009 年初得到了广泛认同。
当今的应用体系结构需要数据存储在横向伸缩性上能够满足需求。而 NoSQL 存储就是为了实现这个需求。Google 的BigTable与Amazon的Dynamo是非常成功的商业 NoSQL 实现。一些开源的 NoSQL 体系,如Facebook 的Cassandra, Apache 的HBase,也得到了广泛认同。从这些NoSQL项目的名字上看不出什么相同之处:Hadoop、Voldemort、Dynomite,还有其它很多。
NoSQL与关系型数据库设计理念比较
关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。而非关系型数据库以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。
颉贵琴 胡晓琴
(甘肃省国土资源信息中心)
摘要 为推进我国地质资料信息服务集群化产业化工作,更大更好地发挥地质资料信息的价值,本文针对我国现有的地质资料信息集群化共享服务平台存在的缺陷和问题,基于现有系统的存储架构,设计了一种大数据下的地质资料信息存储架构,以便于我国地质资料信息服务集群化产业化工作能够适应大数据时代的数据存储。
关键词 大数据 地质资料 存储 NoSQL 双数据库
0 引言
新中国成立60多年来,我国形成了海量的地质资料信息,为国民经济和社会发展提供了重要支撑。但在地质资料管理方面长期存在资料信息分散、综合研究不够、数字化信息化程度不高、服务渠道不畅、服务能力不强等问题,使地质资料信息的巨大潜在价值未能得到充分发挥。为进一步提高地质工作服务国民经济和社会发展的能力,充分发挥地质资料信息的服务功能,扩大服务领域,国土资源部根据国内外地质工作的先进经验,做出了全面推进地质资料信息服务集群化产业化工作的部署。
目前,全国各省地质资料馆都在有条不紊地对本省成果、原始和实物地质资料进行清理,并对其中重要地质资料进行数字化和存储工作。然而,由于我国地质资源丰富,经过几十年的积累,已经形成了海量的地质资料,数据量早已经超过了几百太字节(TB)。在进行地质资料信息服务集群化工作中,随着共享数据量的不断增大,传统的数据存储方式和管理系统必然会展现出存储和检索方面的不足以及系统管理方面的缺陷。为了解决该问题,需要设计更加先进的数据存储架构来实现海量地质资料的存储。
而大数据(Big Data)作为近年来在云计算领域中出现的一种新型数据,科技工作者在不断的研究中,设计了适合大数据存储管理的非关系型数据库NoSQL进行大数据的存储和管理。本文将针对我国现有的地质资料信息集群化共享服务平台存在的缺陷和问题,利用大数据存储管理模式的思想,提出一种海量地质资料存储架构,改进现有系统存储架构,以便于我国全面推进地质资料信息服务集群化产业化工作。
1 工作现状
1.1 国内外地质资料信息的存储现状
在美国,主要有两大地质资料公共服务平台,分别是地球科学信息中心(ESIC)、地球资源观测和科学中心(EROS),其目的是通过为社会和政府提供更加便利、快速的地质信息服务。20世纪90年代初,澳大利亚出台了国家地球科学填图协议,采用先进的科学方法和技术进行数据存储,从而形成了第二代澳大利亚陆地地质图。
目前,我国地质资料信息服务集群化产业化工作刚刚起步,虽然国土资源部信息中心已经开发了地质资料信息集群化共享服务平台,并倡导各地方用户使用该系统。但由于各个地方早期的工作背景不一致,因此各地方所使用的存储系统也不尽相同,主要有Access、SQL Server、Oracle、MySQL等系统。本文以国土资源部信息中心开发的地质资料信息集群化共享服务平台的存储系统MySQL为例说明。该系统是基于关系数据库管理系统MySQL的一套分布式存储检索系统。该系统的部署使得我国地质资料信息服务集群化产业化工作取得了重大进展,同时也为我国建立标准统一的地质资料信息共享服务平台和互联互通的网络服务体系奠定了坚实的基础。然而,该系统的研发并没有考虑到地质资料信息进一步集群化以及在未来地质资料信息进入大数据时代的信息共享和存储管理问题,也没有给出明确的解决方案。
1.2 大数据的存储架构介绍
大数据是近年在云计算领域中出现的一种新型数据,具有数据量大、数据结构不固定、类型多样、查询分析复杂等特点。传统关系型数据库管理系统在数据存储规模、检索效率等方面已不再适合大数据存储。NoSQL(Not Only SQL)是与关系数据库相对的一类数据库的总称。这些数据库放弃了对关系数据库的支持,转而采用灵活的、分布式的数据存储方式管理数据,从而可以满足大数据存储和处理的需求。NoSQL基于非关系型数据存储的设计理念,以键值对进行存储,采用的数据字的结构不固定,每一个元组可以有不一样的字段,且每个元组可以根据自己的需要增加一些自己的键值对,可以减少一些检索时间和存储空间。目前,应用广泛的 NoSQL 数据库有 Google BigTable、HBase、MongoDB、Neo4 j、Infinite Graph等。
2 大数据下的地质资料信息存储架构设计
根据国土资源部做出的全面推进地质资料信息服务集群化产业化工作的部署,国土资源部倡导全国地质资料馆使用国土资源部信息中心开发的地质资料信息集群化共享服务平台,实现地质资料信息的存储和共享。该系统采用了数据库管理系统MySQL作为数据存储系统。
为了与现有系统和现有的工作进行对接,并为将来地质资料进入大数据时代后的存储工作做准备,本文设计了一种能用于海量地质资料信息存储并且兼容MySQL的分布式的数据存储架构(图1)。
整个系统可以根据不同的用户等级分为不同的用户管理层,由于图幅限制,在图1 中仅仅展示了3级:国家级管理层(即共享服务平台用户层)、省级管理层以及市级管理层(可根据实际需要延伸至县级)。
每级管理层的每个用户可以单独管理一个服务器。如国土资源部信息中心可以单独管理一个服务器;甘肃省国土资源信息中心可以单独管理一个服务器,陕西省国土资源信息中心可以单独管理一个服务器;甘肃的若干个市级国土资源局可以根据需要分别管理各自的服务器。
在服务器上分别安装两套数据库管理系统,一套是原有的MySQL数据库管理系统,另一套是为大数据存储而配备的NoSQL型数据库管理系统。在服务器上还专门开发一个数据库管理器中间件,用于进行用户层和数据库的通信以及两套数据库之间的通信。
由于各个管理层都各自维护自己的数据库和数据。当用户需要进行数据存储时,他所影响的数据库仅仅是本地数据库,存储效率较高;当用户需要从多个数据库读取数据时,顶层的共享服务平台会根据用户需求进行任务分解,将任务分发给下层的管理层进行数据库读取,由于各个数据库并行读取,从而提高了数据库读取效率。
图1 大数据下的地质资料信息存储架构框图
2.1 用户管理层
用户管理层根据权限范围,分为多层(本文以3层为例)。
位于顶层的国家级管理层(共享服务平台用户层)负责用户访问权限的分配、与其直接关联的数据库的访问、下级管理层任务的分配等工作。
用户访问权限的分配是指为访问本共享服务平台的个人用户和单位用户分配数据的使用权限、安全性的设计等。
与其直接关联的数据库访问是指直接存储在其本地数据库上的数据的访问。在该数据库中不仅要存储所需要的地质资料,还要存储注册用户信息等数据。
下级管理层任务分配是指如果用户需要访问多个下层数据库,用户只需要输入查询这几个下层数据库的命令,而如何查找下层数据库则由该功能来完成。例如某用户要查找甘肃、陕西、上海、北京的铁矿分布图,则用户只需要输入这几个地方及铁矿等查询条件,系统将自动把各个省的数据库查询任务分派到下级管理层。
同理,位于下层的省级管理层和市级管理层除了没有用户访问权限功能外,其余功能与国家级管理层是相同的。各层之间的数据库通过互联网相互连接成分布式的数据库系统。
2.2 MySQL和NoSQL的融合
MySQL是关系型数据库,它支持SQL查询语言,而NoSQL是非关系型数据库,它不支持SQL查询语言。用户要想透明地访问这两套数据库,必须要设计数据库管理器中间件,作为用户访问数据库的统一入口和两套数据库管理系统的通信平台。本文所设计的数据库管理器简单模型如图2所示。
图2 数据库管理器模型
服务器管理器通过用户程序接口与应用程序进行通讯,通过MySQL数据库接口与MySQL服务器通讯,通过NoSQL数据库接口与NoSQL数据库接口通讯。当应用程序接口接收到一条数据库访问命令之后,交由数据库访问命令解析器进行命令解析,从而形成MySQL访问命令或者NoSQL访问命令,通过相应的数据库接口访问数据库;数据库返回访问结果后经过汇总,由应用程序接口返回给应用程序。
两套数据库可以通过双数据库通信协议进行相互的通信和互访。此通信协议的建立便于地质工作人员将已经存入MySQL数据库的不适合结构化存储的数据转存到NoSQL数据库中,从而便于系统的升级和优化。
2.3 系统的存储和检索模式
在本存储框架设计中,系统采用分布式网络存储模式,即采用可扩展的存储结构,利用分散在全国各地的多台独立的服务器进行数据存储。这种方式不仅分担了服务器的存储压力,提高了系统的可靠性和可用性,还易于进行系统扩展。另外,由于地质资料信息存储的特殊性,各地方用户的数据存储工作基本都是在本地服务器进行,很少通过网络进行远程存储,所以数据存储效率较高。
在一台数据库服务器上安装有MySQL和NoSQL型两套数据库管理系统,分别用于存储地质资料信息中的结构化数据和非结构化数据。其中,NoSQL型数据库作为主数据库,用于存储一部分结构化数据和全部的非结构化数据;而MySQL数据库作为辅助数据库,用于存储一部分结构化的数据,以及旧系统中已经存储的数据。使用两套数据库不仅可以存储结构化数据而且还可以适用于大数据时代地质资料信息的存储,因此系统具有很好的适应性和灵活性。
2.4 安全性设计
地质资料信息是国家的机密,地质工作人员必须要保证它的安全。地质资料信息进入数字化时代之后,地质资料常常在计算机以及网络上进行传输,地质资料信息的安全传输和保存更是地质工作人员必须关注和解决的问题。在本存储架构的设计中设计的安全问题主要有数据库存储安全、数据传输安全、数据访问安全等问题。
数据库设计时采用多边安全模型和多级安全模型阻止数据库中信息和数据的泄露来提高数据库的安全性能,以保障地质信息在数据库中的存储安全;当用户登录系统访问数据库时,必须进行用户甄别和实名认证,这主要是对用户的身份进行有效的识别,防止非法用户访问数据库;在对地质资料进行网络传输时,应该首先将数据进行加密,然后再进行网络传输,以防止地质信息在传输过程中被窃取。
3 结语
提高地质资料数字化信息化水平,是国外地质工作强国的普遍做法。为推进我国地质资料信息服务集群化产业化工作,本文针对我国现有的地质资料信息集群化共享服务平台存在的缺陷和问题,利用大数据存储管理模式的思想,基于现有系统的存储架构,设计了一种大数据下的地质资料信息存储架构,以便于我国地质资料信息服务集群化产业化工作能够适应大数据时代的数据存储。该存储架构的设计只涉及了简单模型的构建,具体详细复杂的功能设计和软件实现还需要在进一步的研究工作中完成。
参考文献
[1]吴金朋.一种大数据存储模型的研究与应用[D].北京:北京邮电大学计算机学院,2012.
[2]吴广君,王树鹏,陈明,等.海量结构化数据存储检索系统[J].计算机研究与发展,2012,49(Suppl):1~5.
[3]黄
,易晓东,李姗姗,等.面向高性能计算机的海量数据处理平台实现与评测[J].计算机研究与发展,2012,49(Suppl):357~361.