【发布时间】:2019-02-26 02:48:56
【问题描述】:
我有一个 dynamodb 表,它以字符串格式存储 creation_date 纪元。此日期既不是哈希键也不是排序键。最终目标是查询 creation_date 的范围,即我需要给定时间范围内的所有 id。
表架构是: ID、版本、创建日期、信息。
id 是哈希键,版本是排序键。
我正在考虑创建一个 cloudsearch 域并将其链接到 dynamodb 表。如果日期是字符串格式,是否可以使用 java 在 cloudsearch 中使用范围查询?如果是怎么办?
【问题讨论】:
-
在生产环境中使用过 DynamoDB 和 CloudSearch,如果您只需要一个查询,我建议您只使用 DynamoDB。您可以使用单个 GSI 来完成它,这将比使用 CloudSearch 更简单并且可能更具成本效益。如果你愿意,你可以提供一些关于你的桌子的更多信息,我可以给出更详细的解释。
-
用架构更新了问题。我无法使用 creation_date 作为哈希键创建 gsi,因为它不允许按范围查询。查询时我没有 id。这就是为什么我不能创建一个 id 作为哈希键和 creation_date 作为排序键的 gsi。
-
还是可以的。您将查询的时间范围的典型大小是多少?您的项目创建率是多少?
-
时间范围约为 2 周。通常在一小时内创建大约 300 个条目。但这可能会有所不同。
标签: amazon-dynamodb aws-sdk amazon-cloudsearch