Создайте глобальный вторичный индекс DynamoDB после создания таблицы в Java

#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.