Amazon SimpleDB (二) 使用

关于使用,这是一个heloworld教程,首先我们创建一个域domain,相当于一个表。

注意我们并不能做域之间的连接操作,单次查询都只能针对一个域,不能跨域,这是SimpleDB的一个限制,所以开发者应当规划好,别选错了域。另外所有的存储都是string,UTF-8编码的。

你可以用Java,Python,ruby的开发包,这里不多讲了,这里只列举http请求和响应,以REST方式为例。

1 先创建一个domain

https://sdb.amazonaws.com/
?Action=CreateDomain
&AWSAccessKeyId=[valid access key id]
&DomainName=hongchangfirst
&SignatureVersion=2
&SignatureMethod=HmacSHA256
&Timestamp=2014-01-25T15%3A01%3A28-07%3A00
&Version=2009-04-15
&Signature=[valid signature]

响应为

<CreateDomainResponse>
  <ResponseMetadata>
    <RequestId>2a1305a2-ed1c-43fc-b7c4-e6966b5e2727</RequestId>
    <BoxUsage>0.0000219907</BoxUsage>
  </ResponseMetadata>
</CreateDomainResponse>


2 加一个数据进去,replace代表不是添加一个值,而是替换响应的值,避免关联多值。

https://sdb.amazonaws.com/
?Action=PutAttributes
&DomainName=hongchangfirst
&ItemName=zhc
&Attribute.1.Name=Color
&Attribute.1.Value=Blue
&Attribute.2.Name=Price
&Attribute.2.Value=0014.99
&Attribute.2.Replace=true
&AWSAccessKeyId=[valid access key id]
&SignatureVersion=2
&SignatureMethod=HmacSHA256
&Timestamp=2010-01-25T15%3A03%3A05-07%3A00
&Version=2009-04-15
&Signature=[valid signature]

响应为:

<PutAttributesResponse>
  <ResponseMetadata>
    <RequestId>490206ce-8292-456c-a00f-61b335eb202b</RequestId>
    <BoxUsage>0.0000219907</BoxUsage>
  </ResponseMetadata>
</PutAttributesResponse>


3 去拿到刚才加进去的数据

https://sdb.amazonaws.com/
?Action=GetAttributes
&AWSAccessKeyId=[valid access key id]
&DomainName=hongchangfirst
&ItemName=zhc
&SignatureVersion=2
&SignatureMethod=HmacSHA256
&Timestamp=2010-01-25T15%3A03%3A07-07%3A00
&Version=2009-04-15
&Signature=[valid signature]

响应为:

<GetAttributesResponse>
  <GetAttributesResult>
    <Attribute><Name>Color</Name><Value>Blue</Value></Attribute>
    <Attribute><Name>Price</Name><Value>0014.99</Value></Attribute>
  </GetAttributesResult>
  <ResponseMetadata>
    <RequestId>b1e8f1f7-42e9-494c-ad09-2674e557526d</RequestId>
    <BoxUsage>0.0000219907</BoxUsage>
  </ResponseMetadata>
</GetAttributesResponse>


4 SimpleDB还有一个特点是可以使用类select语句查询相关属性值,limit限制一次响应的item数。

select output_list
from domain_name
[where expression]
[sort_instructions]
[limit limit] 


想选只拥有一个值的属性,就用where every(name) = value。


原文:http://blog.csdn.net/hongchangfirst/article/details/25538133

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst


Amazon SimpleDB (二) 使用,布布扣,bubuko.com

Amazon SimpleDB (二) 使用

上一篇:SQL学习_查询重复数据和连接多个表数据的方法


下一篇:[Oracle] enq: TX - row lock contention 优化案例