gpt4 book ai didi

amazon-web-services - 如何导入导出到 S3 的 DynamoDB 表 JSON?

转载 作者:行者123 更新时间:2023-12-05 01:25:50 24 4
gpt4 key购买 nike

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

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

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

有没有一种方法可以简单地在 AWS CLI 中实现这一点?

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

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

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

最佳答案

截至 2022 年 8 月 18 日的更新:

AWS 现在引入了一种将 DynamoDB JSON(以及其他格式)导入 DynamoDB 的方法。

查看官方公告:Amazon DynamoDB now supports bulk imports from Amazon S3 to new DynamoDB tables

官方博文:Amazon DynamoDB can now import Amazon S3 data into a new table


旧答案供引用。

TLDR:您必须自行解码并上传 JSON。


Since there is no import functionality in the AWS console, I wanted to use the AWS CLI but it seems that this requires another format & is limited to batches of 25 items.

正确,AWS CLI 允许您使用 batch-write-itemload data into a table - 这是 25 个批处理 PUT/DELETE 请求限制的来源 - 但这是针对未编码(“常规”)JSON。

Export to Amazon S3 的输出是 DynamoDB 的ma​​rshalled JSON 格式,与batch-write-item 命令不兼容.

Is there a way to achieve this simply within the AWS CLI?

不幸的是,DynamoDB 自己的导出到 Amazon S3 流程在控制台和 CLI 中都没有等效的从 Amazon S3 导入流程。

AWS Command Line Interface只是 AWS 的 Python SDK (Boto3) 的一个接口(interface),这也意味着该 SDK 也不支持导入编码的 JSON,这最终意味着底层 API 不支持这一点。

What is the best way to import the data into another table?

解决方案是创建一个快速原型(prototype)来获取未压缩的 JSON 文件,使用合适的 SDK 方法(例如 unmarshall method in the Javascript SDK)解码 JSON,然后将解码后的项目上传到表中。

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

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


我前一段时间遇到了同样的问题。

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

但归根结底,这是 AWS 当前产品中的一个缺口,应该有一个简单的从 S3 导入 API 端点,支持 SDK 实现、CLI 功能和控制台界面。强>

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


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

关于amazon-web-services - 如何导入导出到 S3 的 DynamoDB 表 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70666188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com