我有一个DynamoDB表,其中包含:
我希望能够通过查询获取最新的商品,但是这样做需要我对Timestamp
进行排序,而不是对它进行分区。我当时正在考虑这样做:
这样,我可以查询并传递硬编码的分区。
但这是不好的做法吗?
答案 0 :(得分:1)
这取决于。
要考虑的主要问题是分区对于读取和写入均具有有限的吞吐量。这与表的预配置吞吐量无关。分区的吞吐量受硬盘的读写速度限制。请记住,具有相同哈希值的所有项目都将位于同一分区上,因此将被写入同一磁盘(折扣复制)。
所以,这取决于您的规模。它可以在小规模,低吞吐量的用例中使用,但无法扩展到单个磁盘之外。
答案 1 :(得分:1)
对于哈希键使用单个硬编码值通常是一种不好的做法。对于这种用例,您应该考虑使用year_month_day(或某些变体)作为您的哈希键,而不是硬编码的哈希键值。它仍然不是很好,但是比单个值要好得多。
如果您确实想使用硬编码的哈希键值,请考虑对shard your data across partitions使用多个硬编码值。