结合使用 Amazon SDK for Java 与 Amazon Redshift - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

结合使用 Amazon SDK for Java 与 Amazon Redshift

Amazon SDK for Java 提供一个名为 AmazonRedshiftClientBuilder 的类,您可以使用它与 Amazon Redshift 进行交互。有关下载Amazon SDK for Java的信息,请转到Amazon SDK for Java

注意

Amazon SDK for Java 提供了用于访问 Amazon Redshift 的线程安全客户端。应用程序应创建一个客户端并在线程之间重复使用此客户端,您应将此作为一项最佳实践。

您可以使用 AmazonRedshiftClientBuilderAwsClientBuilder 类配置终端节点并创建 AmazonRedshift 客户端。然后,您可以使用客户端对象来创建 Cluster 对象的实例。Cluster 对象包括映射到基础 Amazon Redshift 查询 API 操作的方法。(在 Amazon Redshift API 参考中介绍了这些操作。) 调用某个方法时,您必须创建对应的请求对象。请求对象包含必须通过实际请求传递的信息。Cluster 对象提供从 Amazon Redshift 返回的信息来响应请求。

以下示例说明如何使用 AmazonRedshiftClientBuilder 类配置终端节点,然后创建由 2 个节点组成的 ds2.xlarge 集群。

String endpoint = "https://redshift.us-east-1.amazonaws.com/"; String region = "us-east-1"; AwsClientBuilder.EndpointConfiguration config = new AwsClientBuilder.EndpointConfiguration(endpoint, region); AmazonRedshiftClientBuilder clientBuilder = AmazonRedshiftClientBuilder.standard(); clientBuilder.setEndpointConfiguration(config); AmazonRedshift client = clientBuilder.build(); CreateClusterRequest request = new CreateClusterRequest() .withClusterIdentifier("exampleclusterusingjava") .withMasterUsername("masteruser") .withMasterUserPassword("12345678Aa") .withNodeType("ds2.xlarge") .withNumberOfNodes(2); Cluster createResponse = client.createCluster(request); System.out.println("Created cluster " + createResponse.getClusterIdentifier());

使用 Eclipse 运行 Amazon Redshift 的 Java 示例

使用 Eclipse 运行 Java 代码示例的一般流程
  1. 在 Eclipse 中创建一个新的 Amazon Java 项目

    Amazon Toolkit for Eclipse 入门指南中的设置 Amazon Toolkit for Eclipse 中的步骤操作。

  2. 复制本文档中您正在阅读的部分的示例代码,将其作为新的 Java 类文件粘贴到您的项目中。

  3. 运行该代码。

从命令行中运行 Amazon Redshift 的 Java 示例

从命令行中运行 Java 代码示例的一般流程
  1. 按照以下操作设置并测试您的环境:

    1. 创建一个工作目录,并在其中创建 srcbinsdk 子文件夹。

    2. 下载 Amazon SDK for Java,并将它解压到您创建的 sdk 子文件夹中。解压开发工具包后,sdk 文件夹中应该会有四个子目录,包括 libthird-party 文件夹。

    3. 为 SDK for Java 提供 Amazon 凭证。有关更多信息,请转至 Amazon SDK for Java 开发人员指南中的在 Amazon SDK for Java 中提供 Amazon 凭证

    4. 确保您可以从工作目录运行 Java 程序编译器 (javac) 和 Java 应用程序启动器 (java)。您可以通过运行以下命令进行测试:

      javac -help java -help
  2. 将您要运行的代码放入一个 .java 文件中,并将该文件保存在 src 文件夹中。为了说明此过程,我们使用了 使用 Amazon SDK for Java 管理集群 中的代码,因此 src 目录中的文件是 CreateAndModifyClusters.java

  3. 编译该代码。

    javac -cp sdk/lib/aws-java-sdk-1.3.18.jar -d bin src\CreateAndModifyClusters.java

    如果您使用的是 Amazon SDK for Java 的其他版本,请调整您的版本的类路径 (-cp)。

  4. 运行该代码。在下面的命令中,我们添加了换行符以便于阅读。

    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/*" CreateAndModifyClusters

    根据您的操作系统的需要更改类路径分隔符。例如,对于 Windows,分隔符是“;”(如示例所示),而对于 Unix,它是“:”。其他代码示例需要的库可能比此示例所示的要多,或者您使用的 Amazon 开发工具包版本可能具有不同的第三方文件夹名称。对于这些情况,请适当调整类路径 (-cp)。

    要运行本文档中的示例,请使用支持 Amazon Redshift 的 Amazon 开发工具包版本。要获取最新版本的 Amazon SDK for Java,转到 Amazon SDK for Java

设置终端节点

默认情况下,Amazon SDK for Java会使用终端节点 https://redshift.us-east-1.amazonaws.com/。您可以利用以下 Java 代码段中所示的 client.setEndpoint 方法明确设置终端节点。

client = new AmazonRedshiftClient(credentials); client.setEndpoint("https://redshift.us-east-1.amazonaws.com/");

有关您可以在其中预置集群的受支持 Amazon 区域列表,请转到 Amazon Web Services 术语表中的区域和端点部分。