DynamoDB在本地计算机中创建表

时间:2016-01-25 04:03:41

标签: amazon-dynamodb

我已将DynamoDB jar下载到我的本地Windows机器,并能够使用下面的命令启动服务。

java -jar DynamoDBLocal.jar -dbPath .

我可以使用localhost:8000 / shell /

访问Web控制台

但是,我不知道如何创建表,有人可以给我语法和任何示例

如果我想创建包含以下详细信息的表,如何操作并插入数据?

表:学生 列:sid,firstname,lastname,address。

感谢您的投入。

4 个答案:

答案 0 :(得分:16)

文件很难理解。 由于您使用的是dynamodb shell,我假设您要求使用js查询来创建表。

var params = {
TableName: 'student',
KeySchema: [ 
    { 
        AttributeName: 'sid',
        KeyType: 'HASH',
    },
],
AttributeDefinitions: [ 
    {
        AttributeName: 'sid',
        AttributeType: 'N', 
    },


],
ProvisionedThroughput: { 
    ReadCapacityUnits: 10, 
    WriteCapacityUnits: 10, 
},
};

dynamodb.createTable(params, function(err, data) {
    if (err) ppJson(err); // an error occurred
    else ppJson(data); // successful response

});

在浏览器中运行上述代码段(localhost:8000 / shell /)。它创建一个以'sid'作为哈希键的表。 要插入:

var params = {
TableName: 'student',
Item: { // a map of attribute name to AttributeValue

    sid: 123,
    firstname : { 'S': 'abc' },
    lastname : { 'S': 'xyz' },
    address : {'S': 'pqr' },
    ReturnValues: 'NONE', // optional (NONE | ALL_OLD)
    ReturnConsumedCapacity: 'NONE', // optional (NONE | TOTAL | INDEXES)
    ReturnItemCollectionMetrics: 'NONE', // optional (NONE | SIZE)
};
docClient.put(params, function(err, data) {
    if (err) ppJson(err); // an error occurred
    else ppJson(data); // successful response
});

答案 1 :(得分:11)

我建议使用docker(但也可以运行jar):

$ docker run -d -p 8000:8000 amazon/dynamodb-local 

然后您可以通过传入endpoint-url在docker容器中创建一个表:

$ aws dynamodb create-table \
   --table-name UnifiedTable \
   --attribute-definitions AttributeName=pk,AttributeType=S AttributeName=sk,AttributeType=S \
   --key-schema AttributeName=pk,KeyType=HASH AttributeName=sk,KeyType=RANGE \
   --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \
   --endpoint-url http://localhost:8000

您可以像这样检查表是否存在:

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

# Output:
# {
#     "TableNames": [
#         "UnifiedTable"
#     ]
# }

答案 2 :(得分:2)

答案 3 :(得分:0)

aws.config.update({
 dynamodb: {
      endpoint: 'http://localhost:8000'
 },
}