Weitere AWS SDK-Beispiele sind im Repo AWS Doc SDK Examples
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Die folgenden Codebeispiele zeigen, wie eine Tabelle mit aktiviertem Warmdurchsatz erstellt wird.
- SDK für Java 2.x
-
Erstellen Sie eine DynamoDB-Tabelle mit Warmdurchsatzeinstellung unter. AWS SDK for Java 2.x
import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import software.amazon.awssdk.services.dynamodb.model.AttributeDefinition; import software.amazon.awssdk.services.dynamodb.model.CreateTableRequest; import software.amazon.awssdk.services.dynamodb.model.CreateTableResponse; import software.amazon.awssdk.services.dynamodb.model.GlobalSecondaryIndex; import software.amazon.awssdk.services.dynamodb.model.KeySchemaElement; import software.amazon.awssdk.services.dynamodb.model.KeyType; import software.amazon.awssdk.services.dynamodb.model.Projection; import software.amazon.awssdk.services.dynamodb.model.ProvisionedThroughput; import software.amazon.awssdk.services.dynamodb.model.ScalarAttributeType; import software.amazon.awssdk.services.dynamodb.model.WarmThroughput; public static WarmThroughput buildWarmThroughput(final Long readUnitsPerSecond, final Long writeUnitsPerSecond) { return WarmThroughput.builder() .readUnitsPerSecond(readUnitsPerSecond) .writeUnitsPerSecond(writeUnitsPerSecond) .build(); } /** * Builds a ProvisionedThroughput object with the specified read and write capacity units. * * @param readCapacityUnits The read capacity units * @param writeCapacityUnits The write capacity units * @return A configured ProvisionedThroughput object */ public static ProvisionedThroughput buildProvisionedThroughput( final Long readCapacityUnits, final Long writeCapacityUnits) { return ProvisionedThroughput.builder() .readCapacityUnits(readCapacityUnits) .writeCapacityUnits(writeCapacityUnits) .build(); } /** * Builds an AttributeDefinition with the specified name and type. * * @param attributeName The attribute name * @param scalarAttributeType The attribute type * @return A configured AttributeDefinition */ private static AttributeDefinition buildAttributeDefinition( final String attributeName, final ScalarAttributeType scalarAttributeType) { return AttributeDefinition.builder() .attributeName(attributeName) .attributeType(scalarAttributeType) .build(); } /** * Builds a KeySchemaElement with the specified name and key type. * * @param attributeName The attribute name * @param keyType The key type (HASH or RANGE) * @return A configured KeySchemaElement */ private static KeySchemaElement buildKeySchemaElement(final String attributeName, final KeyType keyType) { return KeySchemaElement.builder() .attributeName(attributeName) .keyType(keyType) .build(); } /** * Creates a DynamoDB table with the specified configuration including warm throughput settings. * * @param ddb The DynamoDB client * @param tableName The name of the table to create * @param partitionKey The partition key attribute name * @param sortKey The sort key attribute name * @param miscellaneousKeyAttribute Additional key attribute name for GSI * @param nonKeyAttribute Non-key attribute to include in GSI projection * @param tableReadCapacityUnits Read capacity units for the table * @param tableWriteCapacityUnits Write capacity units for the table * @param tableWarmReadUnitsPerSecond Warm read units per second for the table * @param tableWarmWriteUnitsPerSecond Warm write units per second for the table * @param globalSecondaryIndexName The name of the GSI to create * @param globalSecondaryIndexReadCapacityUnits Read capacity units for the GSI * @param globalSecondaryIndexWriteCapacityUnits Write capacity units for the GSI * @param globalSecondaryIndexWarmReadUnitsPerSecond Warm read units per second for the GSI * @param globalSecondaryIndexWarmWriteUnitsPerSecond Warm write units per second for the GSI */ public static void createDynamoDBTable( final DynamoDbClient ddb, final String tableName, final String partitionKey, final String sortKey, final String miscellaneousKeyAttribute, final String nonKeyAttribute, final Long tableReadCapacityUnits, final Long tableWriteCapacityUnits, final Long tableWarmReadUnitsPerSecond, final Long tableWarmWriteUnitsPerSecond, final String globalSecondaryIndexName, final Long globalSecondaryIndexReadCapacityUnits, final Long globalSecondaryIndexWriteCapacityUnits, final Long globalSecondaryIndexWarmReadUnitsPerSecond, final Long globalSecondaryIndexWarmWriteUnitsPerSecond) { // Define the table attributes final AttributeDefinition partitionKeyAttribute = buildAttributeDefinition(partitionKey, ScalarAttributeType.S); final AttributeDefinition sortKeyAttribute = buildAttributeDefinition(sortKey, ScalarAttributeType.S); final AttributeDefinition miscellaneousKeyAttributeDefinition = buildAttributeDefinition(miscellaneousKeyAttribute, ScalarAttributeType.N); final AttributeDefinition[] attributeDefinitions = { partitionKeyAttribute, sortKeyAttribute, miscellaneousKeyAttributeDefinition }; // Define the table key schema final KeySchemaElement partitionKeyElement = buildKeySchemaElement(partitionKey, KeyType.HASH); final KeySchemaElement sortKeyElement = buildKeySchemaElement(sortKey, KeyType.RANGE); final KeySchemaElement[] keySchema = {partitionKeyElement, sortKeyElement}; // Define the provisioned throughput for the table final ProvisionedThroughput provisionedThroughput = buildProvisionedThroughput(tableReadCapacityUnits, tableWriteCapacityUnits); // Define the Global Secondary Index (GSI) final KeySchemaElement globalSecondaryIndexPartitionKeyElement = buildKeySchemaElement(sortKey, KeyType.HASH); final KeySchemaElement globalSecondaryIndexSortKeyElement = buildKeySchemaElement(miscellaneousKeyAttribute, KeyType.RANGE); final KeySchemaElement[] gsiKeySchema = { globalSecondaryIndexPartitionKeyElement, globalSecondaryIndexSortKeyElement }; final Projection gsiProjection = Projection.builder() .projectionType(PROJECTION_TYPE_INCLUDE) .nonKeyAttributes(nonKeyAttribute) .build(); final ProvisionedThroughput gsiProvisionedThroughput = buildProvisionedThroughput(globalSecondaryIndexReadCapacityUnits, globalSecondaryIndexWriteCapacityUnits); // Define the warm throughput for the Global Secondary Index (GSI) final WarmThroughput gsiWarmThroughput = buildWarmThroughput( globalSecondaryIndexWarmReadUnitsPerSecond, globalSecondaryIndexWarmWriteUnitsPerSecond); final GlobalSecondaryIndex globalSecondaryIndex = GlobalSecondaryIndex.builder() .indexName(globalSecondaryIndexName) .keySchema(gsiKeySchema) .projection(gsiProjection) .provisionedThroughput(gsiProvisionedThroughput) .warmThroughput(gsiWarmThroughput) .build(); // Define the warm throughput for the table final WarmThroughput tableWarmThroughput = buildWarmThroughput(tableWarmReadUnitsPerSecond, tableWarmWriteUnitsPerSecond); final CreateTableRequest request = CreateTableRequest.builder() .tableName(tableName) .attributeDefinitions(attributeDefinitions) .keySchema(keySchema) .provisionedThroughput(provisionedThroughput) .globalSecondaryIndexes(globalSecondaryIndex) .warmThroughput(tableWarmThroughput) .build(); final CreateTableResponse response = ddb.createTable(request); System.out.println(response); }
-
Einzelheiten zur API finden Sie unter CreateTable AWS SDK for Java 2.xAPI-Referenz.
-