Amazon dynamodb DynamoDB每小时读写800万条记录并复制到Redshift的成本

Amazon dynamodb DynamoDB每小时读写800万条记录并复制到Redshift的成本,amazon-dynamodb,amazon-redshift,Amazon Dynamodb,Amazon Redshift,请帮我计算一下。这是我们计算价格的方式吗? 我们有一个平均每小时创建800万条记录(2500条记录/秒)的流,我们希望使用aws Lambda将其插入DynamoDB 每个记录的最大大小为450字节。 据我所知,对于小于1KB的内存,Dynamodb需要1个写容量单元。因此,对于每秒2500条记录,我们需要2500个写入容量单位 数据被实时插入DynamoDB。 出于分析目的,我们也需要相同的数据处于红移状态。所以每15分钟我们需要将Dynamodb表同步到Redshift表。企业只希望在顶部红

请帮我计算一下。这是我们计算价格的方式吗?

我们有一个平均每小时创建800万条记录(2500条记录/秒)的流,我们希望使用aws Lambda将其插入DynamoDB

每个记录的最大大小为450字节。 据我所知,对于小于1KB的内存,Dynamodb需要1个写容量单元。因此,对于每秒2500条记录,我们需要2500个写入容量单位


数据被实时插入DynamoDB。 出于分析目的,我们也需要相同的数据处于红移状态。所以每15分钟我们需要将Dynamodb表同步到Redshift表。企业只希望在顶部红移集群上进行分析

要在15分钟内使用redshift copy命令将数据从DynamoDB复制到redshift,我需要大约10000个读取容量单位

这样做的费用约为每月2400美元


更多信息

既有建筑

S3=>Lambda=>Redshift:在Lambda出现Redshift时,作业进入队列,而其他作业被延迟之前,这一切都很正常。所以我们向亚马逊技术支持部门询问:他们明确提到,对于实时或近实时注入,红移不是一个好选择。我们使用EMR clusster代替Lambda,创建清单文件(添加多个文件)并进行红移复制-结果仍然令人满意。商业力量现在不想增加集群

提议的架构

S3=>Lambda=>DynamoDB(一旦文件到达)=>每15分钟=>从DynamoDB查询数据并保存到S3=>Redshift

企业的问题是成本是多少 我们每15分钟查询一次Dynamodb数据,记录数为400万。 保存到S3 用那个S3做一个红拷贝

如果我给出的读取单位是10000,那么Dynamodb(450万)的读取能否在7分钟内完成

10000*60(秒)=60000条记录

60,00000*7分钟=420万

我的计算是

7分钟从Dynamo DB读取数据

给S3写3分钟

3分钟进行红移复制

简言之,业务需要在文件到达S3后立即将数据保存在Dynamodb中。 他们可以等待15分钟,以红移方式反映


关于这方面的任何其他建议,您似乎有两个要求:

  • 将数据从AmazonS3加载到DynamoDB中
  • 将数据从AmazonS3加载到AmazonRedshift
S3至发电机B

您似乎已经很好地完成了这项工作,使用AmazonS3触发AWS Lambda函数,然后将数据加载到AmazonS3中

S3到红移

如果数据与最初从S3加载的数据完全相同,则没有理由将数据从DynamoDB复制到Redshift。只需使用相同的文件将数据加载到Redshift中,但要以固定的间隔作为批处理

将数据加载到Amazon Redshift的最佳方法是通过COPY命令批量加载数据。因此,我建议:

  • 使用Lambda函数(可能与DynamoDB使用的函数相同)将所有传入文件的列表整理到amazons3中。您可以将其存储在DynamoDB表中(或您自己选择的其他地方)
  • 使用亚马逊CloudWatch事件计划定期(每15分钟)触发AWS Lambda功能,该功能将:
    • 创建自上次加载以来接收的所有文件的
    • 在红移中运行复制命令
    • 将DynamoDB中的那些文件标记为已处理(以便它们不会包含在将来的执行中)
这种方法的好处:

  • 这两个过程的分离,使它们更易于维护
  • 不需要从DynamoDB读取数据,这将降低读取容量单位成本
  • 您可以根据需要将加载频率更改为红移

你说的“15分钟内”是什么意思?数据是连续输入的,您希望将其写入DynamoDB,还是希望在15分钟内加载一定数量的记录?您的2500数字大致正确,但这与15分钟有什么关系?数据会实时插入DynamoDB。出于分析目的,我们也需要相同的数据处于红移状态。所以每15分钟我们需要将Dynamodb表同步到Redshift表。企业只想在顶级红移集群上进行分析。为什么不使用AWS Lamda在s3上转储数据,并在红移中创建一个外部表,并使用红移频谱进行查询?@sardar是的,这更好!从DynamoDB的容量来看,将数据从DynamoDB复制到Redshift相当“昂贵”。使用红移光谱直接从S3读取它会容易得多。@SachinSukumaran您使用什么来提供“流”?你用的是亚马逊运动吗?如果是这样的话,就可以很容易地将数据移动到红移。您能否提供您正在构建的整个系统的高级描述,例如如何使用DynamoDB、Redshift等?这将帮助我们为您提供更合适的答案。请随意编辑您的问题以添加更多详细信息。请专注于你想要实现的目标,而不是你想如何实现它。