我有一个包含许多项目的大量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存储桶中。
答案 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表中。如果是一次性加载,则可以在加载完成后删除数据管道。