如何在Clickhouse中进行分页

时间:2019-03-27 10:20:45

标签: clickhouse

您能建议我如何在Click House中进行分页吗? 弹性搜索中的Dor示例我做如下聚合查询。在这里,弹性搜索采用参数分区号和分区大小并给出结果。假设总共有100条记录,如果分区大小为10且分区号为2,则将获得11-20条最新记录。

考虑到插入表中的数据,我们如何在Click House中做到这一点。

SearchResponse response = elasticClient.prepareSearch(index)
    .setTypes(documentType)
    .setQuery(boolQueryBuilder)
    .setSize(0)
    .addAggregation(AggregationBuilders.terms("unique_uids")
    .field(Constants.UID_NAME)
    .includeExclude(new IncludeExclude(partition,numPartitions))
    .size(Integer.MAX_VALUE))
    .get();

2 个答案:

答案 0 :(得分:1)

根据规范,限制和偏移的通用sql语法将起作用:

LIMIT n, m允许您在跳过前n行之后从结果中选择前m行。还支持LIMIT m OFFSET n语法。

https://clickhouse.yandex/docs/en/query_language/select/#limit-clause

答案 1 :(得分:0)

我认为您只想选择结果集的一个子集?我还不需要这样做,但是似乎您可以指定希望CH返回(https://clickhouse-docs.readthedocs.io/en/latest/formats/index.html)中的数据并从那里返回的格式。例如,选择^^文档中所示的JSON格式之一,然后从JSON响应中获取适合您情况的结果子集。