Увеличение и уменьшение RCU DynamoDb с помощью AWS DataPipeline

У меня есть таблица AWS DynamoDb, которая требует большого количества операций записи. Я настроил его в режиме выделенной емкости с 10,000 WCU и 1000 RCU.

Я использую AWS Datapipeline для экспорта содержимого DynamoDb в S3. Конвейер настроен с коэффициентом пропускной способности чтения 75%.

Для экспорта ~150GB данных с этой настройкой требуется около ~2 hours. Когда я увеличил RCU до 10,000, экспорт завершился менее чем за 20 минут.

Есть ли способ в DataPipeline увеличить выделенный RCU только тогда, когда мой конвейер работает? Поскольку этот конвейер настроен на запуск только один раз в день.


person venkatvb    schedule 20.11.2019    source источник


Ответы (1)


Вы не можете контролировать емкость DynamoDB из задания конвейера данных.

Однако вы можете использовать AWS Step Functions для управлять заданиями ETL с другими произвольными шагами. Итак, ваше решение может быть запланированным Событие CloudWatch, которое запускает пошаговую функцию, чтобы:

  1. Установите емкость вашей таблицы DynamoDB. (Я думаю, вам нужно написать для этого простую лямбда-функцию, потому что пошаговые функции не могут сделать это напрямую.)
  2. Вызов лямбда-выражения, запускающего задание конвейера данных
  3. Подождите, пока работа будет завершена
  4. Сбросить емкость чтения таблицы

Дополнительные ресурсы

  • репозиторий GitHub с примером рабочего процесса оркестрации ETL.
  • Еще один пример организации заданий ETL в AWS Step Functions. Пример включает цикл, который периодически проверяет статус задания.
  • UpdateTable API DynamoDB
person Matthew Pope    schedule 08.12.2019