【问题标题】:Timestream pagination not working on nodejs时间流分页不适用于nodejs
【发布时间】:2021-09-28 19:13:50
【问题描述】:

我在从 NodeJS 环境中查询 Timestream DB 时遇到了一些问题。我收到一个空数组来响应所有响应较大的查询当我使用控制台时,完全相同的查询正在工作。所以我确信查询语法和格式是正确的。文档说当响应大于 1 MB 时使用分页。所以我应该收到带有 nextPageToken 的分页响应,但我得到的是 []。

我注意到 MaxRows 参数不起作用的其他事情。所以有一个查询返回 84 行。当我通过 MaxRows = 83 或小于此值时,我收到空数组作为响应,当我通过 MaxRows = 84 或更多时,我收到实际响应。

根据这些观察,我认为分页不起作用。关于如何解决这个问题的任何想法?

【问题讨论】:

  • 能否请您添加一些您正在使用的代码示例,以便我们查看 api 是否使用正确?

标签: javascript node.js amazon-web-services pagination amazon-timestream


【解决方案1】:

似乎任何导致分页的查询都会在初始响应中返回一组空的结果(行)。要获取第一页结果,请通过第一个查询响应中的 NextToken 字符串进行后续查询。然后同样对于您的第二页结果,通过第二个查询响应中的 NextToken 字符串进行后续查询。

这看起来像下面这样:

const client = new TimestreamQueryClient(...);
const queryString = 'select * from "db"."table"';
const result = await client.send(
    new TimestreamQueryCommand({
        QueryString: queryString,
    })
);
// result.Rows is an empty array

const firstPage = await client.send(
    new TimestreamQueryCommand({
        QueryString: queryString,
        NextToken: result.NextToken,
    })
);
// firstPage.Rows contains the first page of results

const secondPage = await client.send(
    new TimestreamQueryCommand({
        QueryString: queryString,
        NextToken: firstPage.NextToken,
    })
);
// secondPage.Rows contains the second page of results

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-06
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    相关资源
    最近更新 更多