首页 文章

AWS:从dynamodb到redshift的数据转换[关闭]

提问于
浏览
0

我有一个日常的日志表(每天大约10米输入)存储在DynamoDB中 .

为了进行分析,我需要将它转移到Redshift中 . 此外,我需要通过解析字符串(nvarchar(250))从现有列中创建新列 . 我的想法是使用COPY命令并将数据从DynamoDB传输到Redshift,然后使用UDF创建新列 .

这种方法的问题在于它需要花费大量时间来完成(两个部分)并且它一直失败(查询状态为ABORTED):我在一个复制命令中传输大约10天的数据 .

您认为应该采用哪种更好的方法:使用数据管道或EMR等亚马逊服务?或做同样的事情,但组织方式不同?

2 回答

  • 1

    我的设计建议不是将您的数据存储在dynamodb中 . 因为在执行复制命令时,从成本角度来看,它会消耗您为dynamo db设置的最高吞吐量值 .

    不确定如何设置主键值以及为dynamodb设置的当前直通值 .

    为此,我的解决方案是将数据写入s3,以所需的redshift存储格式 . 从s3使用定期/一次性活动中的数据管道将数据处理到红移集群 .

    默认情况下,Aws数据管道使用EMR处理您的数据 .

    如果在存储数据之前需要更多清理,请考虑在EMR中使用Spark .

    但在此之前你需要说 . 10米记录大小的大小是多少,您可以选择采用我的建议,如写入s3 . 如果是,您需要通过考虑性能/成本优化过程进行设计 .

    如果您需要更多帮助,发表评论将提供我最好的建议 .

  • 1

    您可以使用AWS Glue设置ETL(提取转换加载)作业以将数据从DynamoDB移动到Redshift .

相关问题