我想确保我得到这个权利,
根据我到目前为止阅读,你不能查询范围的主键的dynamodb,
就像如果你有一个主键是数字,如客户的电话号码,你不能与主键大于30.1亿和30.1亿和30.2亿之间的项目
,使之清楚,我不是在谈论的范围键,我的问题是关于主密钥本身,
所以,如果这是真的,那么有很多用例,例如日期之间的项目,在某些点之后注册的用户,以及...,要求表扫描,
它是否正确?
编辑:好的,一个想到的解决方案是,只使用一个虚拟hash_key作为主键,并插入真实密钥(如上面的电话号码)作为范围键,这是否有效?
是的,你无法获得hash_keyDynamoDb的一系列.但这并不意味着你会被你的用例所困扰.
让我们来看看'约会'用例并说你正在构建一个日志应用程序.您每天可能会获得大量记录.
如果您使用day作为hash_key,则可以将完整时间戳作为range_key.这样,您可以将查询拆分为块并获得所需内容.
当然,为了获得最佳结果,您需要很好地了解查询类型.例如,典型的范围是什么?使用DynamoDb以及其他键值存储,您大多数时候都会考虑查询来建立数据模型,这与SQL在您仅考虑数据时进行建模时不同.
当然,如果您的物品跨越更大/更短的范围,只需调整此系统即可.
关于"所有同一个假人hash_key"听起来像一个可怕的想法.抱歉.我不是百分之百确定它是如何工作的但我知道DynamoDB在所谓的分区上做了一些分片.我相信1 hash_key <=> 1 partitions.此外,如果仔细阅读文档,您会注意到分配的吞吐量在分区之间均匀分配,因此每个分区只分配了您支付的一小部分.
| 归档时间: |
|
| 查看次数: |
5968 次 |
| 最近记录: |