从JSON文件

时间:2017-04-05 19:04:18

标签: python json amazon-dynamodb

我有一个包含许多项目的大量JSON文件。我正在尝试基于JSON文件创建DynamoDB表,而无需输入每个单独的属性。我已经尝试了以下AWSCLi

aws dynamodb create-table --cli-input-json file://tabledefinition.json
aws dynamodb create-table --generate-cli-skeleton

如此处所述(Create a DynamoDB table from json)。我还看了几个没有选项的python库(ex https://github.com/jlafon/PynamoDB)。所有json文件都存储在S3存储桶中。

1 个答案:

答案 0 :(得分:0)

注意:

这是一个非常通用的类,因为OP没有提到特定的表定义。

表定义JSON不等于普通数据JSON。请参阅表定义JSON的示例。您需要使用JSON和AWS CLI创建类似的表来创建表。

{
    "TableName": "MusicCollection2",
    "KeySchema": [
      { "AttributeName": "Artist", "KeyType": "HASH" },
      { "AttributeName": "SongTitle", "KeyType": "RANGE" }
    ],
    "AttributeDefinitions": [
      { "AttributeName": "Artist", "AttributeType": "S" },
      { "AttributeName": "SongTitle", "AttributeType": "S" }
    ],
    "ProvisionedThroughput": {
      "ReadCapacityUnits": 5,
      "WriteCapacityUnits": 5
    }
}

数据加载选项: -

选项1: -

创建表后,您可以编写Python code将数据加载到DynamoDB中。请注意,您需要将JSON上的每个属性映射到DynamoDB表上的属性(或)将JSON存储为DynamoDB表上的MAP。这取决于您的使用情况,即您将如何使用加载到DynamoDB表中的数据。

选项2: -

您可以使用AWS Data Pipeline创建映射并将数据加载到DynamoDB表中。如果是一次性加载,则可以在加载完成后删除数据管道。