Метод batchWrite для DocumentClient и GSI

Я пытаюсь удалить некоторые элементы из таблицы DynamoDB. Моя таблица имеет глобальный вторичный индекс. И мне интересно, можно ли использовать метод batchWrite для DocumentClient для удаления элементов из таблицы GSI. Или мы можем использовать GSI только для получения данных?

var params = {
  RequestItems: {
    'Table-1': [
      {
        DeleteRequest: {
          Key: { HashKey: 'someKey' }
        }
      }
    ]
  }
};

documentClient.batchWrite(params, function(err, data) {
  if (err) console.log(err);
  else console.log(data);
});

если возможно, приведите пример параметров.

документы

1 ответ

Решение

Вы не можете удалить из GSI. Эти индексы в основном предназначены только для чтения: вы не можете изменить данные в таблице через глобальный вторичный индекс, поэтому не нужно вставлять, удалять или обновлять.

Вы можете только читать из GSI, а затем реализовать необходимую логику для удаления элементов в основной таблице по ключу.

Кроме того, пакетная операция не повышает эффективность удаления этих элементов: да, она экономит на сетевых вызовах (до 25:1), но не на используемой емкости записи.

Другие вопросы по тегам