Az Azure Cosmos DB ismertetése

Befejeződött

A fejlesztői csapat tapasztalatokkal rendelkezik a nem kapcsolódó adattárak használata során. Ezzel a felhasználói felülettel szeretné kibővíteni a natív felhőbeli megoldás funkcióit az intelligens berendezések által létrehozott IoT-telemetriai adatok feldolgozására és tárolására. Az Azure által felügyelt NoSQL-ajánlatok felfedezése után úgy döntött, hogy az Azure Cosmos DB-t használja. Az alábbi információk segíthetnek annak ellenőrzésében, hogy alkalmas-e állandó adattárként a telemetriai adatokhoz.

Mi az a Cosmos DB?

Az Azure Cosmos DB egy teljes mértékben felügyelt, natív felhőbeli NoSQL-adatbázis. Ez az Azure egyik alapvető szolgáltatása, ami azt jelenti, hogy minden Azure-régióban elérhető.

Felügyelt szolgáltatásként az Azure Cosmos DB kiküszöböli a legtöbb hagyományos adatbázis-felügyeleti feladatot, például a mögöttes adatbázismotor frissítését vagy javítását. Automatikus és azonnali skálázhatóságot biztosít, a szolgáltatásszint-szerződés (SLA) által támogatott garanciákkal a teljesítményre és a válaszképességre vonatkozóan. Emellett rugalmassági funkciókat is biztosít, amelyek megkülönböztetik a relációs adatbázisoktól. Ezek a funkciók közé tartoznak a többrégiós írású, globálisan elosztott replikák, valamint öt különböző konzisztenciamodell implementálása, az erőstől a véglegesig.

Az Azure Cosmos DB egy másik egyedi jellemzője, hogy több adatbázis API-t támogat. Az Azure Cosmos DB kiépítésekor a natív Core (NoSQL) API, a MongoDB API, a Cassandra API, a Gremlin API és a Table API közül választhatja ki a kívánt fejlesztési platformot. Az Azure Cosmos DB for NoSQL API-val rugalmasan választhatja ki az előnyben részesített fejlesztési platformot, például a .NET SDK-t, a Java SDK-t, a Node.js vagy a Pythont.

Milyen előnyei vannak a Cosmos DB-nek a relációs adatbázisokkal szemben?

A relációs adatbázisrendszerek egyik gyakori jellemzője a zárolás használata, amely garantálja tranzakciós viselkedésüket. Ezek a garanciák biztosítják az egyes adatbázisok erős adatkonzisztenciáját. Bár az ilyen konzisztencia számos esetben kívánatos, negatív hatással van az egyidejűségre, a késésre és a rendelkezésre állásra. Az adatbázisok több szegmensre való felosztásával enyhíthetőek ezek a negatív következmények, de ez a megközelítés bonyolult a megvalósításhoz és a karbantartáshoz.

Az Azure Cosmos DB ezeket a hátrányokat a különböző konzisztenciamodellek, a beépített replikáció és a többrégiós írások különböző konfigurálható ütközésfeloldási mechanizmussal való támogatásának kombinációjával kezeli. Ez a támogatás jelentős teljesítményt és rugalmassági előnyöket biztosít olyan helyzetekben, ahol az erős konzisztencia nem követelmény. A Cosmos DB ugyanakkor támogatja a kiszolgálóoldali tranzakciókat is, ha ilyen konzisztenciára van szükség.

Mi a Cosmos DB-erőforrásmodell?

Az Azure Cosmos DB implementálásához először létre kell hoznia egy Azure Cosmos DB-fiókot az Azure-előfizetésében. A fiók a terjesztés és a magas rendelkezésre állás mértékegysége. Lehetősége van arra, hogy konfiguráljon egy fiókot, hogy több régióban replikáljon, és mindegyik replika írható legyen. A fiók alapértelmezett konzisztenciaszintjének konzisztenciaszintje is konfigurálható.

Az SQL API, a MongoDB API vagy a Gremlin API használatakor egy fiók tartalmazhat egy vagy több adatbázist, amelyek mindegyike egy vagy több tárolót üzemeltet. A tároló a méretezhetőség egysége, amely lehetővé teszi, hogy számítási és tárolási erőforrásokat jelöljön ki a tartalom feldolgozásához. Ez a tartalom, ha van SQL API vagy API a MongoDB-hez, a JSON-formátumú dokumentumok( más néven elemek) formátumát veszi fel, konkrét sémamegkötések nélkül. Alapértelmezés szerint az Azure Cosmos DB automatikusan indexeli a tároló összes elemét explicit index- vagy sémakezelés nélkül, de lehetővé teszi az indexelési viselkedés testreszabását.

