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,意思是跨分區(qū)鍵查詢。
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跨境電商觀點或立場。如有關于作品內容、版權或其它問題請于作品發(fā)表后的30日內與ESG跨境電商聯系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部