Как я могу скопировать одну таблицу DynamoDB в другую, при этом изменяя первичный ключ в процессе? - PullRequest
0 голосов
/ 14 июня 2019

Я нашел здесь несколько ссылок, которые относятся к копированию одной таблицы DynamoDB в другую, но у меня возникли проблемы с поиском чего-либо, что касается изменения первичного ключа при этом.

По сути, у меня есть схема, которая выглядит следующим образом (с совершенно разными полями / данными, но идея та же):

PK  Author Text           LastInitial
-------------------------------------
1   Bob    [lots of text] R
2   Jim    [lots of text] H
3   Sarah  [lots of text] J
...

с примерно 280+ миллионами строк, размером 62 ГБ

Мне нужно скопировать его в новую таблицу, которая выглядит следующим образом:

PK  Author Text           
--------------------------
1R   Bob    [lots of text]
2H   Jim    [lots of text]
3J   Sarah  [lots of text]
...

Итак, вы видите, что при передаче данных я также создаю новый первичный ключ (PK + LastInitial).

Я точно думал, что смогу сделать это легко с помощью инструмента конвейера данных AWS, но не могу понять, как выполнить преобразование. Также кажется прискорбным, что я не могу перенести его напрямую из одной динамо-таблицы в другую и что он должен сначала перейти на S3.

Есть ли хитрый способ решения этой проблемы, или мне просто нужно написать скрипт с использованием SDK и запустить его на экземпляре EC2?

1 Ответ

1 голос
/ 15 июня 2019

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

...