

Azure CosmosDB 通过REST API对数据访问进行分页,azure cosmos数据库的使用场景Azure CosmosDB通过REST API进行页面数据访问。昨天研究了一个CosmosDB分页的问题。我们知道,在访问CosmosDB时,CosmosDB上所有操作的开销都会用Azure CosmosDB......
昨天研究了一个CosmosDB分页的问题。
我们知道,在访问CosmosDB时,CosmosDB上所有操作的开销都会用Azure CosmosDB的请求单元(RU)来表示。读取1kb项目的成本是1个请求单元(RU)
假设我们做一个查询,如果结果多,数据量大,会造成大量RU消耗,当然成本会很高。
我们可以通过设置:xmsmaxitemcount来设置访问返回的数据量。
这里作者主要用邮差来论证。
1.我们选择按时间范围搜索。
2.在页眉的设置中
xmsdocument dbqueryenableclosspartition,意思是跨分区键查询。
Xmsmaxitemcount,表示返回的数据量为10条。如果我们在请求中没有指定xmsmaxitemcount,默认情况下会返回前100条数据。
如果返回的数据少于100条,则返回所有数据。
3.我们可以看到查询的结果,总共有10项。
4.注意,在上面返回的结果中,有一个xmscontinuation需要注意。
在上面的请求中,如果返回了100条数据,但我们只请求了10条数据,我们将请求额外的数据,并需要在下一个请求中取值xmscontinuation。
5.好了,到目前为止,我们已经取出了前10条数据,CosmosDB服务器告诉我xmscontinuation。
当我们请求第11条到第20条的数据时(即设置xmsmaxitemcount为10),我们需要在http头中指定xmscontinuation。
类似地,如果我们请求第1130条的数据,将xmsmaxitemcount设置为20。
如下图:
6.请求将返回第11条第20条的数据,如下图所示:
这样不仅可以一次请求过多的数据,造成过多的RU消耗,还可以实现分页功能。
特别声明:以上文章内容仅代表作者本人观点,不代表ESG跨境电商观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与ESG跨境电商联系。
二维码加载中...
使用微信扫一扫登录
使用账号密码登录
平台顾问
微信扫一扫
马上联系在线顾问
小程序
ESG跨境小程序
手机入驻更便捷
返回顶部