批量读取DynamoDB或将数据流式传输到S3

时间:2016-09-10 13:39:51

标签: amazon-s3 amazon-dynamodb aws-lambda amazon-kinesis

我有一个dynamodb表,我需要每小时读一次以在数据仓库上执行加载。我认为有两种选择:

  1. 创建一个作业,按last_update时间戳扫描表过滤并加载到DW。
  2. 对每个新的更新/插入使用Kinesis + Lambda我将记录转储到S3,以便进一步处理。然后我创建一个每小时的作业,将s3文件加载到DW。
  3. 最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

对于1号,你的方式还不错。 我需要更多规格才能改进。

对于数字2,您应该使用Kinesis Firehose并将其配置为直接将数据保存到S3。

答案 1 :(得分:1)

使用DynamoDB更新流是在前端服务数据库(DynamoDB)和分析数据库之间进行连接的有效方式。它允许解耦,使系统的每个部分独立,从而不会破坏其他部分。

它还允许您拥有无服务器环境,从而减少您的操作负担和工作量。您可以使用正在读取更新流的单个Lambda函数来确定将哪些数据记录到哪个数据存储区。通常人们将所有插入/更新/删除作为日志写入S3,并将相关记录和列写入数据仓库中的各个表(例如,Redshift)。您的Lambda函数可以将转换后的记录放到几个Kinesis Firehose中,这样可以将数据可靠地移动到目的地。