Programmēšana

Kā maksimāli izmantot Azure Cosmos DB bezmaksas līmeni

Azure’s Cosmos DB ir viena no tās labākajām funkcijām. Daudzmodeli izplatīta datu bāze, kas dod jums pamatu patiesi mākoņdatošanas lietojumprogrammu izveidei, izmantojot virkni konsekvences modeļu, kurus var pielāgot lietojumprogrammas darbībai. Bet sākt nav viegli, un slikti konfigurēta vai izstrādāta lietojumprogramma var ātri sadārdzināties.

Ir patīkami redzēt, ka Cosmos DB tagad ir pieejams bezmaksas līmenis, kas var palīdzēt sākt lietotņu izvietošanu ārpus ierobežotas izstrādes vides. Jaunais līmenis nav liels: tas ir balstīts uz minimālo Cosmos DB konfigurāciju, un piedāvā 400 RU / s (pieprasījuma vienības sekundē) un 5 GB krātuvi ar 25 konteineriem koplietojamā caurlaides datu bāzē. Tas ir vairāk nekā pietiekami mazai lietojumprogrammai, kas, piemēram, piedāvā vairāk lasījumu nekā raksta un nav atkarīga no spēcīgas konsekvences modeļiem.

Jums jāapzinās, ka, lai arī Cosmos DB ir daudzreģionu, bezmaksas līmenī varat palaist tikai vienu 400 RU / s datu bāzi. Praksē tas ierobežo jūs tikai ar vienu reģionu, jo katram papildu reģionam būs nepieciešams savs 400 RU / s gadījums, un par šiem reģioniem tiks iekasēta standarta likme par šiem reģioniem stundā.

Darba sākšana ar bezmaksas Cosmos DB

Lai izmantotu bezmaksas līmeni, jums būs jāizveido jauns konts; tā nav pieejama kā norēķinu iespēja esošajām lietojumprogrammām. Bezmaksas līmeņa 400 RU / s ir mazākā summa, ko var nodrošināt Cosmos DB datu bāzē. Tas mēnesī dod aptuveni 1 miljardu lasījumu, ar ko vajadzētu pietikt, lai jūsu lietojumprogramma nonāktu laukā vai ļautu izvietot un vadīt iekšēju izplatītu datu bāzi kā daļu no izmēģinājuma projekta. Kad esat nonācis līdz brīvās DPU / s kvotas robežai, varat pievienot vairāk jaudas blokos pa 100 RU / s, par kuriem jāmaksā par stundas likmi.

Ir vērts saprast, kas ir Cosmos datu bāze RU. DPU ir pieprasījumu vienība, un rēķinā iekasētais DPU ir jūsu datu bāzes nodrošināto caurlaides rādītājs, kas aptver visas tā darbības. Tas ietver lasīšanu, rakstīšanu, atjaunināšanu, dzēšanu un daudz ko citu. Korporācija Microsoft ierosina, ka 1 RU / s ir līdzvērtīgs vienam konsekventam (vislēnākais un vismazāk apstrādes intensitātes konsekvences līmenis, kas pieejams Cosmos DB) sekundē 1 KB lieluma vienumam. Lai rakstītu vienu un to pašu 1 KB vienību sekundē, ir 5 RU / s. Jo sarežģītāka ir darbība, jo vairāk DPU patērē.

Izpratne par pieprasījuma vienību patēriņu

Ir grūti precīzi pateikt, cik RU / s lietos lietojumprogramma. Tomēr jūs varat domāt par Cosmos DB ierobežojumiem, kas var ietekmēt DPU, ko izmanto jūsu datu bāze. Pirmkārt, jums jāņem vērā jūsu priekšmetu lielums. Jo lielāks ir vienums, jo vairāk DPU tas izmanto lasīšanai vai rakstīšanai. Tāpat indeksēšana patērē RU / s, un, ja izmantojat noklusējuma indeksēšanas modeli, vienumu rakstīšanai nepieciešamie resursi palielināsies, kad pievienosiet vairāk datu bāzei. Tad ir jūsu izvēlētie konsistences modeļi, gan spēcīgam, gan ierobežotam stīvumam lasīšanai nepieciešams aptuveni divreiz vairāk RU / s nekā citiem Cosmos DB mazāk stingriem modeļiem.

