如何将 AWS DynamoDB 表导出到 S3 存储桶?

Posted

技术标签:

【中文标题】如何将 AWS DynamoDB 表导出到 S3 存储桶?【英文标题】:How to export an AWS DynamoDB table to an S3 Bucket? 【发布时间】:2020-08-29 12:54:41 【问题描述】:

我有一个 DynamoDB 表,它有 150 万条记录/2GB。如何将其导出到 S3?

执行此操作的 AWS 数据管道方法适用于一个小表。但是我在将 150 万条记录表导出到我的 S3 时遇到了问题。

在我最初的试用中,管道作业耗时 1 小时,但失败了

java.lang.OutOfMemoryError: 超出 GC 开销限制

我按照this link 向 EMR 集群内的实例提供了一个 hadoop-env 配置对象,从而增加了 namenode 堆大小

增加堆大小后,我的下一次作业运行尝试在 1 小时后失败,并出现另一个错误,如随附的屏幕截图所示。我不知道该怎么做才能完全解决这个问题。

同时检查 EMR 集群中实例的 AWS Cloudwatch 图。核心节点一直保持 100% 的 CPU 使用率。

EMR 集群实例类型(主节点和核心节点)为 m3.2xlarge。

【问题讨论】:

这可能是一个很长的尝试,但它是否适用于较新的实例类型,例如 m5。 m3 是传统的 您可以使用 dynamodb emr 连接器定义一个 hive 表并运行从 dynamodb 导入数据并将其导出到 s3 的 spark 作业 【参考方案1】:

问题在于地图任务没有有效运行。核心节点达到 100% 的 CPU 使用率。我将集群实例类型升级为可用的计算 C 系列之一,导出工作没有问题。

【讨论】:

以上是关于如何将 AWS DynamoDB 表导出到 S3 存储桶?的主要内容,如果未能解决你的问题,请参考以下文章

Aws Dynamodb数据导出到S3

使用 AWS Datapipeline 将 DynamoDB 导出到 S3 数据

将dynamoDB表复制到另一个没有S3的aws帐户

使用 Hive 将 Dynamodb 导出到 S3

如何从 aws 控制台将 dynamoDB 表的全部记录导出到 CSV?

如何在 AWS 中使用 Glue 作业覆盖 s3 数据