繁体   English   中英

导入导出到 S3 的 DynamoDB 表 JSON 的最佳方法是什么?

[英]What is the best way to import DynamoDB table JSON exported to S3?

我在 AWS 控制台中使用 Export to S3 导出了一个 DynamoDB 表。 格式为 DynamoDB JSON & 该文件包含 250 个项目。

我想将数据导入另一个表。

由于 AWS 控制台中没有导入功能,我想使用 AWS CLI,但这似乎需要另一种格式,并且仅限于 25 个项目的批次。

有没有办法简单地在 AWS CLI 中实现这一点?

将数据导入另一个表的最佳方法是什么?

我假设由于 AWS 控制台允许您执行导出,因此必须有一些简单的方法来导入这些数据。

NB 由于我所在地区不支持 AWS Data Pipeline,因此我无法使用它。

TLDR:您必须自己解组并上传 JSON。


由于 AWS 控制台中没有导入功能,我想使用 AWS CLI,但这似乎需要另一种格式,并且仅限于 25 个项目的批次。

正确,AWS CLI 允许您使用batch-write-item数据加载到表中- 这是 25 个批处理 PUT/DELETE 请求限制的来源 - 但是这是针对未编组(“常规”)JSON 的。

Export to Amazon S3的 output 是 DynamoDB 的编组JSON 格式,与batch-write-item命令不兼容。

有没有办法简单地在 AWS CLI 中实现这一点?

不幸的是,DynamoDB 自己的Export to Amazon S3流在控制台和 CLI 中都没有等效的Import from Amazon S3流。

Since the AWS Command Line Interface is just an interface to AWS's SDK for Python (Boto3), it also means that the SDK doesn't also support an import of marshalled JSON which ultimately means that the underlying API does not support this.

将数据导入另一个表的最佳方法是什么?

The solution is to create a quick prototype to take the uncompressed JSON files, unmarshal the JSON using the suitable SDK method (eg unmarshall method in the Javascript SDK ) and then upload the unmarshalled items to the table.

您可以使用 CLI 或 DynamoDB SDK 作为原型应用程序用于上传的语言。

AWS CLI 不支持 JSON 的解组,因此您需要自己的原型应用程序。


不久前我遇到了同样的问题。

我希望 AWS 最终至少支持通过 CLI 对 JSON 进行(un/)编组 - 它通过 Boto3 看起来是可行的,所以我不确定为什么它没有出现在 SDK 中。

然而最终,这是 AWS 当前产品中的一个差距,应该有一个简单的从 S3 API 端点导入,支持 SDK 实施、CLI 功能和控制台界面。

这也将消除手动上传的相关成本,因为导出功能不会消耗读取容量,您希望导入功能不会消耗写入容量。


我可能会编写一个小型开源跨平台控制台应用程序,用于解组和批量上传......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM