Melyik adatbázis szolgáltatás megfelelő számodra az Azure-ben?

Sétáló Patrik

Systems Engineer, Microsoft

patrik.setalo@alef.com

Alkalmazásainkhoz régóta használunk valamilyen adatbázis szolgáltatást, amelyben tároljuk az adatokat. Ezek lehetnek relációs vagy nem relációs adatbázisok, az adatokat tárolhatjuk benne struktúrált vagy nem struktúrált módon, futhatnak on-premise környezetben vagy publikus felhőben, lehetnek nyílt forráskódúak vagy licensz kötelesek. És milyen lehetőségeink vannak, ha adatbázis szolgáltatások után nézünk az Azure-ben?

Mielőtt megnézzük, hogy milyen adatbázis szolgáltatások elérhetők az Azure-ben, először meg kell értenünk mi a különbség a különböző adatbázis típusok között.

Relációs adatbázisok

Kezdjük az RDBMS-mel (Relational Database Management Systems). Ezek az adatok tárolásának tradícionális modellje, az adatokat kétdimenziós táblázatokba rendezi, amelyek sorokból és oszlopokból állnak, amelyekben az adatok tárolódnak.

Az RDBMS adatbázisok séma alapú modelt követnek, ahol a séma adatstruktúráját még az előtt kell definiálni, mielőtt bármilyen adat belekerül. Minden későbbi R/W műveletnek a meghatározott sémát kell használnia.

Azok a szolgáltatások, amik ezt a modellt használják az adatok lekérdezéséhez és kezeléséhez az SQL egy verzióját használják. Például.: Microsoft SQL, Oracle SQL vagy PostgreSQL.

Az RDBMS hasznos, ha szükséges az adatok konzisztenciája, a hátránya, hogy nehezen tud horizontálisan skálázódni.

Az Azure-ben a következő RDBMS szolgáltatások elérhetők:

Azure SQL Database – ez egy teljes értékű hosztolt SQL szerver verzió.

Azure Database for MySQL – nyílt forráskódú relációs adatbázis menedzsment rendszer. MySQL a sztenderd SQL parancsokat használja, mint például INSERT, DROP, ADD vagy UPDATE stb…

Azure Database for PostgreSQL – magasan skálázható RDBMS rendszer, mellette cross-platform szolgáltatós tehát tud futni Linux-on, Windows-on vagy akár macOS-en.

Azure Database for MariaDB – nagy teljesítményű nyílt forráskódú relációs adatbázis, ami MySQL alapokra épül. Támogatja a titkosított táblákat, LDAP autentikációt és a Kerberost.

RDBMS fő felhasználási területei:

  • készletkezelés
  • megrendelés menedzsment
  • reporting adatbázis
  • könyvelés

Nem relációs adatbázisok

A relációs adatbázisokkal szemben a nem relációs adatbázisok nem használják a hagyományos adatbázis rendszerben megtalálható sorok és oszlopok táblázatos sémáját. Ehelyett a nem relációs adatbázisok olyan tárhely modellt (storage model) használnak, amelyet a tárolt adattípus speciális követelményeihez optimalizáltak. Például: az adatok tárolhatók egyszerű key/value párokként, JSON dokumentumként vagy gráfokként.

Az adatok tárolásának különböző módjai miatt rengeteg különböző típusú nem-relációs adatbázis létezik.

Dokumentum adattárolók

A dokumentum adattároló egy dokumentumnak nevezett entitásban lévő, megnevezett karakterláncmezők és objektumadat-értékek halmazát kezeli. Ezeket jellemzően JSON formátumban tárolják, de tárolhatók XML, YAML, JSON, BSON vagy akár egyszerű TXT formában is. Ezekben a dokumentumokban található mezők láthatóvá válnak a tároláskezelő rendszer számára, lehetővé téve az alkalmazás számára, hogy lekérdezze és szűrje az adatokat a mezők értékeinek felhasználásával. Jellemzően egy dokumentum tartalmazza egy entitás teljes adatállományát, és nem szükséges, hogy minden dokumentum azonos szerkezetű legyen. Az alkalmazás a dokumentumokat a dokumentumkulcs segítségével tudja lekérdezni, amely a dokumentum egyedi azonosítója.

Szolgáltatás szempontból ezt az Azure Cosmos DB-vel valósítható meg.

Felhasználási esetek lehetnek például termékkatalógusok, tartalomkezelés vagy készletkezelés.

Oszlopos adattárolók

Az oszlopos vagy oszlopcsaládos adattároló az adatokat oszlopokba és sorokba rendezi, ami nagyon hasonlít a relációs adatbázisokhoz. Míg azonban egy oszlopcsaládos adatbázis az adatokat táblázatos formában, sorokkal és oszlopokkal tárolja, az oszlopok oszlopcsaládok néven ismert csoportokba vannak osztva. Minden oszlopcsalád olyan oszlopok halmazát tartalmazza, amelyek logikailag összefüggnek egymással, és jellemzően egységként kerülnek lekérdezésre vagy kezelésre. Új oszlopok dinamikusan adhatók hozzá, és a sorok üresek is lehetnek.

Amennyiben ilyen adattárolóra van szükségünk, azt Azure Cosmos DB Cassandra API-n keresztül valósíthatjuk meg, ami Apache Cassandra-ra írt alkalmazások tárolására szolgál.

Gyakori felhasználási esetek lehetnek például érzékelőadatok, üzenetküldés, közösségi média és webes analitika stb…

Kulcs/Érték adattárolók

A kulcs/érték tároló minden adatértéket egy egyedi kulcshoz rendel. A legtöbb kulcs/érték tároló csak az egyszerű query, insert és delete műveleteket támogatja. Egy érték (részleges vagy teljes) módosításához az alkalmazásnak felül kell írnia a teljes érték meglévő adatait. A kulcs/érték tárolók jóloptimalizáltak az egyszerű kereséseket végző alkalmazások számára, de kevésbé alkalmasak, ha különböző kulcs/érték tárolókban kell lekérdezni az adatokat. A kulcs/érték tárolók nem optimalizáltak érték szerinti lekérdezésre.

A következő szolgáltatások alkalmasak erre a feladatra: Azure Cosmos DB Table API vagy SQL API, Azure Cache for Redis, Azure Table Storage.

A felhasználási esetek közé tartozik például az adattárolás, a munkamenet-kezelés vagy a termékajánlások és a hirdetések kiszolgálása.

Gráf adatbázisok

A gráf adatbázis 2 féle információt tárol, nodes and edges (csomópontok és élek). Az edge-k a node-ok közötti kapcsolatokat határozzák meg. A node-ok és edge-k rendelkezhetnek olyan tulajdonsággal amelyek információt szolgáltatnak az adott node-ról vagy edge-ről, hasonlóan egy táblázat oszlopaihoz. Az edge-k rendelkezhetnek a kapcsolat jellegét jelző irányokkal is. A gráfadatbázisok hatékonyan tudnak lekérdezéseket végrehajtani a node-ok és edge-k hálózatán és elemezni az entitások közötti kapcsolatokat.

Szolgáltatás oldalról Azure Cosmos DB Gremlin API használható.

Felhasználási esetek lehetnek például szervezeti diagramok, szociális grafikonok vagy csalások felderítése.

Szeretnél többet tudni?

Vedd fel velünk a kapcsolatot az alábbi elérhetőségen:

Sétáló Patrik
Systems Engineer, Microsoft
+36-30/333-1437
Patrik.Setalo@alef.com