TryDax.java
O arquivo TryDax.java
contém o método main
. Se você executar o programa sem parâmetros de linha de comando, ele criará um cliente do Amazon DynamoDB e usará esse cliente para todas as operações de API. Se você especificar um endpoint de cluster do DynamoDB Accelerator (DAX) na linha de comando, o programa também criará um cliente do DAX e o usará para operações GetItem
, Query
e Scan
.
É possível modificar o programa de várias maneiras:
-
Use o cliente do DAX em vez do cliente do DynamoDB. Para ter mais informações, consulte Java e DAX.
-
Escolha um nome diferente para a tabela de teste.
-
Modifique o número de itens gravados, alterando os parâmetros
helper.writeData
. O segundo parâmetro é o número de chaves de partição, e o terceiro parâmetro é o número de chaves de classificação. Por padrão, o programa usa 1–10 para valores de chave de partição e 1–10 para valores de chave de classificação, totalizando 100 itens gravados na tabela. Para ter mais informações, consulte TryDaxHelper.java. -
Modifique o número de testes de
GetItem
,Query
eScan
e modifique seus parâmetros. -
Assinale como comentários as linhas contendo
helper.createTable
ehelper.deleteTable
(se não quiser criar e excluir a tabela de cada vez que executar o programa).
nota
Para executar o programa, é possível configurar o Maven para usar o cliente do SDK for Java do DAX e o AWS SDK for Java como dependências. Para ter mais informações, consulte Usar o cliente como dependência do Apache Maven.
Opcionalmente, você pode fazer download e incluir o cliente Java do DAX e o AWS SDK for Java em seu classpath. Consulte Java e DAX para obter um exemplo de configuração da variável CLASSPATH
.
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); } }