Using the AWS SDK for Java with Amazon Redshift
The AWS SDK for Java provides a class named
AmazonRedshiftClient, which you
can use to interact with Amazon Redshift. For information about downloading the AWS SDK for Java,
go to AWS SDK for Java.
The AWS SDK for Java provides thread-safe clients for accessing Amazon Redshift. As a best practice, your applications should create one client and reuse the client between threads.
AmazonRedshiftClient class defines methods that map to underlying
Amazon Redshift Query API actions. (These actions are described in the Amazon Redshift API
Reference). When you call a method, you must create a corresponding request
object and response object. The request object includes information that you must pass with
the actual request. The response object include information returned from Amazon Redshift in
response to the request.
For example, the
AmazonRedshiftClient class provides the
createCluster method to provision a cluster. This method maps to the
underlying CreateCluster API action. You create a
to pass information with the
AmazonRedshiftClient client = new AmazonRedshiftClient(credentials); client.setEndpoint("https://redshift.us-east-1.amazonaws.com/"); CreateClusterRequest request = new CreateClusterRequest() .withClusterIdentifier("exampleclusterusingjava") .withMasterUsername("masteruser") .withMasterUserPassword("12345678Aa") .withNodeType("ds1.xlarge") .withNumberOfNodes(2); Cluster createResponse = client.createCluster(request); System.out.println("Created cluster " + createResponse.getClusterIdentifier());
Running Java Examples for Amazon Redshift Using Eclipse
General Process of Running Java Code Examples Using Eclipse
Create a new AWS Java Project in Eclipse.
Follow the steps in Setting Up the AWS Toolkit for Eclipse in the AWS Toolkit for Eclipse Getting Started Guide.
Copy the sample code from the section of this document that you are reading and paste it into your project as a new Java class file.
Run the code.
Running Java Examples for Amazon Redshift from the Command Line
General Process of Running Java Code Examples from the Command Line
Set up and test your environment as follows:
Create a directory to work in and in it create
Download the AWS SDK for Java and unzip it to the
sdksubfolder you created. After you unzip the SDK, you should have four subdirectories in the
sdkfolder, including a
Supply your AWS credentials to the SDK for Java. For more information, go to Providing AWS Credentials in the AWS SDK for Java in the AWS SDK for Java Developer Guide.
Ensure that you can run the Java program compiler (
javac) and the Java application launcher (
java) from your working directory. You can test by running the following commands:
javac -help java -help
Put the code that you want to run in a .java file, and save the file in the
srcfolder. To illustrate the process, we use the code from Managing Cluster Security Groups Using the AWS SDK for Java so that the file in the
Compile the code.
javac -cp sdk/lib/aws-java-sdk-1.3.18.jar -d bin src\CreateAndModifyClusterSecurityGroup.java
If you are using a different version of the AWS SDK for Java, adjust the classpath (
-cp) for your version.
Run the code. In the following command, line breaks are added for readability.
java -cp "bin; sdk/lib/*; sdk/third-party/commons-logging-1.1.1/*; sdk/third-party/httpcomponents-client-4.1.1/*; sdk/third-party/jackson-core-1.8/*" CreateAndModifyClusterSecurityGroup
Change the class path separator as needed for your operating system. For example, for Windows, the separator is ";" (as shown), and for Unix, it is ":". Other code examples may require more libraries than are shown in this example, or the version of the AWS SDK you are working with may have different third-party folder names. For these cases, adjust the classpath (
-cp) as appropriate.
To run samples in this document, use a version of the AWS SDK that supports Amazon Redshift. To get the latest version of the AWS SDK for Java, go to AWS SDK for Java.
Setting the Endpoint
By default, the AWS SDK for Java uses the endpoint
https://redshift.us-east-1.amazonaws.com/. You can set the endpoint
explicitly with the
client.setEndpoint method as shown in the following
Java code snippet.
client = new AmazonRedshiftClient(credentials); client.setEndpoint("https://redshift.us-east-1.amazonaws.com/");
For a list of supported AWS regions where you can provision a cluster, go to the Regions and Endpoints section in the Amazon Web Services Glossary.