DynamoDBMapper Java - частично сопоставленные объекты - количество единиц емкости чтения - PullRequest
0 голосов
/ 17 декабря 2018

Загружает ли java DynamoDB целые элементы, когда аннотированный класс @DynamoDBTable отображает только подмножество их атрибутов?

пример: таблица «Product», содержащая элементы со следующими атрибутами: id, name, description.Я хотел бы получить названия нескольких продуктов без загрузки описания (это было бы огромным количеством данных).

Загружает ли этот код описание из DynamoDB?

@DynamoDBTable(tableName = "Product")
public class ProductName {

    private UUID id;
    private String name;

    @DynamoDBHashKey
    @DynamoDBTyped(DynamoDBAttributeType.S)
    public UUID getId() { return id; }
    public void setId(UUID id) { this.id = id; }

    @DynamoDBAttribute
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

}

...

DynamoDBMapper dynamoDBMapper = ...
dynamoDBMapper.batchLoad(products);  // TODO is description loaded? what is the amount of Consumed Read Capacity Units?

1 Ответ

0 голосов
/ 17 декабря 2018

Как говорят их документы :

DynamoDB рассчитывает количество единиц емкости чтения, потребляемых на основе размера элемента, а не количества данных, возвращаемых приложению.По этой причине количество потребляемых единиц мощности будет одинаковым независимо от того, запрашиваете ли вы все атрибуты (поведение по умолчанию) или только некоторые из них (с использованием выражения проекции).Число также будет одинаковым независимо от того, используете ли вы выражение фильтра.

Как видите, прогнозы не влияют на количество используемых единиц мощности.

Кстати, вв вашем случае, поле description будет возвращено в любом случае, потому что вам не нужно аннотировать каждое поле с помощью аннотации DynamoDB, только те, которые являются ключами или имеют разные имена или нуждаются в пользовательских преобразователях.Все неаннотированные поля будут автоматически заполнены из соответствующих полей БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...