【问题标题】:How do I export data (tables and data) from AWS DynamoDB and import into a local DynamoDB?如何从 AWS DynamoDB 导出数据(表和数据)并导入本地 DynamoDB?
【发布时间】:2019-08-28 16:04:50
【问题描述】:

我想创建一个隔离的本地环境(在 linux 上运行)用于开发和测试。

如何将 AWS DynamoDB 中的数据(约 10 个表和约几百条数据)导出到本地 DynamoDB 实例?

【问题讨论】:

    标签: amazon-web-services import export amazon-dynamodb


    【解决方案1】:

    我没试过,但你应该可以使用 CLI。

    首先将数据提取到本地JSON文件中

    aws dynamodb scan --table-name MYLIVETABLE --output json > pathtofile/MYLIVETABLE.json
    

    然后将该数据加载到您的本地 DynamoDB 实例中

    aws dynamodb batch-write-item --table-name MYLOCALTABLE --request-items file://pathtofile/MYLIVETABLE.json --endpoint-url http://localhost:8000
    

    【讨论】:

    • 第二个命令不起作用:--table-name 不是 batch-write-item 命令支持的选项。见:aws cli docs
    【解决方案2】:

    您可以使用dynamodump

    首先从 AWS 导出到您的本地机器:

    python dynamodump.py -m backup -r REGION_NAME -s TABLE_NAME
    

    下一次导入到DynamoDB Local

    python dynamodump.py -m restore -r local -s TABLE_NAME --host localhost --port 8000 --accessKey a --secretKey a
    

    最后验证新的本地表:

    aws dynamodb list-tables --endpoint-url http://localhost:8000
    

    重要提示:如果您在 AWS 上预置的读/写容量是 按需,您必须手动更改 ReadCapacityUnits 和 在步骤 1 中保存的 schema.json 文件中写入CapacityUnits 值 从 '0' 到 '1' 以避免出现以下错误:Table read and write 吞吐量必须至少为 1,并且不能为空

    【讨论】:

      【解决方案3】:

      AWS 确实为 dynamoDB 提供本地版本。更多详情如下:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html

      如上所述创建本地副本并将其转移到另一个本地 DynamoDB 实例中..

      【讨论】:

      • 这没有回答问题。
      • 如上所述创建本地副本并将其转移到另一个本地 DynamoDB 实例中..
      • 谢谢。你的答案是 100% 正确,但 0% 有帮助。我知道亚马逊为 DynamoDB 提供本地版本。我有它。因此我问了这个问题。 -- 鉴于我知道并拥有一个本地 DynamoDB 实例,我如何从 AWS DynamoDB 导出并导入我知道并且已经在运行的本地 DynamoDB?
      • 好吧,在那种情况下,下面是唯一可能的事情。stackoverflow.com/questions/37810936/…
      猜你喜欢
      • 2013-09-24
      • 2016-07-27
      • 1970-01-01
      • 2023-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      相关资源
      最近更新 更多