2017-04-05 32 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: -

テーブルが作成されたら、あなたはDynamoDBのにデータをロードするPython codeを書くことができます。 JSONの各属性をDynamoDBテーブルの属性にマップする必要があります(または、JSONをMAPとしてDynamoDBテーブルに格納する必要があります)。これは、ユースケース、つまりDynamoDBテーブルにロードされたデータをどのように使用するかによって異なります。

オプション2: -

あなたは、マッピングを作成し、DynamoDBのテーブルにデータをロードするためにAWS Data Pipelineを使用することができます。 1回のロードであれば、ロードが完了したらデータパイプラインを削除できます。

+0

私はjsonの文字列の各項目について、テーブルの作成手順で正しい定義をする必要はありませんか? – user3609179

+0

はい、必須ではありません。 – notionquest

+0

私の一部で誤解をおかけしました – user3609179

関連する問題