Adatmodell Cassandrában Hogyan lehet modellezni az adatokat Cassandra-ban?

Tartalomjegyzék:

Anonim

Bevezetés az adatmodellbe Cassandra-ban

Az Apache Cassandra az egyik legerősebb NoSQL adatbázis. Ez a helyes választás, ha magas rendelkezésre állásra és méretezhetőségre van szükség, anélkül, hogy a teljesítmény kompromisszuma lenne - különösen azoknál az alkalmazásoknál, amelyek nem engedhetik meg maguknak az adatok elvesztését. Ebben a témában megismerjük a Cassandra adatmodelljét.

Gyors tény, hogy a Cassandra mérnökei ma a legjobban fizetett tech szakemberek közé tartoznak. Az olyan cégek, mint a Netflix, az Instagram és az Apple, a Cassandrát használják, hogy magas szintű személyre szabott felhasználói élményt biztosítsanak. A megfelelő teljesítmény eléréséhez gondosan meg kell terveznie az üzleti problémára jellemző sémát. Ebben a cikkben megvizsgáljuk a Cassandra adatmodellt, amely jelentősen különbözik attól, amit az RDBMS-ben látunk.

Cassandra adatmodell szabályok

Egyszerű szavakkal: az Adatmodell az adatbázis logikai struktúrája. Leírja az adatok tárolásának és elérésének módját, valamint a különféle típusú adatok közötti kapcsolatokat.

A megfelelő adatmodell kiválasztása a legnehezebb része lehet egy NoSQL adatbázis, például a Cassandra használatához. Mint korábban említettem, az adatmodellezés a Cassandra-ban különbözik attól, amit egy RDBMS-ben látunk.

A partíciós kulcs és a klaszterkulcs azok a kifejezések, amelyeket mindenkinek, aki a Cassandrával foglalkozik, tisztában kell lennie. Mielőtt belemerülnénk az adatmodellezés alapvető szabályaiba Cassandra-ban, nézzük meg gyorsan, hogy mit jelentenek ezek a kifejezések,

feloszt

A Cassandra egy elosztott adatbázis, amelyben az adatokat particionálják és tárolják a fürt különböző csomópontjai között. Az adatokat egy partíciós kulcs felhasználásával ossza meg - amely lehet egy vagy több adatmező. Ezt a partíciós kulcsot egy olyan hash mechanizmus létrehozására használják, amely az adatokat egyenletesen elosztja az összes csomóponton.

Fürt

A fürt egy csomópontgyűjtemény, amely egyetlen logikai adatbázist képvisel. A fürtkulcs egy vagy több mezőből áll, amelyeket az adatok csoportosításra használnak egy partícióban.

Ebben a táblázatban az éttermekben az adatok partíciókra kerülnek az ország_kód, az állam_név és a városnév alapján, és ezen a partíción belül az adatok csoportosulnak és rendeződnek a nyitó_adatok és az étterem_neve alapján.

Most nézzük meg az adatmodellezés két szabályát, amelyeket szem előtt kell tartani.

  • Az adatok egyenletesen oszlanak el a fürtön
  • Olvassa el a lehető legkevesebb partícióból

Nézzük meg, mit próbálnak közvetíteni ezek a szabályok

  • Tudjuk, hogy mi a klaszter igaz? A fürt több csomópontból áll. Az adatokat ezekre a csomópontokra osztjuk úgy, hogy mindegyik csomópont nagyjából azonos mennyiségű adatot tartalmazzon. Mint tudjuk, az adatok partícióba vannak osztva a csomópont segítségével a partíciós kulcs segítségével (amely az elsődleges kulcs első kulcsa), tehát röviden: „Válasszon egy jó elsődleges kulcsot”.
  • Minden partíció egy másik csomóponton található, tehát az adatok visszakeresésekor ellenőriznie kell, hogy az adatok a lehető legkevesebb partícióból származnak-e. Ha a lekérdezés különféle partícióktól származó adatokat igényel, akkor parancsot adnak külön csomópontoknak, hogy megkapják ezeket az adatokat, amelyek felül lesznek és késést idézhetnek elő.

A hatékony adatmodell kulcsa a két szabály közötti egyensúly.

Kezelje a kapcsolatokat Cassandra-ban

Az egyik dolog, amelyet figyelembe kell venni, az adatmodellezés a Cassandra-ban Query-alapú megközelítéssel történik, ellentétben az RDBMS-sel, ahol először azonosítják az entitásokat, táblázatokat készítenek, majd lekérdezéseket képeznek a JOINS segítségével az adatok visszakereséséhez.

Egyszerűen fogalmazva: nem modellezünk kapcsolatokat vagy tárgyakat, hanem a lekérdezések körül modellezünk.

1. Egy-egy kapcsolat

