首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从大查询中获取并行分页数据

如何从大查询中获取并行分页数据
EN

Stack Overflow用户
提问于 2022-08-17 12:21:05
回答 1查看 105关注 0票数 0

我从bq中获取分页数据,因为数据很大,处理它们需要很长时间。

代码语言:javascript
运行
复制
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

EN

回答 1

Stack Overflow用户

发布于 2022-08-18 15:53:54

每个查询都写入目标表。如果未提供目标表,则BigQuery API将使用对临时匿名表的引用自动填充目标表属性。

有了该表,您可以使用tabledata.list API调用从表中获取数据。在可选参数下,您将看到一个startIndex参数,您可以将其设置为任何您想要的,并且可以在分页脚本中使用它。

您可以使用不同的偏移量来运行并行API调用,这将加快请求的速度。

您可以使用API通过结果将此文档引用到Page。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73388395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档