Java Code Examples for com.amazonaws.services.dynamodbv2.document.Table#waitForActive()
The following examples show how to use
com.amazonaws.services.dynamodbv2.document.Table#waitForActive() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: DynamoDBServiceImpl1.java From Serverless-Programming-Cookbook with MIT License | 6 votes |
@Override public final Response createTable(final Request request) { if (tableExist(request.getTableName())) { return new Response(null, request.getTableName() + " already exist. Checked with version V1."); } Table table = dynamoDB.createTable(request.getTableName(), Arrays.asList( new KeySchemaElement(request.getPartitionKey(), KeyType.HASH), //Partition key new KeySchemaElement(request.getSortKey(), KeyType.RANGE)), //Sort key Arrays.asList( new AttributeDefinition(request.getPartitionKey(), ScalarAttributeType.S), new AttributeDefinition(request.getSortKey(), ScalarAttributeType.N)), new ProvisionedThroughput(request.getReadCapacityUnits(), request.getWriteCapacityUnits())); if (request.isWaitForActive()) { try { table.waitForActive(); } catch (InterruptedException e) { e.printStackTrace(); } } return new Response(request.getTableName() + " created with API version V1.", null); }
Example 2
Source File: TryDaxHelper.java From aws-doc-sdk-examples with Apache License 2.0 | 6 votes |
void createTable(String tableName, DynamoDB client) { Table table = client.getTable(tableName); try { System.out.println("Attempting to create table; please wait..."); table = client.createTable(tableName, Arrays.asList( new KeySchemaElement("pk", KeyType.HASH), // Partition key new KeySchemaElement("sk", KeyType.RANGE)), // Sort key Arrays.asList( new AttributeDefinition("pk", ScalarAttributeType.N), new AttributeDefinition("sk", ScalarAttributeType.N)), new ProvisionedThroughput(10L, 10L)); table.waitForActive(); System.out.println("Successfully created table. Table status: " + table.getDescription().getTableStatus()); } catch (Exception e) { System.err.println("Unable to create table: "); e.printStackTrace(); } }
Example 3
Source File: DynamoDBServiceImpl1.java From Serverless-Programming-Cookbook with MIT License | 5 votes |
@Override public final Response putItem(final Request request) { Table table = dynamoDB.getTable(request.getTableName()); if (request.isWaitForActive()) { try { table.waitForActive(); } catch (InterruptedException e) { return new Response(null, "Error while waiting for table to become active with API version V2: " + e.getMessage()); } } Item item = new Item() .withPrimaryKey(request.getPartitionKey(), request.getPartitionKeyValue(), request.getSortKey(), request.getSortKeyValue()); if (request.getStringData() != null) { request.getStringData().forEach((k, v) -> item.withString(k, v)); } if (request.getIntegerData() != null) { request.getIntegerData().forEach((k, v) -> item.withInt(k, v)); } table.putItem(item); return new Response("Item added into " + request.getTableName() + " with API version V1.", null); }
Example 4
Source File: DocumentAPITableExample.java From aws-dynamodb-examples with Apache License 2.0 | 5 votes |
static void updateExampleTable() { Table table = dynamoDB.getTable(tableName); System.out.println("Modifying provisioned throughput for " + tableName); try { table.updateTable(new ProvisionedThroughput() .withReadCapacityUnits(6L).withWriteCapacityUnits(7L)); table.waitForActive(); } catch (Exception e) { System.err.println("UpdateTable request failed for " + tableName); System.err.println(e.getMessage()); } }
Example 5
Source File: MoviesCreateTable.java From aws-doc-sdk-examples with Apache License 2.0 | 5 votes |
public static void main(String[] args) throws Exception { AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard() .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("http://localhost:8000", "us-west-2")) .build(); DynamoDB dynamoDB = new DynamoDB(client); String tableName = "Movies"; try { System.out.println("Attempting to create table; please wait..."); Table table = dynamoDB.createTable(tableName, Arrays.asList(new KeySchemaElement("year", KeyType.HASH), // Partition // key new KeySchemaElement("title", KeyType.RANGE)), // Sort key Arrays.asList(new AttributeDefinition("year", ScalarAttributeType.N), new AttributeDefinition("title", ScalarAttributeType.S)), new ProvisionedThroughput(10L, 10L)); table.waitForActive(); System.out.println("Success. Table status: " + table.getDescription().getTableStatus()); } catch (Exception e) { System.err.println("Unable to create table: "); System.err.println(e.getMessage()); } }
Example 6
Source File: IntegrationTest.java From dynamodb-transactions with Apache License 2.0 | 5 votes |
private static void waitForTableToBecomeAvailable(String tableName) { Table tableToWaitFor = documentDynamoDB.getTable(tableName); try { System.out.println("Waiting for " + tableName + " to become ACTIVE..."); tableToWaitFor.waitForActive(); } catch (Exception e) { throw new RuntimeException("Table " + tableName + " never went active"); } }
Example 7
Source File: DocumentAPITableExample.java From aws-doc-sdk-examples with Apache License 2.0 | 5 votes |
static void createExampleTable() { try { List<AttributeDefinition> attributeDefinitions = new ArrayList<AttributeDefinition>(); attributeDefinitions.add(new AttributeDefinition().withAttributeName("Id").withAttributeType("N")); List<KeySchemaElement> keySchema = new ArrayList<KeySchemaElement>(); keySchema.add(new KeySchemaElement().withAttributeName("Id").withKeyType(KeyType.HASH)); // Partition // key CreateTableRequest request = new CreateTableRequest().withTableName(tableName).withKeySchema(keySchema) .withAttributeDefinitions(attributeDefinitions).withProvisionedThroughput( new ProvisionedThroughput().withReadCapacityUnits(5L).withWriteCapacityUnits(6L)); System.out.println("Issuing CreateTable request for " + tableName); Table table = dynamoDB.createTable(request); System.out.println("Waiting for " + tableName + " to be created...this may take a while..."); table.waitForActive(); getTableInformation(); } catch (Exception e) { System.err.println("CreateTable request failed for " + tableName); System.err.println(e.getMessage()); } }
Example 8
Source File: DocumentAPITableExample.java From aws-doc-sdk-examples with Apache License 2.0 | 5 votes |
static void updateExampleTable() { Table table = dynamoDB.getTable(tableName); System.out.println("Modifying provisioned throughput for " + tableName); try { table.updateTable(new ProvisionedThroughput().withReadCapacityUnits(6L).withWriteCapacityUnits(7L)); table.waitForActive(); } catch (Exception e) { System.err.println("UpdateTable request failed for " + tableName); System.err.println(e.getMessage()); } }
Example 9
Source File: DocumentAPITableExample.java From aws-dynamodb-examples with Apache License 2.0 | 5 votes |
static void createExampleTable() { try { ArrayList<AttributeDefinition> attributeDefinitions = new ArrayList<AttributeDefinition>(); attributeDefinitions.add(new AttributeDefinition() .withAttributeName("Id") .withAttributeType("N")); ArrayList<KeySchemaElement> keySchema = new ArrayList<KeySchemaElement>(); keySchema.add(new KeySchemaElement() .withAttributeName("Id") .withKeyType(KeyType.HASH)); CreateTableRequest request = new CreateTableRequest() .withTableName(tableName) .withKeySchema(keySchema) .withAttributeDefinitions(attributeDefinitions) .withProvisionedThroughput(new ProvisionedThroughput() .withReadCapacityUnits(5L) .withWriteCapacityUnits(6L)); System.out.println("Issuing CreateTable request for " + tableName); Table table = dynamoDB.createTable(request); System.out.println("Waiting for " + tableName + " to be created...this may take a while..."); table.waitForActive(); getTableInformation(); } catch (Exception e) { System.err.println("CreateTable request failed for " + tableName); System.err.println(e.getMessage()); } }
Example 10
Source File: DynamoDBBackendImpl.java From fiware-cygnus with GNU Affero General Public License v3.0 | 5 votes |
@Override public void createTable(String tableName, String primaryKey) throws Exception { try { // Create the key schema for the given primary key ArrayList<KeySchemaElement> keySchema = new ArrayList<KeySchemaElement>(); keySchema.add(new KeySchemaElement() .withAttributeName(primaryKey) .withKeyType(KeyType.HASH)); // Create the attribute definitions ArrayList<AttributeDefinition> attrDefs = new ArrayList<AttributeDefinition>(); attrDefs.add(new AttributeDefinition() .withAttributeName(primaryKey) .withAttributeType("N")); // Create the table request given the table name, the key schema and the attribute definitios CreateTableRequest tableRequest = new CreateTableRequest() .withTableName(tableName) .withKeySchema(keySchema) .withAttributeDefinitions(attrDefs) .withProvisionedThroughput(new ProvisionedThroughput() .withReadCapacityUnits(5L) .withWriteCapacityUnits(5L)); // Create the table LOGGER.debug("Creating DynamoDB table " + tableName); Table table = dynamoDB.createTable(tableRequest); // Wait until the table is active LOGGER.debug("Waiting until the DynamoDB table " + tableName + " becomes active"); table.waitForActive(); } catch (Exception e) { LOGGER.error("Error while creating the DynamoDB table " + tableName + ". Details=" + e.getMessage()); } // try catch }
Example 11
Source File: DynamoDBUtils.java From wildfly-camel with Apache License 2.0 | 5 votes |
public static TableDescription createTable(AmazonDynamoDB client, String tableName) throws InterruptedException { CreateTableRequest tableReq = new CreateTableRequest().withTableName(tableName) .withKeySchema(new KeySchemaElement("Id", KeyType.HASH)) .withAttributeDefinitions(new AttributeDefinition("Id", ScalarAttributeType.N)) .withProvisionedThroughput(new ProvisionedThroughput(10L, 10L)) .withStreamSpecification(new StreamSpecification().withStreamEnabled(true).withStreamViewType(StreamViewType.NEW_AND_OLD_IMAGES)); DynamoDB dynamoDB = new DynamoDB(client); Table table = dynamoDB.createTable(tableReq); return table.waitForActive(); }
Example 12
Source File: DocumentAPIGlobalSecondaryIndexExample.java From aws-dynamodb-examples with Apache License 2.0 | 4 votes |
public static void createTable() { // Attribute definitions ArrayList<AttributeDefinition> attributeDefinitions = new ArrayList<AttributeDefinition>(); attributeDefinitions.add(new AttributeDefinition() .withAttributeName("IssueId") .withAttributeType("S")); attributeDefinitions.add(new AttributeDefinition() .withAttributeName("Title") .withAttributeType("S")); attributeDefinitions.add(new AttributeDefinition() .withAttributeName("CreateDate") .withAttributeType("S")); attributeDefinitions.add(new AttributeDefinition() .withAttributeName("DueDate") .withAttributeType("S")); // Key schema for table ArrayList<KeySchemaElement> tableKeySchema = new ArrayList<KeySchemaElement>(); tableKeySchema.add(new KeySchemaElement() .withAttributeName("IssueId") .withKeyType(KeyType.HASH)); tableKeySchema.add(new KeySchemaElement() .withAttributeName("Title") .withKeyType(KeyType.RANGE)); // Initial provisioned throughput settings for the indexes ProvisionedThroughput ptIndex = new ProvisionedThroughput() .withReadCapacityUnits(1L) .withWriteCapacityUnits(1L); // CreateDateIndex GlobalSecondaryIndex createDateIndex = new GlobalSecondaryIndex() .withIndexName("CreateDateIndex") .withProvisionedThroughput(ptIndex) .withKeySchema( new KeySchemaElement() .withAttributeName("CreateDate") .withKeyType( KeyType.HASH), new KeySchemaElement() .withAttributeName("IssueId") .withKeyType(KeyType.RANGE)) .withProjection(new Projection() .withProjectionType("INCLUDE") .withNonKeyAttributes("Description", "Status")); // TitleIndex GlobalSecondaryIndex titleIndex = new GlobalSecondaryIndex() .withIndexName("TitleIndex") .withProvisionedThroughput(ptIndex) .withKeySchema(new KeySchemaElement() .withAttributeName("Title") .withKeyType(KeyType.HASH), new KeySchemaElement() .withAttributeName("IssueId") .withKeyType(KeyType.RANGE)) .withProjection(new Projection() .withProjectionType("KEYS_ONLY")); // DueDateIndex GlobalSecondaryIndex dueDateIndex = new GlobalSecondaryIndex() .withIndexName("DueDateIndex") .withProvisionedThroughput(ptIndex) .withKeySchema( new KeySchemaElement() .withAttributeName("DueDate") .withKeyType(KeyType.HASH)) .withProjection(new Projection() .withProjectionType("ALL")); CreateTableRequest createTableRequest = new CreateTableRequest() .withTableName(tableName) .withProvisionedThroughput( new ProvisionedThroughput() .withReadCapacityUnits( (long) 1) .withWriteCapacityUnits( (long) 1)) .withAttributeDefinitions(attributeDefinitions) .withKeySchema(tableKeySchema) .withGlobalSecondaryIndexes(createDateIndex, titleIndex, dueDateIndex); System.out.println("Creating table " + tableName + "..."); dynamoDB.createTable(createTableRequest); // Wait for table to become active System.out.println("Waiting for " + tableName + " to become ACTIVE..."); try { Table table = dynamoDB.getTable(tableName); table.waitForActive(); } catch (InterruptedException e) { e.printStackTrace(); } }
Example 13
Source File: DocumentAPIParallelScan.java From aws-dynamodb-examples with Apache License 2.0 | 4 votes |
private static void createTable( String tableName, long readCapacityUnits, long writeCapacityUnits, String hashKeyName, String hashKeyType, String rangeKeyName, String rangeKeyType) { try { System.out.println("Creating table " + tableName); List<KeySchemaElement> keySchema = new ArrayList<KeySchemaElement>(); keySchema.add(new KeySchemaElement() .withAttributeName(hashKeyName) .withKeyType(KeyType.HASH)); List<AttributeDefinition> attributeDefinitions = new ArrayList<AttributeDefinition>(); attributeDefinitions.add(new AttributeDefinition() .withAttributeName(hashKeyName) .withAttributeType(hashKeyType)); if (rangeKeyName != null){ keySchema.add(new KeySchemaElement() .withAttributeName(rangeKeyName) .withKeyType(KeyType.RANGE)); attributeDefinitions.add(new AttributeDefinition() .withAttributeName(rangeKeyName) .withAttributeType(rangeKeyType)); } Table table = dynamoDB.createTable(tableName, keySchema, attributeDefinitions, new ProvisionedThroughput() .withReadCapacityUnits(readCapacityUnits) .withWriteCapacityUnits(writeCapacityUnits)); System.out.println("Waiting for " + tableName + " to be created...this may take a while..."); table.waitForActive(); } catch (Exception e) { System.err.println("Failed to create table " + tableName); e.printStackTrace(System.err); } }
Example 14
Source File: CreateTablesLoadData.java From aws-dynamodb-examples with Apache License 2.0 | 4 votes |
private static void createTable( String tableName, long readCapacityUnits, long writeCapacityUnits, String hashKeyName, String hashKeyType, String rangeKeyName, String rangeKeyType) { try { ArrayList<KeySchemaElement> keySchema = new ArrayList<KeySchemaElement>(); keySchema.add(new KeySchemaElement() .withAttributeName(hashKeyName) .withKeyType(KeyType.HASH)); ArrayList<AttributeDefinition> attributeDefinitions = new ArrayList<AttributeDefinition>(); attributeDefinitions.add(new AttributeDefinition() .withAttributeName(hashKeyName) .withAttributeType(hashKeyType)); if (rangeKeyName != null) { keySchema.add(new KeySchemaElement() .withAttributeName(rangeKeyName) .withKeyType(KeyType.RANGE)); attributeDefinitions.add(new AttributeDefinition() .withAttributeName(rangeKeyName) .withAttributeType(rangeKeyType)); } CreateTableRequest request = new CreateTableRequest() .withTableName(tableName) .withKeySchema(keySchema) .withProvisionedThroughput( new ProvisionedThroughput() .withReadCapacityUnits(readCapacityUnits) .withWriteCapacityUnits(writeCapacityUnits)); // If this is the Reply table, define a local secondary index if (replyTableName.equals(tableName)) { attributeDefinitions.add(new AttributeDefinition() .withAttributeName("PostedBy") .withAttributeType("S")); ArrayList<LocalSecondaryIndex> localSecondaryIndexes = new ArrayList<LocalSecondaryIndex>(); localSecondaryIndexes.add(new LocalSecondaryIndex() .withIndexName("PostedBy-Index") .withKeySchema( new KeySchemaElement().withAttributeName(hashKeyName).withKeyType(KeyType.HASH), new KeySchemaElement() .withAttributeName("PostedBy") .withKeyType(KeyType.RANGE)) .withProjection(new Projection() .withProjectionType(ProjectionType.KEYS_ONLY))); request.setLocalSecondaryIndexes(localSecondaryIndexes); } request.setAttributeDefinitions(attributeDefinitions); System.out.println("Issuing CreateTable request for " + tableName); Table table = dynamoDB.createTable(request); System.out.println("Waiting for " + tableName + " to be created...this may take a while..."); table.waitForActive(); } catch (Exception e) { System.err.println("CreateTable request failed for " + tableName); System.err.println(e.getMessage()); } }
Example 15
Source File: ITAbstractDynamoDBTest.java From nifi with Apache License 2.0 | 4 votes |
@BeforeClass public static void beforeClass() throws Exception { FileInputStream fis = new FileInputStream(CREDENTIALS_FILE); final PropertiesCredentials credentials = new PropertiesCredentials(fis); amazonDynamoDBClient = new AmazonDynamoDBClient(credentials); dynamoDB = new DynamoDB(amazonDynamoDBClient); amazonDynamoDBClient.setRegion(Region.getRegion(Regions.US_WEST_2)); ArrayList<AttributeDefinition> attributeDefinitions = new ArrayList<AttributeDefinition>(); attributeDefinitions .add(new AttributeDefinition().withAttributeName("hashS").withAttributeType("S")); attributeDefinitions .add(new AttributeDefinition().withAttributeName("rangeS").withAttributeType("S")); ArrayList<KeySchemaElement> keySchema = new ArrayList<KeySchemaElement>(); keySchema.add(new KeySchemaElement().withAttributeName("hashS").withKeyType(KeyType.HASH)); keySchema.add(new KeySchemaElement().withAttributeName("rangeS").withKeyType(KeyType.RANGE)); CreateTableRequest request = new CreateTableRequest() .withTableName(stringHashStringRangeTableName) .withKeySchema(keySchema) .withAttributeDefinitions(attributeDefinitions) .withProvisionedThroughput(new ProvisionedThroughput() .withReadCapacityUnits(5L) .withWriteCapacityUnits(6L)); Table stringHashStringRangeTable = dynamoDB.createTable(request); stringHashStringRangeTable.waitForActive(); attributeDefinitions = new ArrayList<AttributeDefinition>(); attributeDefinitions .add(new AttributeDefinition().withAttributeName("hashN").withAttributeType("N")); attributeDefinitions .add(new AttributeDefinition().withAttributeName("rangeN").withAttributeType("N")); keySchema = new ArrayList<KeySchemaElement>(); keySchema.add(new KeySchemaElement().withAttributeName("hashN").withKeyType(KeyType.HASH)); keySchema.add(new KeySchemaElement().withAttributeName("rangeN").withKeyType(KeyType.RANGE)); request = new CreateTableRequest() .withTableName(numberHashNumberRangeTableName) .withKeySchema(keySchema) .withAttributeDefinitions(attributeDefinitions) .withProvisionedThroughput(new ProvisionedThroughput() .withReadCapacityUnits(5L) .withWriteCapacityUnits(6L)); Table numberHashNumberRangeTable = dynamoDB.createTable(request); numberHashNumberRangeTable.waitForActive(); attributeDefinitions = new ArrayList<AttributeDefinition>(); attributeDefinitions .add(new AttributeDefinition().withAttributeName("hashN").withAttributeType("N")); keySchema = new ArrayList<KeySchemaElement>(); keySchema.add(new KeySchemaElement().withAttributeName("hashN").withKeyType(KeyType.HASH)); request = new CreateTableRequest() .withTableName(numberHashOnlyTableName) .withKeySchema(keySchema) .withAttributeDefinitions(attributeDefinitions) .withProvisionedThroughput(new ProvisionedThroughput() .withReadCapacityUnits(5L) .withWriteCapacityUnits(6L)); Table numberHashOnlyTable = dynamoDB.createTable(request); numberHashOnlyTable.waitForActive(); }
Example 16
Source File: RedshiftIT.java From digdag with Apache License 2.0 | 4 votes |
@Test public void loadFromDynamoDB() throws Exception { DynamoDB dynamoDB = new DynamoDB(dynamoClient); ArrayList<AttributeDefinition> attributeDefinitions= new ArrayList<>(); attributeDefinitions.add(new AttributeDefinition().withAttributeName("Id").withAttributeType("N")); ArrayList<KeySchemaElement> keySchema = new ArrayList<>(); keySchema.add(new KeySchemaElement().withAttributeName("Id").withKeyType(KeyType.HASH)); CreateTableRequest request = new CreateTableRequest() .withTableName(dynamoTableName) .withKeySchema(keySchema) .withAttributeDefinitions(attributeDefinitions) .withProvisionedThroughput(new ProvisionedThroughput() .withReadCapacityUnits(1L) .withWriteCapacityUnits(1L)); ImmutableList<Item> items = ImmutableList.of( new Item().withPrimaryKey("Id", 0).withString("Name", "foo").withNumber("Score", 3.14f), new Item().withPrimaryKey("Id", 1).withString("Name", "bar").withNumber("Score", 1.23f), new Item().withPrimaryKey("Id", 2).withString("Name", "baz").withNumber("Score", 5.0f) ); ImmutableList<Map<String, Object>> expected = ImmutableList.of( ImmutableMap.of("id", 0, "name", "foo", "score", 3.14f), ImmutableMap.of("id", 1, "name", "bar", "score", 1.23f), ImmutableMap.of("id", 2, "name", "baz", "score", 5.0f), ImmutableMap.of("id", 9, "name", "zzz", "score", 9.99f) ); Table table = null; try { table = dynamoDB.createTable(request); table.waitForActive(); items.forEach(table::putItem); runDigdagWithDynamoDB(configFile, "acceptance/redshift/load_from_dynamodb.dig", redshiftUser, Optional.absent()); assertTableContents(DEST_TABLE, expected); } finally { if (table != null) { table.delete(); table.waitForDelete(); } } }
Example 17
Source File: DocumentAPIGlobalSecondaryIndexExample.java From aws-doc-sdk-examples with Apache License 2.0 | 4 votes |
public static void createTable() { // Attribute definitions ArrayList<AttributeDefinition> attributeDefinitions = new ArrayList<AttributeDefinition>(); attributeDefinitions.add(new AttributeDefinition().withAttributeName("IssueId").withAttributeType("S")); attributeDefinitions.add(new AttributeDefinition().withAttributeName("Title").withAttributeType("S")); attributeDefinitions.add(new AttributeDefinition().withAttributeName("CreateDate").withAttributeType("S")); attributeDefinitions.add(new AttributeDefinition().withAttributeName("DueDate").withAttributeType("S")); // Key schema for table ArrayList<KeySchemaElement> tableKeySchema = new ArrayList<KeySchemaElement>(); tableKeySchema.add(new KeySchemaElement().withAttributeName("IssueId").withKeyType(KeyType.HASH)); // Partition // key tableKeySchema.add(new KeySchemaElement().withAttributeName("Title").withKeyType(KeyType.RANGE)); // Sort // key // Initial provisioned throughput settings for the indexes ProvisionedThroughput ptIndex = new ProvisionedThroughput().withReadCapacityUnits(1L) .withWriteCapacityUnits(1L); // CreateDateIndex GlobalSecondaryIndex createDateIndex = new GlobalSecondaryIndex().withIndexName("CreateDateIndex") .withProvisionedThroughput(ptIndex) .withKeySchema(new KeySchemaElement().withAttributeName("CreateDate").withKeyType(KeyType.HASH), // Partition // key new KeySchemaElement().withAttributeName("IssueId").withKeyType(KeyType.RANGE)) // Sort // key .withProjection( new Projection().withProjectionType("INCLUDE").withNonKeyAttributes("Description", "Status")); // TitleIndex GlobalSecondaryIndex titleIndex = new GlobalSecondaryIndex().withIndexName("TitleIndex") .withProvisionedThroughput(ptIndex) .withKeySchema(new KeySchemaElement().withAttributeName("Title").withKeyType(KeyType.HASH), // Partition // key new KeySchemaElement().withAttributeName("IssueId").withKeyType(KeyType.RANGE)) // Sort // key .withProjection(new Projection().withProjectionType("KEYS_ONLY")); // DueDateIndex GlobalSecondaryIndex dueDateIndex = new GlobalSecondaryIndex().withIndexName("DueDateIndex") .withProvisionedThroughput(ptIndex) .withKeySchema(new KeySchemaElement().withAttributeName("DueDate").withKeyType(KeyType.HASH)) // Partition // key .withProjection(new Projection().withProjectionType("ALL")); CreateTableRequest createTableRequest = new CreateTableRequest().withTableName(tableName) .withProvisionedThroughput( new ProvisionedThroughput().withReadCapacityUnits((long) 1).withWriteCapacityUnits((long) 1)) .withAttributeDefinitions(attributeDefinitions).withKeySchema(tableKeySchema) .withGlobalSecondaryIndexes(createDateIndex, titleIndex, dueDateIndex); System.out.println("Creating table " + tableName + "..."); dynamoDB.createTable(createTableRequest); // Wait for table to become active System.out.println("Waiting for " + tableName + " to become ACTIVE..."); try { Table table = dynamoDB.getTable(tableName); table.waitForActive(); } catch (InterruptedException e) { e.printStackTrace(); } }
Example 18
Source File: DocumentAPILocalSecondaryIndexExample.java From aws-doc-sdk-examples with Apache License 2.0 | 4 votes |
public static void createTable() { CreateTableRequest createTableRequest = new CreateTableRequest().withTableName(tableName) .withProvisionedThroughput( new ProvisionedThroughput().withReadCapacityUnits((long) 1).withWriteCapacityUnits((long) 1)); // Attribute definitions for table partition and sort keys ArrayList<AttributeDefinition> attributeDefinitions = new ArrayList<AttributeDefinition>(); attributeDefinitions.add(new AttributeDefinition().withAttributeName("CustomerId").withAttributeType("S")); attributeDefinitions.add(new AttributeDefinition().withAttributeName("OrderId").withAttributeType("N")); // Attribute definition for index primary key attributes attributeDefinitions .add(new AttributeDefinition().withAttributeName("OrderCreationDate").withAttributeType("N")); attributeDefinitions.add(new AttributeDefinition().withAttributeName("IsOpen").withAttributeType("N")); createTableRequest.setAttributeDefinitions(attributeDefinitions); // Key schema for table ArrayList<KeySchemaElement> tableKeySchema = new ArrayList<KeySchemaElement>(); tableKeySchema.add(new KeySchemaElement().withAttributeName("CustomerId").withKeyType(KeyType.HASH)); // Partition // key tableKeySchema.add(new KeySchemaElement().withAttributeName("OrderId").withKeyType(KeyType.RANGE)); // Sort // key createTableRequest.setKeySchema(tableKeySchema); ArrayList<LocalSecondaryIndex> localSecondaryIndexes = new ArrayList<LocalSecondaryIndex>(); // OrderCreationDateIndex LocalSecondaryIndex orderCreationDateIndex = new LocalSecondaryIndex().withIndexName("OrderCreationDateIndex"); // Key schema for OrderCreationDateIndex ArrayList<KeySchemaElement> indexKeySchema = new ArrayList<KeySchemaElement>(); indexKeySchema.add(new KeySchemaElement().withAttributeName("CustomerId").withKeyType(KeyType.HASH)); // Partition // key indexKeySchema.add(new KeySchemaElement().withAttributeName("OrderCreationDate").withKeyType(KeyType.RANGE)); // Sort // key orderCreationDateIndex.setKeySchema(indexKeySchema); // Projection (with list of projected attributes) for // OrderCreationDateIndex Projection projection = new Projection().withProjectionType(ProjectionType.INCLUDE); ArrayList<String> nonKeyAttributes = new ArrayList<String>(); nonKeyAttributes.add("ProductCategory"); nonKeyAttributes.add("ProductName"); projection.setNonKeyAttributes(nonKeyAttributes); orderCreationDateIndex.setProjection(projection); localSecondaryIndexes.add(orderCreationDateIndex); // IsOpenIndex LocalSecondaryIndex isOpenIndex = new LocalSecondaryIndex().withIndexName("IsOpenIndex"); // Key schema for IsOpenIndex indexKeySchema = new ArrayList<KeySchemaElement>(); indexKeySchema.add(new KeySchemaElement().withAttributeName("CustomerId").withKeyType(KeyType.HASH)); // Partition // key indexKeySchema.add(new KeySchemaElement().withAttributeName("IsOpen").withKeyType(KeyType.RANGE)); // Sort // key // Projection (all attributes) for IsOpenIndex projection = new Projection().withProjectionType(ProjectionType.ALL); isOpenIndex.setKeySchema(indexKeySchema); isOpenIndex.setProjection(projection); localSecondaryIndexes.add(isOpenIndex); // Add index definitions to CreateTable request createTableRequest.setLocalSecondaryIndexes(localSecondaryIndexes); System.out.println("Creating table " + tableName + "..."); System.out.println(dynamoDB.createTable(createTableRequest)); // Wait for table to become active System.out.println("Waiting for " + tableName + " to become ACTIVE..."); try { Table table = dynamoDB.getTable(tableName); table.waitForActive(); } catch (InterruptedException e) { e.printStackTrace(); } }
Example 19
Source File: CreateTablesLoadData.java From aws-doc-sdk-examples with Apache License 2.0 | 4 votes |
private static void createTable(String tableName, long readCapacityUnits, long writeCapacityUnits, String partitionKeyName, String partitionKeyType, String sortKeyName, String sortKeyType) { try { ArrayList<KeySchemaElement> keySchema = new ArrayList<KeySchemaElement>(); keySchema.add(new KeySchemaElement().withAttributeName(partitionKeyName).withKeyType(KeyType.HASH)); // Partition // key ArrayList<AttributeDefinition> attributeDefinitions = new ArrayList<AttributeDefinition>(); attributeDefinitions .add(new AttributeDefinition().withAttributeName(partitionKeyName).withAttributeType(partitionKeyType)); if (sortKeyName != null) { keySchema.add(new KeySchemaElement().withAttributeName(sortKeyName).withKeyType(KeyType.RANGE)); // Sort // key attributeDefinitions .add(new AttributeDefinition().withAttributeName(sortKeyName).withAttributeType(sortKeyType)); } CreateTableRequest request = new CreateTableRequest().withTableName(tableName).withKeySchema(keySchema) .withProvisionedThroughput(new ProvisionedThroughput().withReadCapacityUnits(readCapacityUnits) .withWriteCapacityUnits(writeCapacityUnits)); // If this is the Reply table, define a local secondary index if (replyTableName.equals(tableName)) { attributeDefinitions .add(new AttributeDefinition().withAttributeName("PostedBy").withAttributeType("S")); ArrayList<LocalSecondaryIndex> localSecondaryIndexes = new ArrayList<LocalSecondaryIndex>(); localSecondaryIndexes.add(new LocalSecondaryIndex().withIndexName("PostedBy-Index") .withKeySchema(new KeySchemaElement().withAttributeName(partitionKeyName).withKeyType(KeyType.HASH), // Partition // key new KeySchemaElement().withAttributeName("PostedBy").withKeyType(KeyType.RANGE)) // Sort // key .withProjection(new Projection().withProjectionType(ProjectionType.KEYS_ONLY))); request.setLocalSecondaryIndexes(localSecondaryIndexes); } request.setAttributeDefinitions(attributeDefinitions); System.out.println("Issuing CreateTable request for " + tableName); Table table = dynamoDB.createTable(request); System.out.println("Waiting for " + tableName + " to be created...this may take a while..."); table.waitForActive(); } catch (Exception e) { System.err.println("CreateTable request failed for " + tableName); System.err.println(e.getMessage()); } }
Example 20
Source File: ITAbstractDynamoDBTest.java From localization_nifi with Apache License 2.0 | 4 votes |
@BeforeClass public static void beforeClass() throws Exception { FileInputStream fis = new FileInputStream(CREDENTIALS_FILE); final PropertiesCredentials credentials = new PropertiesCredentials(fis); amazonDynamoDBClient = new AmazonDynamoDBClient(credentials); dynamoDB = new DynamoDB(amazonDynamoDBClient); amazonDynamoDBClient.setRegion(Region.getRegion(Regions.US_WEST_2)); ArrayList<AttributeDefinition> attributeDefinitions = new ArrayList<AttributeDefinition>(); attributeDefinitions .add(new AttributeDefinition().withAttributeName("hashS").withAttributeType("S")); attributeDefinitions .add(new AttributeDefinition().withAttributeName("rangeS").withAttributeType("S")); ArrayList<KeySchemaElement> keySchema = new ArrayList<KeySchemaElement>(); keySchema.add(new KeySchemaElement().withAttributeName("hashS").withKeyType(KeyType.HASH)); keySchema.add(new KeySchemaElement().withAttributeName("rangeS").withKeyType(KeyType.RANGE)); CreateTableRequest request = new CreateTableRequest() .withTableName(stringHashStringRangeTableName) .withKeySchema(keySchema) .withAttributeDefinitions(attributeDefinitions) .withProvisionedThroughput(new ProvisionedThroughput() .withReadCapacityUnits(5L) .withWriteCapacityUnits(6L)); Table stringHashStringRangeTable = dynamoDB.createTable(request); stringHashStringRangeTable.waitForActive(); attributeDefinitions = new ArrayList<AttributeDefinition>(); attributeDefinitions .add(new AttributeDefinition().withAttributeName("hashN").withAttributeType("N")); attributeDefinitions .add(new AttributeDefinition().withAttributeName("rangeN").withAttributeType("N")); keySchema = new ArrayList<KeySchemaElement>(); keySchema.add(new KeySchemaElement().withAttributeName("hashN").withKeyType(KeyType.HASH)); keySchema.add(new KeySchemaElement().withAttributeName("rangeN").withKeyType(KeyType.RANGE)); request = new CreateTableRequest() .withTableName(numberHashNumberRangeTableName) .withKeySchema(keySchema) .withAttributeDefinitions(attributeDefinitions) .withProvisionedThroughput(new ProvisionedThroughput() .withReadCapacityUnits(5L) .withWriteCapacityUnits(6L)); Table numberHashNumberRangeTable = dynamoDB.createTable(request); numberHashNumberRangeTable.waitForActive(); attributeDefinitions = new ArrayList<AttributeDefinition>(); attributeDefinitions .add(new AttributeDefinition().withAttributeName("hashN").withAttributeType("N")); keySchema = new ArrayList<KeySchemaElement>(); keySchema.add(new KeySchemaElement().withAttributeName("hashN").withKeyType(KeyType.HASH)); request = new CreateTableRequest() .withTableName(numberHashOnlyTableName) .withKeySchema(keySchema) .withAttributeDefinitions(attributeDefinitions) .withProvisionedThroughput(new ProvisionedThroughput() .withReadCapacityUnits(5L) .withWriteCapacityUnits(6L)); Table numberHashOnlyTable = dynamoDB.createTable(request); numberHashOnlyTable.waitForActive(); }