Tā kā bezmaksas līmenī ir pieejams ierobežots skaits DPU, ieteicams apiet šos ierobežojumus, lai samazinātu patēriņu līdz minimumam. Viena no iespējām ir izslēgt visu datu bāzes indeksēšanu, lai gan praksē jūs varētu izvēlēties ierobežot indeksēšanu ar noteiktām īpašībām katrā saglabātajā JSON dokumentā. Tajā pašā laikā jums jāapsver, kā darbojas jūsu lietojumprogramma un vai labāk ir izmantot kaut ko līdzīgu sesijas konsekvencei, lai uzlabotu lietotāju priekšstatus par veiktspēju, vienlaikus samazinot izmantotos DPU.

Tā kā DPU ir balstīta uz darbību, varat izmantot vaicājumu noformējumu, lai samazinātu patēriņu. Tas var nozīmēt ierobežot rezultātu skaitu katrā vaicājumā, kontrolēt uzglabāto datu daudzumu vai izmantot pēc iespējas mazāk lietotāja definētas funkcijas, saglabātās procedūras un aktivizētājus.

Datu bāzes iestatīšana ir pietiekami vienkārša. Azure portālā izveidojiet jaunu Cosmos DB kontu un no Azure Data Explorer izveidojiet jaunu datu bāzi. Sāciet ar ID piešķiršanu un pēc tam nodrošiniet tā caurlaidspēju. Iestatiet to uz 400 RU / s. Lielākas summas parādīs izmaksu aprēķinus, taču, izveidojot bezmaksas instanci, tas nav jāizmēģina. Jūs neaprobežojaties tikai ar portālu; jūs varat izmantot Azure CLI, PowerShell vai pat programmatiski no Cosmos DB SDK iekšpuses.

Lietotņu veidošana uz Cosmos DB bezmaksas līmeņa

Programmā Cosmos DB datu bāze ir konteineru kopa, kas tiek izmantota, lai apstrādātu sadalīšanu Azure reģionā un izplatīšanu reģionos, kuros izmantojat savu datu bāzi. Katru datu bāzi var konfigurēt kā konkrētu modeli: NoSQL (gan MongoDB, gan Cassandra), SQL, Gremlin un tabulas. Lielākā daļa lietotņu darbosies ar to kā NoSQL dokumentu datu bāzi, kurā glabājas JSON dati.

Kad esat izveidojis datu bāzi un izvēlējies modeli, varat domāt par Cosmos DB konteineru kā par datu bāzes mērogošanu. Ārpus brīvā līmeņa jūs varat iestatīt caurlaidi DPU, pamatojoties uz konteineru; bezmaksas līmenī jūs koplietojat šo caurlaidi visos konteineros jūsu datu bāzē, tāpēc nevarat paredzēt jebkura konkrēta konteinera caurlaidi. Apmaksātajiem gadījumiem ir saistīta SLA, tāpēc tie ļauj iestatīt caurlaidspēju katram konteineram.

Šāds darbs ar konteineriem ir līdzvērtīgs klastera izmantošanai NoSQL datu bāzē un labi darbojas šāda veida slodzei. Izmantojot vienu un to pašu nodalījuma atslēgu visos konteineros, Cosmos DB automātiski dalīs caurlaides spēju. Jūs varat izmantot šo pieeju ar 25 bezmaksas līmeņa konteineriem, lai samazinātu vājās vietas jūsu lietojumprogrammas lietotājiem. Ja jūs to uztverat kā sadalītu, kopu veidotu NoSQL datu bāzi, jums to vajadzētu salīdzinoši viegli iekļaut savās lietojumprogrammās, izmantojot to, lai mitinātu norādes uz citu saturu, nevis pašu saturu.

Darbs ar bezmaksas pakalpojumu piedāvājumu var būt grūts, taču, ja veicat saprātīgus piesardzības pasākumus, Cosmos DB jauno līmeni vajadzētu būt iespējai izmantot kā daļu no lietojumprogrammas aizmugures. Jums var nākties upurēt dažas pakalpojuma mērogojamības funkcijas, taču tam nevajadzētu būtiski ietekmēt lietojumprogrammas, ja pieņemat rūpīgus lēmumus dizaina laikā.

Ir svarīgi domāt par to, kā izmantot tādas izplatītas datubāzes kā Cosmos DB priekšrocības, nevis vienkārši pārnest tajā esošās darba slodzes - maz ticams, ka tās veiks labu spēli. Tā vietā domājiet par to kā par savu iespēju izveidot patiesi mākoņdatotu, izplatītu lietojumprogrammu. Šajā gadījumā 400 RU / s ir vairāk nekā pietiekami, lai sāktu jaunu lietojumprogrammu un panāktu, ka tā darbojas ar saprātīgu lietotāju skaitu.