1

我必须跳转到 AWS Keyspaces 表中的特定行。具体来说,我正在进行分页,所以我希望能够跳转到特定页面。我有什么选择吗?

例如,我必须在 1e+6 行之后获取 100 行。而且我想尽快做到这一点。

我的想法/解决方案:

  1. 将页面大小设置为请求的一个(在本例中为 100)并遍历所有行并获取next_page直到找到一个特定的集合
  2. 查找页面的最大可能大小并用于max_page迭代最大可能的行集

但也许有更聪明的解决方案?

我没有机会通过添加其他列来以某种方式更改表格!

4

1 回答 1

2

分页不是 Cassandra 中的最佳实践,因为在查询它们之前你不知道会有多少结果。Amazon Keyspaces 根据它为处理请求而读取的行数对结果进行分页,而不是根据结果集中返回的行数。因此,某些页面包含的行数可能少于您在 PAGE SIZE 中为筛选查询指定的行数。此外,Amazon Keyspaces 在读取 1 MB 数据后自动对结果进行分页,为客户提供一致的个位数毫秒读取性能。

对于分页页面,我们有一个称为导出工具的工具。该工具允许您逐页异步阅读。即使您跳过它们,它也会读取分区键。在 Keyspaces 中仍然需要读取每个分区键,这意味着使用更多的 RCU,但这将实现您的目标。当您使用该工具逐页阅读时,您可能会看到该工具在一定数量的页面后停止,您只需在再次运行它时停止的页面重新启动该工具。

于 2022-01-21T20:44:56.970 回答