我正在使用Node.js
var AWS = require('aws-sdk');
AWS.config.update({
region: "region",
endpoint: "https://dynamodb.region.amazonaws.com"
});
var dynamodb = new AWS.DynamoDB();
var params = {
TableName: "acc_new"
};
dynamodb.describeTable(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(JSON.stringify(data));
});
输出:
{ AttributeDefinitions: [ { AttributeName: 'Id', AttributeType: 'S' } ],
TableName: 'acc_new',
KeySchema: [ { AttributeName: 'Id', KeyType: 'HASH' } ],
ProvisionedThroughput: { ReadCapacityUnits: 5, WriteCapacityUnits: 5 } }
输出仅包含与表关联的关键模式(仅限哈希和范围键),而不是所有属性。我想获取与表中数据相关的所有属性。
像:
{ AttributeName: 'AccountName', AttributeType: 'S' }
{ AttributeName: 'CreatedBy', AttributeType: 'S' }
...
...
有没有办法获取DynamoDb表及其所有数据字段的描述。
答案 0 :(得分:1)
DynamoDB是一个NoSQL数据库。在创建表时,它并不期望在表中定义所有属性。此外,每个项目可以具有任意数量的非关键属性。只有关键属性在表中的所有项目中是通用的或必需的。
由于上述原因,描述表不能提供表中的所有属性。
答案 1 :(得分:1)
目前尚无常规方法,但是如果您确实需要这样做,我将按照以下方法进行操作:
lambda函数将执行以下操作:
几天或更长时间(取决于行数),您将把DynamoDB表中的所有列名存储在SQL DB中。
答案 2 :(得分:0)
对于上述情况,无法列出表中的所有属性。由于Dynamodb是NoSql,因此事先定义了数据库属性,因此在创建表时只定义了散列键和范围键。