AWS:每小时将数据从DyanmoDB同步到Redshift



我正在将一些事件存储到DynamoDB中。我必须用Redshift同步(即增量复制(数据。最终,我希望能够通过AWS Quicksight分析数据。

我遇到过多种解决方案,但它们要么是一次性的(使用一次性COPY命令(,要么是实时的(使用Kinesis Firehose的流式数据管道(。

实时解决方案似乎优于每小时同步,但我担心性能和复杂性。我想知道是否有一种更简单的方法可以每小时批量更新。

您正在寻找的是DynamoDB Streams(官方文档(。正如你正确指出的那样,这可以无缝地流入Kinesis消防软管。

这是最优化的方式,在成本、运营开销和功能本身之间提供了最佳平衡。请允许我解释如何:

  1. DynamoDB流:当数据库上发生任何活动时,都会触发流。这意味着,与定期扫描数据并消耗读取容量的进程不同,即使没有更新,您也会收到新数据的通知
  2. Kinesis Firehose:您可以根据数据大小或时间将Firehose配置为批处理数据。这意味着,如果您有良好的流入,您可以将流设置为每2分钟批处理一次接收到的记录,然后只向红移发出一个COPY命令。流缓冲区中数据的大小也是如此。点击此处了解更多信息

将数据加载到Redshift的理想方式是通过COPY命令,Kinesis Firehose就是这样做的。您还可以将其配置为自动创建S3中的数据备份。

请记住,反应式或推送式系统几乎总是比反应式或推动式系统性能更高,成本更低。您节省了运行cron进程所需的计算能力,还可以持续扫描更新。

最新更新