【问题标题】:BigQuery - How to paginate over resultBigQuery - 如何对结果进行分页
【发布时间】:2019-06-24 23:06:49
【问题描述】:

我有以下问题:

我们有一个表(按时间戳分区)保存来自 IoT 设备的数据(大量数据,新传入数据的预期比率约为每台设备每 30 秒)。

问题是我们将提供查询服务,用户可以在“ts”字段(时间戳)上设置“since”和“until”过滤器,但我想将结果按 10,20 分页。 ..(无论用户设置“pageSize”)。

我该怎么做?因为将整个结果保存在临时表中(并使用 Tabledata.list API)不是一个选项,因为我将为每个不同的请求都有一个临时表(在过滤器方面不同......)

提前致谢!!!

【问题讨论】:

    标签: node.js google-bigquery google-api-nodejs-client


    【解决方案1】:

    对于 Nodejs,该库使用先前请求中的 token 自动分页,如此处所述 https://cloud.google.com/bigquery/docs/paging-results#bigquery-paging-nodejs

    另一方面,如果您在此处阅读实现代码,则可以选择手动分页:https://github.com/googleapis/nodejs-bigquery/blob/master/src/index.ts

    【讨论】:

    • 嗨,我看到了第一个链接,我放弃了,因为我无法过滤数据,无法通过查询。我只会拉所有行,除非我遗漏了什么......关于另一个链接,是的,我阅读了代码并且我正在执行以下操作,但它一直以相同的 10 行回复: const queryOptions: Query = { maxResults : 10, pageToken, query } const queryOptions2: QueryOptions = { autoPaginate: true, maxResults: 10, } return await bigquery.query(queryOptions, queryOptions2)
    猜你喜欢
    • 1970-01-01
    • 2021-05-22
    • 2015-02-16
    • 2019-12-23
    • 2014-01-23
    • 2016-03-21
    • 2018-04-03
    • 2023-03-10
    相关资源
    最近更新 更多