Az adatbázison vagy az egyes gyűjteményeken belüli adatok feldolgozásához rendelkezésre álló erőforrások száma az elérhető kérelemegységek (KÉRELEM- és kérelemegységek) számától függ. A kérelemegységek száma a megadott adatbázis- vagy tárolókonfiguráción alapul. A Cosmos DB három módot kínál, amelyek a beállításoktól függően meghatározzák az ru-foglalást.

  • Kiépített átviteli mód. Ebben a módban meghatározott számú kérelemegységet jelöl ki a várt használati mintáknak megfelelően. Ez a megközelítés a lehető legérthetőbb képet nyújt az eredményként kapott teljesítményről és költségekről.
  • Automatikus méretezési mód. Ebben a módban előre ki kell helyeznie a szükségesnek ítélt kérelemegységek számát az alapkonfiguráció követelményeinek teljesítéséhez, de ha nagyobb az adathozzáférés iránti igény, engedélyezze az automatikus növekedést. Ez a mód leginkább a kritikus fontosságú, változó vagy kiszámíthatatlan használati mintákkal rendelkező számítási feladatokhoz alkalmas.
  • Kiszolgáló nélküli mód. Ebben a módban nem kell előre áthelyeznie a kérelemegységeket. Ehelyett az Azure Cosmos DB automatikus skálázási képességeire támaszkodva növelheti vagy csökkentheti a feldolgozási erőforrások mennyiségét. Ez a mód költség szempontjából előnyös lehet, ha a számítási feladatok képesek elviselni az adatbázis inaktivitási időszakait követő átmeneti késést.

Mik a Cosmos DB előnyei és használati esetei az Azure IoT-forgatókönyvekben?

Az Azure Cosmos DB számos olyan képességet kínál, amely alkalmassá teszi az IoT-forgatókönyvekhez, többek között az alábbiakra:

  • Particionálás. Az Azure Cosmos DB automatikusan particionálja a tárolókat a megadott logikai partíciókulcs használatával. A particionálás az Azure Cosmos DB skálázhatóságának és rugalmasságának alapvető mechanizmusa. A partíciókulcs kiválasztásával olyan IoT-forgatókönyveket alkalmazhat, amelyek nagy mennyiségű eszköz- és telemetriai adat tárolását és feldolgozását igénylik.

    Feljegyzés

    A logikai partíciók mérete nem haladhatja meg a 20 GB-ot.

  • Élettartam (TTL). A TTL használatával az Azure Cosmos DB automatikusan törölheti az elemeket egy ön által megadott időszak után. Ez az automatizálás leegyszerűsíti az adatéletciklus-kezelést, és csökkenti a költségeket, mivel a TTL-alapú törlések nem számítanak bele a kérelemegység-használatba.

  • Változáscsatorna. Az Azure Cosmos DB változáscsatorna használatával automatikusan elindít egy műveletet a gyűjteményelemek módosításait követően. Ez az automatikus eseményindító leegyszerűsíti a közös IoT-tervezési minta implementálását, amely adatmódosításokra támaszkodik a megfelelő művelet aktiválásához.

  • Szolgáltatásiszint-szerződések (SLA-k) a teljesítmény és a rugalmasság érdekében. A nagy mennyiségű streamelési adatot tartalmazó IoT-forgatókönyvekben az ügyfelek kevesebb mint 10 ms késésre számíthatnak az olvasások és írások 99. százalékában, és 99,999%-os rendelkezésre állással többrégiós írás esetén.

  • Séma nélküli adatbázisok. Az Azure Cosmos DB különböző típusú telemetriai adatok tárolását teszi lehetővé, amelyeket különböző eszközmodellek hoznak létre ugyanabban a gyűjteményben, a sémaalapú korlátozások kiküszöbölésével.

  • Automatikus indexelés. Az Azure Cosmos DB indexelési támogatása hozzájárul a gyors és rugalmas kereséshez a regisztrált eszközök készleteit és telemetriáit tartalmazó nagy mennyiségű adat között.

Az Azure Cosmos DB két elsődleges IoT-használati esetet tartalmaz:

  • Az eszköz telemetriáját tárolja, amely megkönnyíti a telemetriai adatok gyors elérését vizualizációhoz, utófeldolgozáshoz és elemzéshez.
  • Egy eszközkatalógust tárol, amely megfelel az IoT-eszközök, entitások és topológiájuk modellezésének, és minden eszközt egy elem jelöl.