我从bq中获取分页数据,因为数据很大,处理它们需要很长时间。
while (results.hasNextPage()) {
results = results.getNextPage();
count += results.getValues().spliterator().getExactSizeIfKnown();
results
.getValues()
.forEach(row ->
{
//Some operations.
}
);
logger.info("Grouping completed in iteration {}. Progress: {} / {}", i, count, results.getTotalRows());
i++;
}
我用visualVm来检查我的程序,我意识到大部分时间都花在了results.getNextPage
行上,后者正在获取下一页数据。有什么办法让它平行吗?我的意思是在不同的线程中获取每一批数据(在我的例子中是20K )。我使用java客户端com.google.cloud.bigquery
。
https://stackoverflow.com/questions/73388395
复制相似问题