Class AmazonSimpleDBClient
- java.lang.Object
-
- com.amazonaws.AmazonWebServiceClient
-
- com.amazonaws.services.simpledb.AmazonSimpleDBClient
-
- All Implemented Interfaces:
AmazonSimpleDB
- Direct Known Subclasses:
AmazonSimpleDBAsyncClient
@ThreadSafe public class AmazonSimpleDBClient extends AmazonWebServiceClient implements AmazonSimpleDB
Client for accessing Amazon SimpleDB. All service calls made using this client are blocking, and will not return until the service call completes.Amazon SimpleDB is a web service providing the core database functions of data indexing and querying in the cloud. By offloading the time and effort associated with building and operating a web-scale database, SimpleDB provides developers the freedom to focus on application development.
A traditional, clustered relational database requires a sizable upfront capital outlay, is complex to design, and often requires extensive and repetitive database administration. Amazon SimpleDB is dramatically simpler, requiring no schema, automatically indexing your data and providing a simple API for storage and access. This approach eliminates the administrative burden of data modeling, index maintenance, and performance tuning. Developers gain access to this functionality within Amazon's proven computing environment, are able to scale instantly, and pay only for what they use.
Visit http://aws.amazon.com/simpledb/ for more information.
-
-
Field Summary
Fields Modifier and Type Field Description protected static ClientConfigurationFactoryconfigFactoryClient configuration factory providing ClientConfigurations tailored to this clientprotected List<com.amazonaws.transform.Unmarshaller<AmazonServiceException,Node>>exceptionUnmarshallersList of exception unmarshallers for all modeled exceptions-
Fields inherited from class com.amazonaws.AmazonWebServiceClient
client, clientConfiguration, endpoint, LOGGING_AWS_REQUEST_METRIC, requestHandler2s, timeOffset
-
-
Constructor Summary
Constructors Constructor Description AmazonSimpleDBClient()Constructs a new client to invoke service methods on Amazon SimpleDB.AmazonSimpleDBClient(AWSCredentials awsCredentials)Constructs a new client to invoke service methods on Amazon SimpleDB using the specified AWS account credentials.AmazonSimpleDBClient(AWSCredentialsProvider awsCredentialsProvider)Constructs a new client to invoke service methods on Amazon SimpleDB using the specified AWS account credentials provider.AmazonSimpleDBClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration)Constructs a new client to invoke service methods on Amazon SimpleDB using the specified AWS account credentials provider and client configuration options.AmazonSimpleDBClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector)Constructs a new client to invoke service methods on Amazon SimpleDB using the specified AWS account credentials provider, client configuration options, and request metric collector.AmazonSimpleDBClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration)Constructs a new client to invoke service methods on Amazon SimpleDB using the specified AWS account credentials and client configuration options.AmazonSimpleDBClient(ClientConfiguration clientConfiguration)Constructs a new client to invoke service methods on Amazon SimpleDB.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BatchDeleteAttributesResultbatchDeleteAttributes(BatchDeleteAttributesRequest batchDeleteAttributesRequest)Performs multiple DeleteAttributes operations in a single call, which reduces round trips and latencies.BatchPutAttributesResultbatchPutAttributes(BatchPutAttributesRequest batchPutAttributesRequest)TheBatchPutAttributesoperation creates or replaces attributes within one or more items.CreateDomainResultcreateDomain(CreateDomainRequest createDomainRequest)TheCreateDomainoperation creates a new domain.DeleteAttributesResultdeleteAttributes(DeleteAttributesRequest deleteAttributesRequest)Deletes one or more attributes associated with an item.DeleteDomainResultdeleteDomain(DeleteDomainRequest deleteDomainRequest)TheDeleteDomainoperation deletes a domain.DomainMetadataResultdomainMetadata(DomainMetadataRequest domainMetadataRequest)Returns information about the domain, including when the domain was created, the number of items and attributes in the domain, and the size of the attribute names and values.GetAttributesResultgetAttributes(GetAttributesRequest getAttributesRequest)Returns all of the attributes associated with the specified item.SimpleDBResponseMetadatagetCachedResponseMetadata(AmazonWebServiceRequest request)Returns additional metadata for a previously executed successful, request, typically used for debugging issues where a service isn't acting as expected.ListDomainsResultlistDomains()Simplified method form for invoking the ListDomains operation.ListDomainsResultlistDomains(ListDomainsRequest listDomainsRequest)TheListDomainsoperation lists all domains associated with the Access Key ID.PutAttributesResultputAttributes(PutAttributesRequest putAttributesRequest)The PutAttributes operation creates or replaces attributes in an item.SelectResultselect(SelectRequest selectRequest)TheSelectoperation returns a set of attributes forItemNamesthat match the select expression.-
Methods inherited from class com.amazonaws.AmazonWebServiceClient
addRequestHandler, addRequestHandler, beforeMarshalling, configureRegion, createExecutionContext, createExecutionContext, createExecutionContext, endClientExecution, endClientExecution, findRequestMetricCollector, getEndpointPrefix, getRequestMetricsCollector, getServiceAbbreviation, getServiceName, getServiceNameIntern, getSigner, getSignerByURI, getSignerRegionOverride, getTimeOffset, isProfilingEnabled, isRequestMetricsEnabled, removeRequestHandler, removeRequestHandler, requestMetricCollector, setEndpoint, setEndpointPrefix, setRegion, setServiceNameIntern, setSignerRegionOverride, setTimeOffset, shutdown, withEndpoint, withRegion, withRegion, withTimeOffset
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.amazonaws.services.simpledb.AmazonSimpleDB
setEndpoint, setRegion
-
-
-
-
Field Detail
-
configFactory
protected static final ClientConfigurationFactory configFactory
Client configuration factory providing ClientConfigurations tailored to this client
-
exceptionUnmarshallers
protected final List<com.amazonaws.transform.Unmarshaller<AmazonServiceException,Node>> exceptionUnmarshallers
List of exception unmarshallers for all modeled exceptions
-
-
Constructor Detail
-
AmazonSimpleDBClient
public AmazonSimpleDBClient()
Constructs a new client to invoke service methods on Amazon SimpleDB. A credentials provider chain will be used that searches for credentials in this order:- Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
- Java System Properties - aws.accessKeyId and aws.secretKey
- Instance profile credentials delivered through the Amazon EC2 metadata service
All service calls made using this new client object are blocking, and will not return until the service call completes.
- See Also:
DefaultAWSCredentialsProviderChain
-
AmazonSimpleDBClient
public AmazonSimpleDBClient(ClientConfiguration clientConfiguration)
Constructs a new client to invoke service methods on Amazon SimpleDB. A credentials provider chain will be used that searches for credentials in this order:- Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
- Java System Properties - aws.accessKeyId and aws.secretKey
- Instance profile credentials delivered through the Amazon EC2 metadata service
All service calls made using this new client object are blocking, and will not return until the service call completes.
- Parameters:
clientConfiguration- The client configuration options controlling how this client connects to Amazon SimpleDB (ex: proxy settings, retry counts, etc.).- See Also:
DefaultAWSCredentialsProviderChain
-
AmazonSimpleDBClient
public AmazonSimpleDBClient(AWSCredentials awsCredentials)
Constructs a new client to invoke service methods on Amazon SimpleDB using the specified AWS account credentials.All service calls made using this new client object are blocking, and will not return until the service call completes.
- Parameters:
awsCredentials- The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
-
AmazonSimpleDBClient
public AmazonSimpleDBClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration)
Constructs a new client to invoke service methods on Amazon SimpleDB using the specified AWS account credentials and client configuration options.All service calls made using this new client object are blocking, and will not return until the service call completes.
- Parameters:
awsCredentials- The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.clientConfiguration- The client configuration options controlling how this client connects to Amazon SimpleDB (ex: proxy settings, retry counts, etc.).
-
AmazonSimpleDBClient
public AmazonSimpleDBClient(AWSCredentialsProvider awsCredentialsProvider)
Constructs a new client to invoke service methods on Amazon SimpleDB using the specified AWS account credentials provider.All service calls made using this new client object are blocking, and will not return until the service call completes.
- Parameters:
awsCredentialsProvider- The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
-
AmazonSimpleDBClient
public AmazonSimpleDBClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration)
Constructs a new client to invoke service methods on Amazon SimpleDB using the specified AWS account credentials provider and client configuration options.All service calls made using this new client object are blocking, and will not return until the service call completes.
- Parameters:
awsCredentialsProvider- The AWS credentials provider which will provide credentials to authenticate requests with AWS services.clientConfiguration- The client configuration options controlling how this client connects to Amazon SimpleDB (ex: proxy settings, retry counts, etc.).
-
AmazonSimpleDBClient
public AmazonSimpleDBClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector)
Constructs a new client to invoke service methods on Amazon SimpleDB using the specified AWS account credentials provider, client configuration options, and request metric collector.All service calls made using this new client object are blocking, and will not return until the service call completes.
- Parameters:
awsCredentialsProvider- The AWS credentials provider which will provide credentials to authenticate requests with AWS services.clientConfiguration- The client configuration options controlling how this client connects to Amazon SimpleDB (ex: proxy settings, retry counts, etc.).requestMetricCollector- optional request metric collector
-
-
Method Detail
-
batchDeleteAttributes
public BatchDeleteAttributesResult batchDeleteAttributes(BatchDeleteAttributesRequest batchDeleteAttributesRequest)
Performs multiple DeleteAttributes operations in a single call, which reduces round trips and latencies. This enables Amazon SimpleDB to optimize requests, which generally yields better throughput.
The following limitations are enforced for this operation:
- 1 MB request size
- 25 item limit per BatchDeleteAttributes operation
- Specified by:
batchDeleteAttributesin interfaceAmazonSimpleDB- Parameters:
batchDeleteAttributesRequest-- Returns:
- Result of the BatchDeleteAttributes operation returned by the service.
-
batchPutAttributes
public BatchPutAttributesResult batchPutAttributes(BatchPutAttributesRequest batchPutAttributesRequest)
The
BatchPutAttributesoperation creates or replaces attributes within one or more items. By using this operation, the client can perform multiple PutAttribute operation with a single call. This helps yield savings in round trips and latencies, enabling Amazon SimpleDB to optimize requests and generally produce better throughput.The client may specify the item name with the
Item.X.ItemNameparameter. The client may specify new attributes using a combination of theItem.X.Attribute.Y.NameandItem.X.Attribute.Y.Valueparameters. The client may specify the first attribute for the first item using the parametersItem.0.Attribute.0.NameandItem.0.Attribute.0.Value, and for the second attribute for the first item by the parametersItem.0.Attribute.1.NameandItem.0.Attribute.1.Value, and so on.Attributes are uniquely identified within an item by their name/value combination. For example, a single item can have the attributes
{ "first_name", "first_value" }and{ "first_name", "second_value" }. However, it cannot have two attribute instances where both theItem.X.Attribute.Y.NameandItem.X.Attribute.Y.Valueare the same.Optionally, the requester can supply the
Replaceparameter for each individual value. Setting this value totruewill cause the new attribute values to replace the existing attribute values. For example, if an itemIhas the attributes{ 'a', '1' }, { 'b', '2'}and{ 'b', '3' }and the requester does a BatchPutAttributes of{'I', 'b', '4' }with the Replace parameter set to true, the final attributes of the item will be{ 'a', '1' }and{ 'b', '4' }, replacing the previous values of the 'b' attribute with the new value.This operation is vulnerable to exceeding the maximum URL size when making a REST request using the HTTP GET method. This operation does not support conditions using Expected.X.Name,Expected.X.Value, orExpected.X.Exists.You can execute multiple
BatchPutAttributesoperations and other operations in parallel. However, large numbers of concurrentBatchPutAttributescalls can result in Service Unavailable (503) responses.The following limitations are enforced for this operation:
- 256 attribute name-value pairs per item
- 1 MB request size
- 1 billion attributes per domain
- 10 GB of total user data storage per domain
- 25 item limit per
BatchPutAttributesoperation
- Specified by:
batchPutAttributesin interfaceAmazonSimpleDB- Parameters:
batchPutAttributesRequest-- Returns:
- Result of the BatchPutAttributes operation returned by the service.
- Throws:
DuplicateItemNameException- The item name was specified more than once.InvalidParameterValueException- The value for a parameter is invalid.MissingParameterException- The request must contain the specified missing parameter.NoSuchDomainException- The specified domain does not exist.NumberItemAttributesExceededException- Too many attributes in this item.NumberDomainAttributesExceededException- Too many attributes in this domain.NumberDomainBytesExceededException- Too many bytes in this domain.NumberSubmittedItemsExceededException- Too many items exist in a single call.NumberSubmittedAttributesExceededException- Too many attributes exist in a single call.
-
createDomain
public CreateDomainResult createDomain(CreateDomainRequest createDomainRequest)
The
CreateDomainoperation creates a new domain. The domain name should be unique among the domains associated with the Access Key ID provided in the request. TheCreateDomainoperation may take 10 or more seconds to complete.The client can create up to 100 domains per account.
If the client requires additional domains, go to http://aws.amazon.com/contact-us/simpledb-limit-request/.
- Specified by:
createDomainin interfaceAmazonSimpleDB- Parameters:
createDomainRequest-- Returns:
- Result of the CreateDomain operation returned by the service.
- Throws:
InvalidParameterValueException- The value for a parameter is invalid.MissingParameterException- The request must contain the specified missing parameter.NumberDomainsExceededException- Too many domains exist per this account.
-
deleteAttributes
public DeleteAttributesResult deleteAttributes(DeleteAttributesRequest deleteAttributesRequest)
Deletes one or more attributes associated with an item. If all attributes of the item are deleted, the item is deleted.
DeleteAttributesis an idempotent operation; running it multiple times on the same item or attribute does not result in an error response.Because Amazon SimpleDB makes multiple copies of item data and uses an eventual consistency update model, performing a GetAttributes or Select operation (read) immediately after a
DeleteAttributesor PutAttributes operation (write) might not return updated item data.- Specified by:
deleteAttributesin interfaceAmazonSimpleDB- Parameters:
deleteAttributesRequest-- Returns:
- Result of the DeleteAttributes operation returned by the service.
- Throws:
InvalidParameterValueException- The value for a parameter is invalid.MissingParameterException- The request must contain the specified missing parameter.NoSuchDomainException- The specified domain does not exist.AttributeDoesNotExistException- The specified attribute does not exist.
-
deleteDomain
public DeleteDomainResult deleteDomain(DeleteDomainRequest deleteDomainRequest)
The
DeleteDomainoperation deletes a domain. Any items (and their attributes) in the domain are deleted as well. TheDeleteDomainoperation might take 10 or more seconds to complete.- Specified by:
deleteDomainin interfaceAmazonSimpleDB- Parameters:
deleteDomainRequest-- Returns:
- Result of the DeleteDomain operation returned by the service.
- Throws:
MissingParameterException- The request must contain the specified missing parameter.
-
domainMetadata
public DomainMetadataResult domainMetadata(DomainMetadataRequest domainMetadataRequest)
Returns information about the domain, including when the domain was created, the number of items and attributes in the domain, and the size of the attribute names and values.
- Specified by:
domainMetadatain interfaceAmazonSimpleDB- Parameters:
domainMetadataRequest-- Returns:
- Result of the DomainMetadata operation returned by the service.
- Throws:
MissingParameterException- The request must contain the specified missing parameter.NoSuchDomainException- The specified domain does not exist.
-
getAttributes
public GetAttributesResult getAttributes(GetAttributesRequest getAttributesRequest)
Returns all of the attributes associated with the specified item. Optionally, the attributes returned can be limited to one or more attributes by specifying an attribute name parameter.
If the item does not exist on the replica that was accessed for this operation, an empty set is returned. The system does not return an error as it cannot guarantee the item does not exist on other replicas.
- Specified by:
getAttributesin interfaceAmazonSimpleDB- Parameters:
getAttributesRequest-- Returns:
- Result of the GetAttributes operation returned by the service.
- Throws:
InvalidParameterValueException- The value for a parameter is invalid.MissingParameterException- The request must contain the specified missing parameter.NoSuchDomainException- The specified domain does not exist.
-
listDomains
public ListDomainsResult listDomains(ListDomainsRequest listDomainsRequest)
The
ListDomainsoperation lists all domains associated with the Access Key ID. It returns domain names up to the limit set by MaxNumberOfDomains. A NextToken is returned if there are more thanMaxNumberOfDomainsdomains. CallingListDomainssuccessive times with theNextTokenprovided by the operation returns up toMaxNumberOfDomainsmore domain names with each successive operation call.- Specified by:
listDomainsin interfaceAmazonSimpleDB- Parameters:
listDomainsRequest-- Returns:
- Result of the ListDomains operation returned by the service.
- Throws:
InvalidParameterValueException- The value for a parameter is invalid.InvalidNextTokenException- The specified NextToken is not valid.
-
listDomains
public ListDomainsResult listDomains()
Description copied from interface:AmazonSimpleDBSimplified method form for invoking the ListDomains operation.- Specified by:
listDomainsin interfaceAmazonSimpleDB- See Also:
AmazonSimpleDB.listDomains(ListDomainsRequest)
-
putAttributes
public PutAttributesResult putAttributes(PutAttributesRequest putAttributesRequest)
The PutAttributes operation creates or replaces attributes in an item. The client may specify new attributes using a combination of the
Attribute.X.NameandAttribute.X.Valueparameters. The client specifies the first attribute by the parametersAttribute.0.NameandAttribute.0.Value, the second attribute by the parametersAttribute.1.NameandAttribute.1.Value, and so on.Attributes are uniquely identified in an item by their name/value combination. For example, a single item can have the attributes
{ "first_name", "first_value" }and{ "first_name", second_value" }. However, it cannot have two attribute instances where both theAttribute.X.NameandAttribute.X.Valueare the same.Optionally, the requestor can supply the
Replaceparameter for each individual attribute. Setting this value totruecauses the new attribute value to replace the existing attribute value(s). For example, if an item has the attributes{ 'a', '1' },{ 'b', '2'}and{ 'b', '3' }and the requestor callsPutAttributesusing the attributes{ 'b', '4' }with theReplaceparameter set to true, the final attributes of the item are changed to{ 'a', '1' }and{ 'b', '4' }, which replaces the previous values of the 'b' attribute with the new value.You cannot specify an empty string as an attribute name.
Because Amazon SimpleDB makes multiple copies of client data and uses an eventual consistency update model, an immediate GetAttributes or Select operation (read) immediately after a PutAttributes or DeleteAttributes operation (write) might not return the updated data.
The following limitations are enforced for this operation:
- 256 total attribute name-value pairs per item
- One billion attributes per domain
- 10 GB of total user data storage per domain
- Specified by:
putAttributesin interfaceAmazonSimpleDB- Parameters:
putAttributesRequest-- Returns:
- Result of the PutAttributes operation returned by the service.
- Throws:
InvalidParameterValueException- The value for a parameter is invalid.MissingParameterException- The request must contain the specified missing parameter.NoSuchDomainException- The specified domain does not exist.NumberDomainAttributesExceededException- Too many attributes in this domain.NumberDomainBytesExceededException- Too many bytes in this domain.NumberItemAttributesExceededException- Too many attributes in this item.AttributeDoesNotExistException- The specified attribute does not exist.
-
select
public SelectResult select(SelectRequest selectRequest)
The
Selectoperation returns a set of attributes forItemNamesthat match the select expression.Selectis similar to the standard SQL SELECT statement.The total size of the response cannot exceed 1 MB in total size. Amazon SimpleDB automatically adjusts the number of items returned per page to enforce this limit. For example, if the client asks to retrieve 2500 items, but each individual item is 10 kB in size, the system returns 100 items and an appropriate
NextTokenso the client can access the next page of results.For information on how to construct select expressions, see Using Select to Create Amazon SimpleDB Queries in the Developer Guide.
- Specified by:
selectin interfaceAmazonSimpleDB- Parameters:
selectRequest-- Returns:
- Result of the Select operation returned by the service.
- Throws:
InvalidParameterValueException- The value for a parameter is invalid.InvalidNextTokenException- The specified NextToken is not valid.InvalidNumberPredicatesException- Too many predicates exist in the query expression.InvalidNumberValueTestsException- Too many predicates exist in the query expression.InvalidQueryExpressionException- The specified query expression syntax is not valid.MissingParameterException- The request must contain the specified missing parameter.NoSuchDomainException- The specified domain does not exist.RequestTimeoutException- A timeout occurred when attempting to query the specified domain with specified query expression.TooManyRequestedAttributesException- Too many attributes requested.
-
getCachedResponseMetadata
public SimpleDBResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request)
Returns additional metadata for a previously executed successful, request, typically used for debugging issues where a service isn't acting as expected. This data isn't considered part of the result data returned by an operation, so it's available through this separate, diagnostic interface.Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic information for an executed request, you should use this method to retrieve it as soon as possible after executing the request.
- Parameters:
request- The originally executed request- Returns:
- The response metadata for the specified request, or null if none is available.
-
-