TryDax.java - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

TryDax.java

TryDax.java 文件包含 main 方法。如果在没有命令行参数的情况下运行程序,将创建一个 Amazon DynamoDB 客户端,并将该客户端用于所有 API 操作。如果在命令行中指定一个 DynamoDB Accelerator (DAX) 集群端点,程序还将创建一个 DAX 客户端,并用于 GetItemQueryScan 操作。

可以通过多种方式修改程序:

  • 使用 DAX 客户端而不是 DynamoDB 客户端。有关更多信息,请参阅 Java 和 DAX

  • 为测试表选择其他名称。

  • 通过更改 helper.writeData 参数修改写入的项目数。第二个参数是分区键数,第三个参数是排序键数。默认情况下,程序使用 1–10 作为分区键值,使用 1–10 作为排序键值,总共向表写入 100 个项目。有关更多信息,请参阅 TryDaxHelper.java

  • 修改 GetItemQueryScan 测试的数量及其参数。

  • 注释掉包含 helper.createTablehelper.deleteTable 的行(如果不希望每次运行程序时都创建和删除表)。

注意

要运行此程序,您可以设置 Maven 将 DAX SDK for Java 客户端和 Amazon SDK for Java 作为依赖项。有关更多信息,请参阅 使用客户端作为 Apache Maven 依赖项

或者可以下载 DAX Java 客户端和 Amazon SDK for Java 并加入类路径。有关设置 Java 和 DAX 变量的示例,请参阅 CLASSPATH

/** * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * This file is licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. A copy of * the License is located at * * http://aws.amazon.com/apache2.0/ * * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. */ import com.amazonaws.services.dynamodbv2.document.DynamoDB; public class TryDax { public static void main(String[] args) throws Exception { TryDaxHelper helper = new TryDaxHelper(); TryDaxTests tests = new TryDaxTests(); DynamoDB ddbClient = helper.getDynamoDBClient(); DynamoDB daxClient = null; if (args.length >= 1) { daxClient = helper.getDaxClient(args[0]); } String tableName = "TryDaxTable"; System.out.println("Creating table..."); helper.createTable(tableName, ddbClient); System.out.println("Populating table..."); helper.writeData(tableName, ddbClient, 10, 10); DynamoDB testClient = null; if (daxClient != null) { testClient = daxClient; } else { testClient = ddbClient; } System.out.println("Running GetItem, Scan, and Query tests..."); System.out.println("First iteration of each test will result in cache misses"); System.out.println("Next iterations are cache hits\n"); // GetItem tests.getItemTest(tableName, testClient, 1, 10, 5); // Query tests.queryTest(tableName, testClient, 5, 2, 9, 5); // Scan tests.scanTest(tableName, testClient, 5); helper.deleteTable(tableName, ddbClient); } }