在dynamodb中,如果你想在主键之外的字段中强制执行唯一性(就像你有一个用户表并希望用户使用唯一的电子邮件地址而主键是用户ID是一个数字)有其他方法扫描该表以查看该电子邮件是否已被使用?
我有DynamoDB表,我想重命名它.似乎没有任何命令或选项来重命名表.之前有人改名过吗?
有关如何从DynamoDB表中随机选择项目/记录的任何想法?我不相信API中有任何相关规定.
我想维护一个NumericId | MyOtherKey("NumericIdTable")表,然后生成一个介于0和我拥有的记录总数之间的随机数,然后从NumericIdTable获取该项,但从长远来看它不会起作用.
欢迎思想/想法.
亚马逊为其Dynamodb产品提供本地模拟器,但示例仅在PHP中.
这些示例提到传递参数"base_url"以指定您正在使用本地Dynamodb,但是在Node中返回此错误:
{ [UnrecognizedClientException: The security token included in the request is invalid.]
message: 'The security token included in the request is invalid.',
code: 'UnrecognizedClientException',
name: 'UnrecognizedClientException',
statusCode: 400,
retryable: false }
Run Code Online (Sandbox Code Playgroud)
如何让Dynamodb_local在Node中工作?
亚马逊推荐的在生产DynamoDB中更改大型表的架构的方法是什么?
想象一个假设的情况,我们有一个表Person,主哈希密钥SSN.该表可能包含1000万个项目.
现在的消息是,由于身份盗窃的关键数量,这个假设国家的政府引入了另一个个人身份:唯一个人身份识别码,即UPI.
我们必须添加一个UPI列并更改Person表的模式,以便现在主哈希键是UPI.我们想要支持使用SSN的当前系统和使用UPI的新系统的一段时间,因此我们需要这两个列在Person表中共存.
亚马逊推荐的这种架构更改方式是什么?
我正在使用AWS Lambda扫描DynamoDB表中的数据.这是我得到的回报:
{
"videos": [
{
"file": {
"S": "file1.mp4"
},
"id": {
"S": "1"
},
"canvas": {
"S": "This is Canvas1"
}
},
{
"file": {
"S": "main.mp4"
},
"id": {
"S": "0"
},
"canvas": {
"S": "this is a canvas"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的前端应用程序正在使用Ember Data Rest Adapter,它不接受此类响应.有什么方法可以获得正常的JSON格式吗?有一个NPM模块被调用dynamodb-marshaler来将DynamoDB数据转换为普通的JSON.如果可能的话,我正在寻找原生解决方案.
它是每秒平均值吗?每分钟?每小时?
例如..如果我付10"阅读单位",允许使用每秒10高度一致的读取,我将被节流,如果我尝试做20单第二读取,即使是只有20个读取发生在最后一小时?亚马逊文档和常见问题解答无法在我能找到的任何地方回答这个关键问题.
我在FAQ中找到的唯一相关响应完全忽略了如何计算使用率以及何时可能发生限制的问题:
问:如果我的应用程序执行的读取或写入次数多于我的预配置容量,会发生什么?
答:如果您的应用程序执行的读取/秒或写入/秒比表的预配置吞吐量容量允许的更多,则超出预配置容量的请求将受到限制,您将收到400个错误代码.举例来说,如果你问1000个写入容量单位和尝试做1500写入/ 1个KB项目第二,DynamoDB将只允许1000写入/秒要经过,你会收到您额外的请求错误代码400.您应该使用CloudWatch监控请求率,以确保始终有足够的预配置吞吐量来实现所需的请求率.
我正在尝试创建一个表来存储DynamoDB中的发票行项目.比方说,该项目是由定义CompanyCode,InvoiceNumber和LineItemId,金额等行项目的详细信息.
唯一项由前3个属性的组合定义.对于不同的项目,这些属性中的任何两个都可以是相同的.我应该选择什么作为哈希属性和范围属性?
我有一个名为带主键的产品的表Id.我想选择表格中的所有项目.这是我正在使用的代码:
$batch_get_response = $dynamodb->batch_get_item(array(
'RequestItems' => array(
'products' => array(
'Keys' => array(
array( // Key #1
'HashKeyElement' => array( AmazonDynamoDB::TYPE_NUMBER => '1'),
'RangeKeyElement' => array( AmazonDynamoDB::TYPE_NUMBER => $current_time),
),
array( // Key #2
'HashKeyElement' => array( AmazonDynamoDB::TYPE_NUMBER => '2'),
'RangeKeyElement' => array( AmazonDynamoDB::TYPE_NUMBER => $current_time),
),
)
)
)
));
Run Code Online (Sandbox Code Playgroud)
是否可以在不指定主键的情况下选择所有项目?我正在使用AWS SDK for PHP.
我一直在浏览AWS DynamoDB文档,并且在我的生命中,无法弄清楚batchGetItem()和Query()之间的核心区别是什么.两者都根据表和索引中的主键检索项目.唯一的区别在于检索到的项目的大小,但这似乎不是突破性的差异.两者都支持条件更新.
在什么情况下我应该使用batchGetItem而不是Query,反之亦然?
amazon-dynamodb ×10
aws-lambda ×1
aws-sdk ×1
javascript ×1
json ×1
node.js ×1
nosql ×1
php ×1
random ×1
record ×1