#java #amazon-web-services #amazon-dynamodb
Вопрос:
Можно ли создать GSI в существующей таблице программно из java? Я знаю, что это возможно при создании новой таблицы с использованием
dynamoDB.createTable(new CreateTableRequest().withGlobalSecondaryIndexes(index));
Я также знаю, что можно создать индекс после создания таблицы из Интернета.
Ответ №1:
Вам нужно будет использовать способ GlobalSecondaryIndexUpdate для этого, как описано здесь: https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GlobalSecondaryIndexUpdate.html
Это должно выглядеть примерно так
CreateGlobalSecondaryIndexAction action = CreateGlobalSecondaryIndexAction
.builder()
.indexName("index-name")
.keySchema(theSchema)
.build();
GlobalSecondaryIndexUpdate index = GlobalSecondaryIndexUpdate
.builder()
.create(action)
.build();
UpdateTableRequest request = UpdateTableRequest
.builder()
.tableName("table-name")
.globalSecondaryIndexUpdates(index)
.build();
dynamoDbClient.updateTable(request);
Комментарии:
1. dynamoDbClient имеет тип AmazonDynamoDB, а не DynamoDB.