![](https://img.eservicesgroup.com.cn/images/bussiness/platform/icon_platform_value.png)
![](https://img.eservicesgroup.com.cn/images/bussiness/platform/icon_platform_value_active.png)
Azure CosmosDB 通過REST API對數(shù)據(jù)訪問進行分頁,azure cosmos數(shù)據(jù)庫的使用場景Azure CosmosDB通過REST API進行頁面數(shù)據(jù)訪問。昨天研究了一個CosmosDB分頁的問題。我們知道,在訪問CosmosDB時,CosmosDB上所有操作的開銷都會用Azure CosmosDB......
昨天研究了一個CosmosDB分頁的問題。
我們知道,在訪問CosmosDB時,CosmosDB上所有操作的開銷都會用Azure CosmosDB的請求單元(RU)來表示。讀取1kb項目的成本是1個請求單元(RU)
假設我們做一個查詢,如果結(jié)果多,數(shù)據(jù)量大,會造成大量RU消耗,當然成本會很高。
我們可以通過設置:xmsmaxitemcount來設置訪問返回的數(shù)據(jù)量。
這里作者主要用郵差來論證。
1.我們選擇按時間范圍搜索。
2.在頁眉的設置中
xmsdocument dbqueryenableclosspartition,意思是跨分區(qū)鍵查詢。
Xmsmaxitemcount,表示返回的數(shù)據(jù)量為10條。如果我們在請求中沒有指定xmsmaxitemcount,默認情況下會返回前100條數(shù)據(jù)。
如果返回的數(shù)據(jù)少于100條,則返回所有數(shù)據(jù)。
3.我們可以看到查詢的結(jié)果,總共有10項。
4.注意,在上面返回的結(jié)果中,有一個xmscontinuation需要注意。
在上面的請求中,如果返回了100條數(shù)據(jù),但我們只請求了10條數(shù)據(jù),我們將請求額外的數(shù)據(jù),并需要在下一個請求中取值xmscontinuation。
5.好了,到目前為止,我們已經(jīng)取出了前10條數(shù)據(jù),CosmosDB服務器告訴我xmscontinuation。
當我們請求第11條到第20條的數(shù)據(jù)時(即設置xmsmaxitemcount為10),我們需要在http頭中指定xmscontinuation。
類似地,如果我們請求第1130條的數(shù)據(jù),將xmsmaxitemcount設置為20。
如下圖:
6.請求將返回第11條第20條的數(shù)據(jù),如下圖所示:
這樣不僅可以一次請求過多的數(shù)據(jù),造成過多的RU消耗,還可以實現(xiàn)分頁功能。
特別聲明:以上文章內(nèi)容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關于作品內(nèi)容、版權或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
平臺顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部