我必须跳转到 AWS Keyspaces 表中的特定行。具体来说,我正在进行分页,所以我希望能够跳转到特定页面。我有什么选择吗?
例如,我必须在 1e+6 行之后获取 100 行。而且我想尽快做到这一点。
我的想法/解决方案:
- 将页面大小设置为请求的一个(在本例中为 100)并遍历所有行并获取
next_page
直到找到一个特定的集合 - 查找页面的最大可能大小并用于
max_page
迭代最大可能的行集
但也许有更聪明的解决方案?
我没有机会通过添加其他列来以某种方式更改表格!
我必须跳转到 AWS Keyspaces 表中的特定行。具体来说,我正在进行分页,所以我希望能够跳转到特定页面。我有什么选择吗?
例如,我必须在 1e+6 行之后获取 100 行。而且我想尽快做到这一点。
我的想法/解决方案:
next_page
直到找到一个特定的集合max_page
迭代最大可能的行集但也许有更聪明的解决方案?
我没有机会通过添加其他列来以某种方式更改表格!
分页不是 Cassandra 中的最佳实践,因为在查询它们之前你不知道会有多少结果。Amazon Keyspaces 根据它为处理请求而读取的行数对结果进行分页,而不是根据结果集中返回的行数。因此,某些页面包含的行数可能少于您在 PAGE SIZE 中为筛选查询指定的行数。此外,Amazon Keyspaces 在读取 1 MB 数据后自动对结果进行分页,为客户提供一致的个位数毫秒读取性能。
对于分页页面,我们有一个称为导出工具的工具。该工具允许您逐页异步阅读。即使您跳过它们,它也会读取分区键。在 Keyspaces 中仍然需要读取每个分区键,这意味着使用更多的 RCU,但这将实现您的目标。当您使用该工具逐页阅读时,您可能会看到该工具在一定数量的页面后停止,您只需在再次运行它时停止的页面重新启动该工具。