具有限制的数据存储区查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了具有限制的数据存储区查询相关的知识,希望对你有一定的参考价值。
我正在使用RemoteAPI(Java)来浏览大型数据集,~90K实体,并执行一些数据迁移。
int CHUNK_SIZE = 500;
int LIMIT = 900;
QueryResultList<Entity> result = ds.prepare(entityQuery)
.asQueryResultList(
FetchOptions.Builder
.withPrefetchSize(CHUNK_SIZE)
.limit(LIMIT)
.chunkSize(CHUNK_SIZE)
).startCursor(cursor);
随着查询LIMIT
设置为900
theresult.size()
是整个数据集,~90K,而不是900
。如果我尝试较低的LIMIT
,比如300
,结果大小是预期的(300
)。
我在这里错过了什么?从文档中我无法弄清楚为什么它会产生我在这里描述的行为。
答案
我认为你应该在.withLimit(LIMIT)
选项中使用.limit(LIMIT)
而不是.asQueryResultList
所以我会按如下方式重构您的代码:
FetchOptions options = FetchOptions.Builder
.withLimit(LIMIT)
.withPrefetchSize(CHUNK_SIZE)
.chunkSize(CHUNK_SIZE);
QueryResultList<Entity> result = ds.prepare(entityQuery)
.asQueryResultList(options);
然后得到光标
result.getCursor();
以上是关于具有限制的数据存储区查询的主要内容,如果未能解决你的问题,请参考以下文章