Использование конвейера данных Amazon для резервного копирования данных DynamoDB на S3

Мне нужно сделать резервную копию данных таблицы DynamoDB на S3 с помощью конвейера данных Amazon.

Мой вопрос: могу ли я использовать один конвейер данных для резервного копирования нескольких таблиц DynamoDB на S3, или мне нужно создать отдельный конвейер для каждой из них?

Кроме того, поскольку у моих таблиц есть префикс year_month (например, 2014_3_tableName), я думал об использовании SDK datapipeline для изменения имени таблицы в определении конвейера после изменения месяца. Будет ли это работать? Есть ли альтернативный / лучший способ ??

Спасибо!!


person user3610975    schedule 07.05.2014    source источник


Ответы (2)


Если вы настраиваете конвейер данных с помощью кнопки «Импорт / экспорт» консоли DynamoDB, вам придется создать отдельный конвейер для каждой таблицы. Если вы используете Data Pipeline напрямую (либо через Data Pipeline API, либо через консоль Data Pipeline), вы можете экспортировать несколько таблиц в одном конвейере. Для каждой таблицы просто добавьте дополнительный DynamoDBDataNode и EmrActivity, чтобы связать этот узел данных с выходным S3DataNode.

Что касается вашего варианта использования префикса year_month, использование sdk конвейера данных для периодического изменения имен таблиц кажется лучшим подходом. Другой подход может заключаться в создании копии скрипта , который выполняет экспорт EmrActivity (вы можете увидеть расположение сценария под «шагом» действия) и вместо этого изменить способ, которым сценарий куста определяет имя таблицы, проверяя текущую дату. Вам нужно будет сделать копию этого сценария и разместить измененный сценарий в вашем собственном сегменте S3 и указать EmrActivity на это место вместо значения по умолчанию. Раньше я не пробовал ни одного из подходов, но оба теоретически возможны.

Более общую информацию об экспорте таблиц DynamoDB можно найти в Руководстве разработчика DynamoDB, а более подробную информацию можно найти в Руководство разработчика AWS Data Pipeline.

person David Yanacek    schedule 07.05.2014
comment
Спасибо!! еще одна вещь, при добавлении нескольких узлов данных Dynamodb (для нескольких таблиц) в один конвейер данных, нужно ли нам несколько узлов данных s3 или только один? Если один, то как мы можем указать разные папки для разных резервных копий таблиц на S3? ?? - person user3610975; 08.05.2014

Это старый вопрос, но я искал ответ в последние дни. При добавлении нескольких DynamoDBDataNode вы по-прежнему можете использовать один единственный S3DataNode, такой как вывод. Просто различите папки в корзине S3, указав другой output.directoryPath в поле EmrActivity Step.

Примерно так: # {output.directoryPath} / newFolder

Каждая новая папка будет автоматически создаваться в корзине s3.

person Davide Bracaglia    schedule 21.09.2016
comment
У вас есть образец json-документа конвейера, экспортирующего несколько таблиц? Это будет очень полезно. - person Kannaiyan; 31.10.2016
comment
Сработало у меня, спасибо! Хотя меня все еще раздражает, что мы не можем использовать простой подстановочный знак для резервного копирования таблиц Dynamo из одного DynamoDBDataNode. - person Matt Beckman; 30.09.2017