180 •电子技术与软件工程 Electronic Technology & Software Engineering数据库技术・ Data Base Technique【关键词】大数据 键值存储 Bigtable 云数据库1 引言在大数据时代背景下,大数据一个定性的描述:是指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。
当今“大数据”一词的重点其实已经不仅在于数据规模的定义,它更代表着信息技术的发展进入了一个新的时代,代表着爆炸性的数据信息给传统的计算技术和信息技术带来的技术挑战,代表着大数据处理的新技术和方法,也代表着大数据分析和应用所带来的新的发展机遇。
本文从大数据的背景出发,研究数据库的存储模型,数据模型,编程模型等问题以及讨论数据库技术的未来研究方向。
2 大数据概念2.1 大数据的特性学术界通常用4个V(即V olume 、Variety 、Value 、Velocity)[1]来概括大数据的特征。
(1)V olume 指数据体量巨大。
截至目前,人类生产的所有印刷材料的数据量是200PB ,而历史上全人类说过的所有的话的数据量大约是5EB 。
当前,典型个人计算机硬盘的容量为TB 量级,而一些大企业的数据量已经接近EB 量级。
(2)Variety 指数据类型繁多。
类型的多样性也让数据被分为结构化数据和非结构化数据。
相对于以往便于存储的以文本为主的结构化数据,非结构化数据越来越多,包括网络日大数据背景下的数据库技术研究文/张宇航志、音频、视频、图片、地理位置信息等,这些多类型的数据对数据的处理能力提出了更高要求。
(3)Value 指价值密度低。
价值密度的高低与数据总量的大小成反比。
以视频为例,一部1小时的视频,在连续不间断的监控中,有用数据可能仅有一二秒。
(4)Velocity 指处理速度快。
这是大数据区分于传统数据挖掘的最显著特征。
根据IDC 的“数字宇宙”的报告,预计到2020年,全球数据使用量将达到35.2ZB 。
在如此海量的数据面前,处理数据的效率就是企业的生命。
2.2 大数据的影响大数据决策成为一种新的决策方式。
依据大数据进行决策,从数据中获取价值,让数据主导决策,是一种前所未有的决策方式,并正在推动着人类信息管理准则的重新定位。
随着大数据分析和预测性分析对管理决策影响力的逐渐加大,依靠直觉做决定的状况将会被彻底改变。
大数据开发推动新技术和新应用的不断涌现大数据的应用需求,是大数据新技术开发的源泉。
借助这些创新型的大数据应用,数据的能量将会层层被放大。
2.3 大数据典型应用案例2.3.1 梅西百货的实时定价机制根据需求和库存的情况,该公司基于SAS 的系统对多达7300万种货品进行实时调价。
2.3.2 沃尔玛的搜索这家零售业巨头为其网站 自行设计了最新的搜索引擎Polaris ,根据沃尔玛的说法,语义搜索技术的运用使得在线购物的完成率提升了10%到15%。
“对沃尔玛来说,这就意味着数十亿美元的金额。
”Laney 说。
2.3.3 PredPol Inc.PredPol 公司通过与洛杉矶和圣克鲁斯的警方以及一群研究人员合作,基于地震预测算法的变体和犯罪数据来预测犯罪发生的几率,可以精确到 500平方英尺的范围内。
在洛杉矶运用该算法的地区,盗窃罪和暴力犯罪分布下降了33%和21%。
3 键值存储传统的关系型数据库中的利用二维表数据模型存储格式化的数据结构,每个元组的字段组成相同,数据库会为每个元组分配所有的字段,这样便于表与表之间的操作,但是,它也是关系型数据库性能瓶颈的一个因素。
它难以满足如下的高要求:(1)对数据库高并发读写的需求;(2)对海量数据的高效率存储和访问的需求;(3)对数据库的高可扩展性和高可用性的需求为了解决这类问题,非关系型数据库(NoSQL 存储)应运而生,它以键值对存储,结构不固定,每一个元组可以有不同的字段,并且可以根据需要增加一些独有的键值对,它不局限于固定的结构,这样可以减少一些时间和空间的开销。
键值对存储,简称KV 存储,是NoSQL 存储的一种方式。
它的数据按照键值对的形式进行组织,索引和存储。
KV 存储非常适合不涉及过多数据关系业务关系的业务数据,同时能有效减少读写磁盘的次数,比SQL 数据库存储拥有更好的读写性能。
G o o g l e 的B i g Ta b l e 、A m a z o n 的Dynamo 等都是是非常成功的NoSQL 实现。
Membase ,MongoDB ,Cassandra ,BeansDB ,Redis 等开源的NoSQL 体系也得到了广泛认同。
键值存储机制采用键值对形式存储,值可以是任意不定长数据。
如图1所示。
kv 存储采用0、1目录的方式管理历史数据和更新数据,假设当前的更新数据目录和历史数据目录都为0目录,在合并时,最新历史数据写到1目录,同时更新数据开始写在1目录。
注意的是,需要对更新数据目录和历史数据目录的当前0、1目录进行维护。
通常情况下,更新数据使用Memtable 存储,历史数据使用SSTable 结构存储。
这样快<<下转181页图1:kv 存储的合并图2:BigTable 数据模型实例Data Base Technique ・数据库技术Electronic Technology & Software Engineering 电子技术与软件工程• 181【关键词】Android 管理系统 进销存随着移动通信的迅猛增长,智能移动终端操作系统和硬件不断提升,移动处理业务已经非常普及,移动终端的进销存系统应运而生。
它是集进、销、存业务管理为一身的统一操作系统平台,利用其强大的智能终端,它不仅可以提高信息处理的效率,而且可以非常灵活随基于Android 平台的商品进销存管理系统的设计文/任硕果时随地的处理业务。
1 系统框架构建根据商品进销存业务流程分析,商品进销存管理系统的主要功能可以划分为四大类。
基本资料维护、采购业务管理、销售业务管理、仓库管理四大类主要功能。
设计本系统的物理架构采用B/S 架构,逻辑架构采用MVC 框架。
模型(Model)采用JavaBean 数据模型,进行业务逻辑和访问数据库。
在模型层变化的时候,它将通知视图层并提供后者访问自身状态的能力,同时控制层也可以访问其功能函数以完成相关的任务。
视图(View)采用Activity 视图动态显示数据。
它从模型层取得数据并指定这些数据如何被显示出来。
在模型层变化的时候,它将自动更新。
另外视图层也会将用户的输入传送给控制器。
控制器(Controller)采用Servlet 控制,用于接收请求和控制应用程序的流程。
它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
2 系统数据库设计根据进销存管理系统的业务需求,设计本系统的数据库。
具体包括18个数据表: employees-职员的基本信息表;unit-存储来往公司的基本信息表;goods-商品基本信息表;storages-存储仓库的基本信息表;purchasebill-采购单表;purchasebilldetail-采购单明细表;purchasepaybill-采购付款单表;purchasereturnbill-采购退货单表;purchasereturnbilldetail-采购退货单明细表;purchasereturnincomebill-采购退货收款单表;salebill-销售单表;salebilldetail-销售单明细表;saleincomebill-销售收款单表;salereturnbill-销售退货单表;salereturnbilldetail-销售退货单明细表;salereturnpaybill-销售退货付款单表;stock-库存的基本信息表;loseraise-报损报溢速定位Key 所在的SSTable 就可以提高查询效率。
KV 存储在内存需保存key 到SSTable 的映射。
KV 存储支持写操作和读操作,如使用主键可作简单查询和复杂查询(如列表查询和范围查询),同时通过更新数据和历史数据的合并定期处理过期数据。
(1)写操作:增加,修改,删除一个键值对。
写数据时先写到更新目录下(0/1),再写Memtable 。
更新目录下只追加写,做标记。
(2)简单查询:查询某个主键对应的值读数据时分别读Memtable 和SStable 的数据合并后返回。
(3)复杂查询:列表查询,范围查询列表查询对指定的主键列表进行查询,返回对应的值列表。
范围查找对指定的主键进行查询,返回对应的值列表。
(4)过期数据处理:合并写操作如更新和删除操作会产生很多的无用数据,这些垃圾数据的回收是通过定时合并操作实现的。
4 BigTable非关系型数据库根据IDC 的研究报告,未来5年,企业对结构化的数据存储需求会每年增加20%左右,而对非结构化的数据存储需求每年会增加60%左右。
大数据催生了云数据库。
云数据库支持多种数据模型,如SQL Azure 等云数据库采用传统关系模型、BigTable 采用键值存储,CloudDB 同时支持关系模型、键值模型和列式模型.下面详细研究BigTable 数据模型。
BigTable 实际上是一个稀疏分布的,永久的多维排序图,采用行键、列键和时间戳对图索引,图中的值是未经解释的字节数组。
这里以一个实例来解释BigTable 的数据模型。
下图显示了存储网页数据的WebTable 的片段,行名是URL 反转,contents 列族包含网页内容,anchor 列族包含了任何引用这个页面的anchor 文本。
CNN 的主页被Sports Illustrated 和MY-look 主页引用。
Contents 列有3个版本对应时间戳t3,t5和t6。
由此可见BigTable 中的数据库模式和关系型模式主要区别,与传统关系型模型相比:(1)不存在表间的联接操作。
(2)整个模式只有1个行健索引。
虽然不同关系型模型,但是通过行健访问,整个系统并不会慢下来。
5 结束语与展望综上所述,在大数据背景下,数据库技术的发展有了新要求与新机遇。
大数据的发展离不开数据库技术的支持,结构化、非结构化、面向关系型、面向对象、NoSQL 等众多数据库概念与技术相互融合、相互补充,共同发展,从而实现多源异构的海量数据存储、多维数据融合、信息资源的高效利用。
参考文献[1]大数据概念及应用未来[J].科技讯.2014.[2]大数据可能带给世界的大影[J].学习时报.2014.[3]中国大数据技术与服务市场2013-2017年预测与分析[J].IDC 报告.2014.[4]Chang F,Dean J,Ghe ma wat S,HsiehWC,Wallach DA,Burrows M,Chandra T,Fikes A,Gruber RE.Bigtable:a distributed storage system for structured data.In:Proc. Of the 7th Symp.On Operating Systems Design and Implementation(OSDI 2006).Seattle: USENIX Association,2006.205-218.[5] 大数据时代环境下数据库的发展趋势与影响[D].中国传媒大学,2014.作者单位辽宁本溪广播电视大学 辽宁省本溪市 117000<<上接180页。