Amazon SimpleDB——网络数据存储的新选择
12月,Amazon发布了SimpleDB产品的测试版。SimpleDB是Amazon Web Services——也就是AWS——工具套装的一部分。Amazon SimpleDB给那些使用基于云技术应用软件的公司提供了一个存储简单数据场所。对用户来说,这个产品特别适用于快速查找资料的场合。
该公司的这项工作已经开始了一段时间了;事实上早在一年前Amazon就推出了这个计划的早期版本,一些用户已经从那个时候开始使用该产品了。在那之后,Amazon又对SimpleDB做了许多调整改进工作,很明显这是Amazon在听从客户建议之后所做的努力。
现在推出的这个测试版(任何人都可以使用)与客户理想中的最终产品越来越接近。我现在已经决定试用一下,因为我是Visual Studio的研发者,我所选择的工具是C#Visual Studio库(Amazon也为其他包括Java,Perl和PHP在内的平台提供了几种官方库)。
使用
SimpleDB采用了一种很独特的存储方法,使人们可以在云基础的应用软件上存储简单数据。这种方法与电子表格程序类似,并且一定是非关联性的。(这让我想起了Google的BigTable。这个软件能通过Google App Engine运用到一个叫DataStore的小型表格中去。)当SimpleDB不能满足你的要求时,Amazon还提供许多其它的数据库。比如说公司提供Amazon Simple Storage用于存储文件。EC2(弹性计算云)是这个软件的主要云平台,在这个平台上,你可以运行任何数据库服务器,其中也包括了SQL服务器。这就意味着你并不是只能选择SimpleDB。
总览
SimpleDB(与Google的DataStore相类似)的主要宗旨就是阅读速度快。虽然并非全部的网站都需要快速进行资料检索,但至少绝大部分的网站有这样的需求,而且它们对资料检索速度的要求远远高于对资料存储的要求。Amazon的自有网站就是一个典型的例子。人们在Amazon的网上浏览书籍和其它产品,一定希望很快就能打开相应的网页。此时,除了记录下你的浏览历史之外,基本上没有什么资料存储工作。人们可不想苦苦等待这些网页慢慢打开。但又比如说当人们在Amazon的论坛上发帖时,最后的帖子发布过程会有延迟——这段时间虽然很短,但大家还是可以发现。可显然大家对这个现象表现出了相当的宽容。总的来说,对绝大部分人来说,让他们满意的应该是可以快的阅读速度以及相对来说可能慢一些的书写速度。这些就是SimpleDB(与 Google DataStore)提供的主要功能。
尽管现在市场上大部分的数据库都是关系型的(并且采用的是SQL语言),可以肯定的是SimpleDB一定是非关联性的。用户并不是在表格相同的条条框框里创建资料,而是创建一个称为域的资料集用于存放资料项。每一个资料项能够有多种“属性”,每一个属性都可以单独命名。
这些就是SimpleDB与传统的关系型数据库大不相同的地方。SimpleDB提供的样本文件就是很好的例子。假定你想创建一个域用于存储产品信息。对你来说,一项产品有可能是一件衣服,这件衣服可能会有多种属性,比如说颜色,尺寸等等。另一项产品可能又是一件与衣服完全不同的产品,比如说是一个汽车引擎。汽车引擎的属性里不包括颜色与尺寸,但是却会有其他内容,比如说型号、生产年份等等。
你可以在同一个域里创建下述数据:
l Item1: Category=Clothes; SubCategory=Sweater; Name=Cathair Sweater; Color=Siamese, Size=Small, Medium, Large.
l 项1:Category=Clothes; SubCategory=Sweater; Name=Cathair Sweater; Color=Siamese, Size=Small, Medium, Large.
l Item2: Category=Car Parts; SubCategory=Engine; Name=Turbos; Make=Audi; Model=S4; Year=2000,2001,2002.
l 项2:Category=Car Parts; SubCategory=Engine; Name=Turbos; Make=Audi; Model=S4; Year=2000,2001,2002.
要注意的是,两项产品同时拥有属性目录,支目录以及品牌这三项。但是其它的属性却是各自产品特有的。同时还要注意的是同一个属性值可以同时存储多个数值。对项1套衫来说,尺寸这项就有三个值,分别是:小,中和大。对项2引擎来说,生产年份同样有三个值:2000,2001和2002。
库以及访问方法
我提到过我选择了C#库。这里我想说明一点:这些库是Amazon自己编写的,但并不是唯一可供选择的库。SimpleDB的界面访问可以从下面两种方法中任意选一个:一是作为网络服务器(运用SOAP),另一个是REST(Representational State Transfer,代表性状态传输)。C#库包括了许多不同的类型和方法,这些类和方法都可以和SimpleDB互动。这些库会自动以一种隐蔽的方式创建 URL,同时将它们发送到网络服务器,等待反馈。反馈将以下面的形式出现:(顺便提一句,如果你对REST非常感兴趣,网上有很多关于Amazon在创建自身界面时是否打破了非官方REST条例的讨论。这篇文章里就这个问题我不打算做更深入的讨论。但是如果你们对这些信息有兴趣的话,上网以 SimpleDB REST为关键词用google搜索一下就可以找到这类信息。)
既然C#库可以简单地创建了REST请求,
果果29 发表于: 2009-07-17
我要回答相关推荐
-
Nutanix公司CEO:接下来,我们将实现超融合云
Nutanix公司继续保持强劲增长,上季度收入同比增长44%。在上周四,这个超融合先锋表示已经收购云管理初创公 […]
-
云中数据存储需谨慎
基于云计算的数据存储、云计算以及各种aaS形式的服务开始刷存在感,为本地基础架构蒙上了一层阴影。云服务既经济又容易使用——如果你知道诀窍的话。需慎重处理云计算问题,你可能会遇到熟悉的本地存储问题。
-
企业数据保护策略:别忘了磁带与云
云计算在短期数据存取与保存方面能够发挥巨大作用;同样,在数据的长期归档存放应用领域,它同样颇具价值。
-
重磅发布31款云服务 华为强势推进企业云计算2.0
2016年,是中国云计算市场走出泡沫走向多元发展的关键一年,是企业云服务走向下一个十年的2.0阶段。那么云计算2.0时代的关注点是什么?企业云服务作为各家的战略性业务又将如何发轫?
-
数据发展20年
过去20年,数据的规模和互联网用户普及率伴随着信息技术革新发生了量的飞跃。未来,随着物联网、大数据、云计算、移动社交等技术快速演进,基于无限的数据交互将创生更多改变世界的科技产物。人类将进入全息体验的数字生活时代。