Как удалить столбец диапазона ключа в таблице DynamoDb, не влияя на данные? - PullRequest
0 голосов
/ 13 сентября 2018

Мне нужно удалить ключ диапазона в существующей таблице Dynamo-DB, не влияя на данные.

1 Ответ

0 голосов
/ 14 сентября 2018

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

Если миграция данных может быть выполнена в автономном режиме, вам просто нужно Scan все данные из оригиналаtable и PutItem в новую таблицу.

Protip: Вы можете иметь несколько рабочих Scan параллельно, если у вас большой стол.Вам просто нужно назначить каждому работнику Segment.Убедитесь, что ваше решение достаточно надежно, чтобы справиться с увольнением работников, начав с нового работника и переназначая ему тот же номер Segment.

Выполнение переноса данных в режиме реального времени также не так уж плохо.Вам нужно будет создать поток DynamoDB на исходной таблице и присоединить лямбда, которая по существу воспроизводит изменения в новой таблице.Основная стратегия заключается в том, что когда элемент удаляется, вызывайте DeleteItem для новой таблицы, а когда элемент вставляется или обновляется, вызывайте PutItem с NEW_IMAGE для новой таблицы.Это захватит любую живую активность.После настройки вам необходимо скопировать данные так же, как и в автономном случае.

Независимо от того, что вы делаете, вы будете «влиять» на данные.Удаление клавиши диапазона в корне изменит способ организации данных.Имейте в виду, это также будет означать, что у вас есть другое ограничение уникальности ваших данных.

...