То, что вы ищете, - это DynamoDB Streams ( официальные документы ). Как вы правильно указали, он может плавно перетекать в шланг Kinesis.
Это наиболее оптимальный способ, обеспечивающий наилучший баланс между стоимостью, эксплуатационными накладными расходами и самой функциональностью. Позвольте мне объяснить, как:
- Потоки DynamoDB: Потоки запускаются, когда в базе данных происходит какое-либо действие. Это означает, что в отличие от процесса, который будет сканировать данные с периодичностью c и потреблять емкость чтения, даже если нет обновлений, вы будете уведомлены о новых данных.
- Kinesis Firehose : Вы можете настроить Firehose для пакетной обработки данных либо по размеру данных, либо по времени. Это означает, что если у вас хороший приток, вы можете настроить поток для пакетной обработки записей, полученных через каждые 2 минуты, а затем ввести только одну команду
COPY
для красного смещения. То же самое касается размера данных в буфере потока. Подробнее об этом здесь .
Идеальный способ загрузки данных в Redshift - это команда COPY
, и Kinesis Firehose делает именно это. Вы также можете настроить его для автоматического создания резервной копии данных в S3.
Помните, что реактивная система или система на основе pu sh почти всегда более производительна и менее затратна, чем реактивная система или система на основе pu sh . Вы экономите на вычислительной мощности, необходимой для запуска процесса cron, а также на постоянном поиске обновлений.