gpt4 book ai didi

amazon-dynamodb - 在 Dynamodb 中查询而无需哈希键或扫描

转载 作者:行者123 更新时间:2023-12-04 04:46:04 24 4
gpt4 key购买 nike

我希望在没有哈希键的情况下查询 Dynamodb。我试过使用扫描,但它很昂贵,所以寻找其他一些替代方案。

最佳答案

我应该首先说在不知道哈希键的情况下查询 DynamoDB 表是不可能的。这是有道理的。

现在,您要使用的哈希键是否是 主键 表与否,取决于你。

例如,假设您有下表:

╔══════════════════════╦════════════════════════╦════════════════╗
║ course_id (Hash Key) ║ course_name ║ teacher ║
╠══════════════════════╬════════════════════════╬════════════════╣
║ 324234 ║ Node.js for Dummies ║ Ryan Dahl ║
║ 213323 ║ How to train your cat ║ Jackson Galaxy ║
║ 324090 ║ Cat Logic ║ Jackson Galaxy ║
║ 763298 ║ Diving into .NET ║ Eric Lippert ║
╚══════════════════════╩════════════════════════╩════════════════╝

表的主键和散列键是 course_id ,这很好。提供唯一的哈希键可以将您的表拆分为多个分区。

但是,如果我们想得到 怎么办? Jackson Galaxy 教授的所有类(class) ?

我们不知道 course_id在这些类(class)中,这就是我们想要的。所以我们发现自己不知道项目的哈希键值。

那就是 GSI 参加进来。 全局二级索引让您为表定义不同的哈希键。 请注意,它不会更改主哈希键 - course_id仍将是表的哈希键。

GSI 只为您提供一个额外的哈希键,以便您能够进行更复杂的查询。

假设我们添加了一个名为 teacher_index 的 GSI ,我们说 teacher将是我们的哈希键,而 course_id将是我们的范围键(我们需要指定一个范围键,因为 teacher 单独作为散列键会生成重复的条目)。

现在我们可以查询我们的 teacher_index并传入 Jackson Galaxy作为哈希键值。结果将是 213323 - How to train your cat324090 - Cat Logic .

关于amazon-dynamodb - 在 Dynamodb 中查询而无需哈希键或扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35861013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com