gpt4 book ai didi

random - AWS DynamoDB - 随机选择记录/项目?

转载 作者:行者123 更新时间:2023-12-02 08:07:33 25 4
gpt4 key购买 nike

有什么想法如何从 DynamoDB 表中随机选择项目/记录吗?我不认为 API 中对此有任何规定。

我考虑过维护一个 NumericId|MyOtherKey (“NumericIdTable”)表,然后生成一个 0 到我拥有的记录总数之间的随机数,然后从 NumericIdTable 获取该项目,但它不会长期工作-运行。

欢迎提出想法/想法。

最佳答案

我想出的一种从 DynamoDB 表中随机选择项目的方法:

  1. 针对表中所有可能的 RangeKey 生成随机 RangeKey
  2. 使用此 RangeKey 和 RangeKeyCondition GreaterThan 且限制为 1 查询表

例如,如果您使用 UUID 作为 RangeKey 的标识符,您可以获得如下所示的随机项目

RandomRangeKey = new UUID
RandomItem = Query( "HashKeyValue": "KeyOfRandomItems",
"RangeKeyCondition": { "AttributeValueList":
"RandomRangeKey",
"ComparisonOperator":"GT"},
"Limit": 1 )

这样你就可以得到一个随机元素并且只消耗1个读取容量。

通过生成比表中使用的最小 UUID 更小的 UUID,有可能会错过随机变量的第一个查询。这个机会会随着表的扩大而缩小,您可以使用同一个随机键上的 SmallerThan 比较轻松地发送另一个请求,从而确保随机项目的命中。

<小时/>

如果您的 Tabledesign 不允许使用可随机化的 RangeKeys,您可以按照您的方法创建一个单独的 RandomItem 表,并将 ID 存储在可随机化的 RangeKey 下。可能的表结构是

*RandomItemTable
TableName - HashKey
UUID - Rangekey
ItemId

请记住,对于这种方法,您需要管理原始表和随机化表之间的冗余。

关于random - AWS DynamoDB - 随机选择记录/项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10666364/

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