2017-04-05 100 views
0

我有一個巨大的JSON文件,它有很多項目。我正在嘗試基於JSON文件創建DynamoDB表,而不必輸入每個單獨的屬性。我曾嘗試與AWSCLi從JSON文件創建dynamoDB表

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

注:

這是一個非常通用的類如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作爲MAP存儲在DynamoDB表上。這取決於您的使用情況,即您將如何使用加載到DynamoDB表中的數據。

選項2: -

您可以使用AWS Data Pipeline創建映射和數據加載到DynamoDB表。如果是一次性加載,則可以在加載完成後刪除數據管道。

+0

所以我不需要在創建表中的步驟正確的我的json字符串中的每個項目的定義? – user3609179

+0

是的,這不是必需的。 – notionquest

+0

我的一部分誤解,謝謝 – user3609179