Azure CosmosDB 通過(guò)REST API對(duì)數(shù)據(jù)訪問(wèn)進(jìn)行分頁(yè)

來(lái)源: 博客園
作者:Lei Zhang
時(shí)間:2020-09-08
17517
我們知道,在訪問(wèn)CosmosDB的時(shí)候,所有對(duì)CosmosDB操作的成本,將由Azure CosmosDB的Request Unit(RU)來(lái)表示。讀取1-KB項(xiàng)的成本為1個(gè)請(qǐng)求單位(RU)假設(shè)我們進(jìn)行一個(gè)查詢,如果查詢的結(jié)果很多,數(shù)據(jù)量很大的話,則會(huì)造成RU消耗很多,理所當(dāng)然的成本也會(huì)很高。我們可以在訪問(wèn)的時(shí)候,通過(guò)設(shè)置:x-ms-max-item-count,來(lái)設(shè)置訪問(wèn)返回的數(shù)據(jù)量。

昨天研究了一個(gè)CosmosDB分頁(yè)的問(wèn)題。

我們知道,在訪問(wèn)CosmosDB的時(shí)候,所有對(duì)CosmosDB操作的成本,將由Azure CosmosDB的Request Unit(RU)來(lái)表示。讀取1-KB項(xiàng)的成本為1個(gè)請(qǐng)求單位(RU)

假設(shè)我們進(jìn)行一個(gè)查詢,如果查詢的結(jié)果很多,數(shù)據(jù)量很大的話,則會(huì)造成RU消耗很多,理所當(dāng)然的成本也會(huì)很高。

我們可以在訪問(wèn)的時(shí)候,通過(guò)設(shè)置:x-ms-max-item-count,來(lái)設(shè)置訪問(wèn)返回的數(shù)據(jù)量。

在這里,筆者主要使用Postman來(lái)進(jìn)行演示。

1.我們選擇按照時(shí)間范圍查找

ia_2100000003.png

2.在Header的設(shè)置里

x-ms-documentdb-query-enablecrosspartition,表示跨分區(qū)鍵查詢

x-ms-max-item-count,表示返回的數(shù)據(jù)量為10條。如果我們?cè)谡?qǐng)求中沒(méi)有指定x-ms-max-item-count,則默認(rèn)返回前100條數(shù)據(jù)。

如果返回的數(shù)據(jù)少于100條,則返回所有數(shù)據(jù)。

ia_2100000004.png

3.我們可以看到查詢的結(jié)果,一共有10條

ia_2100000005.png

4.注意,在上面的返回結(jié)果中,有一個(gè)x-ms-continuation需要注意。

ia_2100000006.png

在上面的請(qǐng)求中,如果返回的數(shù)據(jù)有100條,但是我們只請(qǐng)求了10條數(shù)據(jù),則請(qǐng)求額外的數(shù)據(jù),需要在下一次請(qǐng)求中帶x-ms-continuation這個(gè)值

5.好了,到目前為止,我們已經(jīng)取出前10條數(shù)據(jù),且CosmosDB服務(wù)器告訴我x-ms-continuation。

我們請(qǐng)求第11條-第20條數(shù)據(jù)(即設(shè)置x-ms-max-item-count為10),則需要在http header里面,指定x-ms-continuation。

同樣的,我們請(qǐng)求第11-30條數(shù)據(jù),則設(shè)置x-ms-max-item-count為20

如下圖:

ia_2100000007.png

6.該請(qǐng)求會(huì)返回第11條-第20條數(shù)據(jù),如下圖:

ia_2100000008.png

通過(guò)這種方式,既可以降低一次請(qǐng)求過(guò)多的數(shù)據(jù),造成RU消耗過(guò)大,而且還可以實(shí)現(xiàn)分頁(yè)的功能。

立即登錄,閱讀全文
版權(quán)說(shuō)明:
本文內(nèi)容來(lái)自于博客園,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
隨著人工智能技術(shù)持續(xù)重塑企業(yè)運(yùn)營(yíng)方式,企業(yè)需要能夠處理海量數(shù)據(jù)的系統(tǒng),以支持實(shí)時(shí)洞察,同時(shí)幫助他們應(yīng)對(duì)跨IT和OT環(huán)境(包括云端、邊緣和本地)中運(yùn)營(yíng)、應(yīng)用、數(shù)據(jù)和基礎(chǔ)設(shè)施的協(xié)作難題。
Azure
微軟云
云服務(wù)
2024-12-172024-12-17
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來(lái)
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來(lái)
.NET 9現(xiàn)已正式發(fā)布,它為.NET平臺(tái)的發(fā)展掀開(kāi)了嶄新的一頁(yè),突破了性能、云原生開(kāi)發(fā)和AI技術(shù)集成的邊界。
Azure
微軟云
云服務(wù)
2024-12-162024-12-16
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
智能Microsoft Copilot副駕駛for Azure網(wǎng)絡(luò)服務(wù)現(xiàn)已推出公共預(yù)覽版。
Azure
微軟云
云服務(wù)
2024-12-102024-12-10
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
一年前,我們正式推出了一款端到端數(shù)據(jù)平臺(tái),旨在幫助組織推動(dòng)人工智能轉(zhuǎn)型,并重新定義數(shù)據(jù)的連接、管理和分析方式。
Azure
微軟云
云服務(wù)
2024-12-092024-12-09
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家