AWS: синхронизировать c данные из DyanmoDB в Redshift на почасовой основе - PullRequest
0 голосов
/ 13 июля 2020

Я сохраняю некоторые события в DynamoDB. Мне нужно синхронизировать c (т.е. постепенно копировать) данные с Redshift. В конечном итоге я хочу иметь возможность анализировать данные с помощью AWS Quicksight.

Я встречал несколько решений, но они либо одноразовые (с использованием одноразовой команды COPY ) или в реальном времени (конвейер потоковых данных с использованием Kinesis Firehose ).

Решение в реальном времени кажется лучше, чем почасовая синхронизация c, но меня беспокоят производительность и сложность. Мне было интересно, есть ли более простой способ пакетировать обновления на почасовой основе.

1 Ответ

1 голос
/ 13 июля 2020

То, что вы ищете, - это DynamoDB Streams ( официальные документы ). Как вы правильно указали, он может плавно перетекать в шланг Kinesis.

Это наиболее оптимальный способ, обеспечивающий наилучший баланс между стоимостью, эксплуатационными накладными расходами и самой функциональностью. Позвольте мне объяснить, как:

  1. Потоки DynamoDB: Потоки запускаются, когда в базе данных происходит какое-либо действие. Это означает, что в отличие от процесса, который будет сканировать данные с периодичностью c и потреблять емкость чтения, даже если нет обновлений, вы будете уведомлены о новых данных.
  2. Kinesis Firehose : Вы можете настроить Firehose для пакетной обработки данных либо по размеру данных, либо по времени. Это означает, что если у вас хороший приток, вы можете настроить поток для пакетной обработки записей, полученных через каждые 2 минуты, а затем ввести только одну команду COPY для красного смещения. То же самое касается размера данных в буфере потока. Подробнее об этом здесь .

Идеальный способ загрузки данных в Redshift - это команда COPY, и Kinesis Firehose делает именно это. Вы также можете настроить его для автоматического создания резервной копии данных в S3.

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

...