javascript - 时间流分页不适用于nodejs
问题描述
从我的 NodeJS 环境中查询 Timestream DB 时,我遇到了一些问题。我收到一个空数组来响应所有响应较大的查询当我使用控制台时,完全相同的查询正在工作。所以我确信查询语法和格式是正确的。文档说当响应大于 1 MB 时使用分页。所以我应该收到带有 nextPageToken 的分页响应,但我得到的是 []。
我注意到 MaxRows 参数不起作用的另一件事。所以有一个查询返回 84 行。当我通过 MaxRows = 83 或小于该值的任何值时,我收到空数组作为响应,当我通过 MaxRows = 84 或更多值时,我收到实际响应。
基于这些观察,我认为分页不起作用。关于如何解决这个问题的任何想法?
解决方案
似乎任何导致分页的查询都会在初始响应中返回一组空的结果(行)。要获取第一页结果,请通过第一个查询响应中的 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
推荐阅读
- dart - 从选项卡 0 导航到选项卡 2 时,Flutter DefaultTabController 在动画期间意外初始化小部件
- cmd - 如何从 Windows 命令行将倍频程图打印到 .pdf 文件?
- c# - 这个while循环是什么意思与或运算符和条件
- android - 缩放视图导致错误(未缩放)触摸位置
- java - 如何在 web 应用程序中初始化 bean 之前从 zookeeper 将属性加载到环境中
- pandas - 在数据框中添加两个元素(基于索引)
- r - 试图一次对很多对象做同样的事情
- c++ - 使用 push_back() 和 pop_back 操作的向量分配如何给出垃圾值
- telegram - 使用 API 向 Telegram 联系人或联系人列表发送消息
- redirect - Traefik - 重定向到 HTTPS 到内部资源期间的超时