Fontolja meg egy egyetemen, hogy a hallgató csak egy szemináriumra jelentkezhet. Ez egy-egy kapcsolat. Az 1. számú szabály betartásával gondoljuk a kívánt kérdéseket. Szeretnék keresni azt a szemináriumot, amelyen egy hallgató részt vesz. Ebben az esetben csak egy táblát készítünk. A táblázatnak tartalmaznia kell a hallgató és a szeminárium részleteit.

2. Egy és sok kapcsolat

Ugyanebben az összefüggésben mi lenne, ha az összes szemináriumon részt vevő hallgatót meg akarom keresni. Ahelyett, hogy ugyanazt a táblát használnánk, és minden soron át iterálnánk, hogy megkapjuk a hallgató nevét az adott szemináriumra, elkészíthetek egy másik táblát is, amely az adatokat szeminárium név szerint osztja fel. Tehát amikor a lekérdezést kiadom, akkor csak egy csomópontot ér el, ahelyett, hogy az összes csomópontra megy, hogy megszerezzék a szeminárium nevét.

3. Sok-sok kapcsolat

Most mérlegeljük, hogy egy hallgató számos szemináriumon vehet részt, és egy szemináriumon sok hallgató is részt vehet. Itt sok-sok kapcsolat van. Ebben az esetben kihasználhatja a fenti két táblát olyan kérdések létrehozására, amelyek nélkül szükség lenne összetett lekérdezések létrehozására a Joins segítségével, amit általában az RDBMS-ben tennének.

A Cassandra fontossága

A digitális adatok gyors bővülésével egyre fontosabbá válik egy nagyon skálázható, hibatűrő adatbázis létrehozása. Hadd soroljak fel néhány pontot a Cassandra használatának miért

  • Gyors olvasási műveletek megvilágítása: Megvitatták, hogy az adatok helyes modellezése hogyan képes az olvasási műveleteket hatalmas mértékben optimalizálni.
  • Hibatoleráns: Az adatok replikálódnak a csomópontok között, tehát akkor is, ha egy csomópont leesik, az adatok biztonságosak.
  • Egyéni hangolás: Beállíthatja a Cassandra-t a munkaterhelésének megfelelően. Ha sok adatot ír, például naplózást, akkor finomítani tudja az írás-nehéz rendszerek kezelésére. Számos más hangolási lehetőség is elérhető.
  • Nagy adatmennyiségek kezelése: A klaszter mérete alapján a Cassandra képes kezelni a hatalmas adatmennyiségeket.

Hogyan lehet modellezni az adatokat Cassandra-ban?

Egy jó adatmodellezés követi ezeket a lépéseket

  • Fogalmazza meg az alkalmazás által igényelt lekérdezéseket
  • Táblázatok létrehozása a lekérdezések kielégítésére

Mielőtt ezeket a szabályokat alkalmaznánk, egy dolgot kell szem előtt tartani: „Az olvasási műveletek optimalizálására összpontosítunk még akkor is, ha adatmásolást igényel”. Sok olyan táblánk lehet, amelyek szinte hasonló adatokat tartalmazhatnak.

Most fontolja meg azt, hogy olyan adatbázist akarunk, amely az éttermekkel kapcsolatos információkat tárolja. Tegyünk kényszert arra, hogy az étteremneveknek egyedinek kell lenniük.

Az alábbi táblázat használható, ha az étterem neve alapján szeretnénk keresni:

Most, ha egy adott helyre szeretnénk keresni az éttermeket, akkor lekérdezést írunk, amely minden soron átjátszódik, és lekérdezi az étterem neveit.

Ehelyett, szem előtt tartva a 2. szabályt, könnyen létrehozhatunk egy új táblát, amely kiszolgálja az igényeinket.

Most az adatainkat felosztjuk oly módon, hogy a fürt egy csomópontján egy adott helyre éttermek legyenek. Ez optimalizálja az olvasott lekérdezéseket, mivel a lekérdezés-keresés csak egy csomóponton történik, sokkal kevesebb sorral, mint az első általunk létrehozott táblázat.

Mi lenne, ha egy adott város éttermeit szeretnénk keresni, akkor készíthetünk egy másik táblát, ahelyett, hogy az összes sorot a fenti táblázat egyetlen partíciójában iterálnánk.

Következtetés

Ebben a cikkben néhány bevált gyakorlatot fedtem le, amelyek egyikét követheti az adatmodell modellezésének megközelítésében Cassandra-ban. Ha megérti ezeket a fogalmakat, és hatékonyan képes felismerni az alkalmazásához szükséges lekérdezéseket, nagyszerű adatmodellt készíthet, amely nagy teljesítményt eredményez az adatbázisból.

Ajánlott cikkek

Ez egy útmutató a Cassandra Data Model-hez. Itt megvitatjuk, hogyan modellezzük adatainkat Cassandra-ban, a Cassandra adatmodellek szabályaival és fontosságával együtt. A további javasolt cikkeken keresztül további információkat is megtudhat -

  1. Mi az adatmodellezés?
  2. Adatmodellek a DBMS-ben
  3. Adatmodellezési interjúkérdések
  4. Cassandra adatmodellezés