Dátový model v Cassandre Ako modelovať dáta v Cassandre?

Obsah:

Anonim

Úvod do dátového modelu v Cassandre

Apache Cassandra sa stala jednou z najvýkonnejších databáz NoSQL. Je to správna voľba, keď chcete vysokú dostupnosť a škálovateľnosť bez zníženia výkonu - najmä pre aplikácie, ktoré si nemôžu dovoliť stratiť údaje. V tejto téme sa dozvieme o dátovom modeli v Cassandre.

Inžinieri spoločnosti Cassandra dnes patria medzi najlepšie platených odborníkov v oblasti technológií. Spoločnosti ako Netflix, Instagram a Apple používajú Cassandra na zabezpečenie vysoko individualizovaného zážitku zákazníka. Ak chcete dosiahnuť správny výkon, musíte starostlivo navrhnúť schému špecifickú pre daný obchodný problém. V tomto článku sa pozrieme na dátový model Cassandra, ktorý sa výrazne líši od toho, čo vidíme v RDBMS.

Pravidlá dátového modelu Cassandra

Jednoducho povedané, dátový model je logická štruktúra databázy. Opisuje spôsob ukladania a prístupu k údajom a vzťahov medzi rôznymi typmi údajov.

Výber správneho dátového modelu môže byť najťažšou časťou používania databázy NoSQL, ako je Cassandra. Ako som už spomenul, modelovanie údajov v Cassandre sa líši od toho, čo vidíme v RDBMS.

Kľúč oddielu a kľúč klastra sú podmienky, o ktorých by si mal byť vedomý každý, kto sa zaoberá Cassandrou. Skôr ako sa pustíme do základných pravidiel modelovania údajov v Cassandre, pozrime sa rýchlo, čo tieto pojmy znamenajú,

prepážka

Cassandra je distribuovaná databáza, v ktorej sú údaje rozdelené a uložené v rôznych uzloch v klastri. Dáta sú rozdelené pomocou kľúča oddielu, ktorým môže byť jedno alebo viac dátových polí. Tento kľúč oddielu sa používa na vytvorenie hashovacieho mechanizmu na rovnomerné šírenie údajov vo všetkých uzloch.

zhluk

Klaster je skupina uzlov, ktoré predstavujú jednu logickú databázu. Klastrovací kľúč sa skladá z jedného alebo viacerých polí, ktoré sa používajú na zoskupovanie údajov do oddielu.

V tejto tabuľke reštaurácií sa údaje rozdelia pomocou krajiny, názvu štátu a mesta, av rámci tejto oblasti sa údaje zoskupia a zoradia na základe otváracích údajov a názvu reštaurácie.

Pozrime sa teraz na dve pravidlá pre modelovanie údajov, na ktoré by ste mali pamätať.

  • Dáta sú distribuované rovnomerne v celom klastri
  • Čítajte z čo najmenšieho počtu oddielov

Pozrime sa, čo sa tieto pravidlá snažia sprostredkovať

  • Vieme, čo je klaster v poriadku? Klaster sa skladá z viacerých uzlov. Chceme rozdeliť údaje medzi tieto uzly tak, aby každý uzol mal približne rovnaké množstvo údajov. Ako vieme, údaje sú rozdelené do rôznych uzlov pomocou hashu kľúča oddielu (ktorý je prvým kľúčom primárneho kľúča), teda v skratke „Mali by ste zvoliť dobrý primárny kľúč“.
  • Každý oddiel sa nachádza v inom uzle, takže keď získavate údaje, musíte sa ubezpečiť, že údaje sú načítané z čo najmenšieho počtu oddielov. Ak váš dotaz vyžaduje údaje z rôznych oddielov, príkaz sa vydá do samostatných uzlov, aby ste získali tie údaje, ktoré budú réžia a povedú k oneskoreniu.

Kľúčom k efektívnemu modelu údajov by bola rovnováha medzi týmito dvoma pravidlami.

Zaoberajte sa vzťahmi v Cassandre

Jednu vec, ktorú treba mať na pamäti, je modelovanie údajov v Cassandre, ktoré sa vykonáva pomocou prístupu založeného na dopyte, na rozdiel od RDBMS, kde najprv identifikujete entity, vytvárajte tabuľky a potom vytvárajte dotazy pomocou JOINS na získavanie údajov.

Zjednodušene povedané, nemodelujeme okolo vzťahov alebo objektov, modelováme otázky.

1. Vzťah jeden ku druhému

Zvážte na univerzite, že sa študent môže prihlásiť iba na jeden seminár. Toto je vzťah jeden ku každému. Pri dodržaní pravidla číslo 1 myslíme na otázky, ktoré chceme. Chcem hľadať seminár, na ktorom sa študent zúčastňuje. V tomto prípade urobíme iba jednu tabuľku. Tabuľka by mala obsahovať podrobnosti o študentovi a podrobnosti o seminári.

2. Vzťah jeden k mnohým

V rovnakom kontexte, čo keby som hľadal všetkých študentov, ktorí sa zúčastnia seminára. Namiesto toho, aby som použil tú istú tabuľku a opakoval každý riadok, aby som získal meno študenta pre konkrétny seminár, môžem vytvoriť ďalšiu tabuľku, ktorá rozdelí údaje podľa názvu seminára. Takže keď vydám dotaz, zasiahne iba jeden uzol a nezíska názov seminára, ale nechodí do všetkých uzlov.

3. Vzťah Mnoho k mnohým

Teraz zvážme, že sa študent môže zúčastniť mnohých seminárov a seminár sa môže zúčastniť mnoho študentov. Tu máme veľa až veľa vzťahov. V takom prípade môžete vyššie uvedené dve tabuľky využiť na vytváranie dopytov bez toho, aby ste museli réžiu vytvárať zložité dotazy pomocou pripojení, ktoré by ste spravidla robili v RDBMS.

Dôležitosť Cassandry

Pri rýchlom rozširovaní digitálnych údajov je dôležitejšie mať vysoko škálovateľnú databázu odolnú voči chybám. Dovoľte mi uviesť niekoľko bodov, prečo by ste mali používať Cassandru

  • Osvetlenie operácií rýchleho čítania: Diskutovali sme o tom, ako správne modelovanie údajov môžete optimalizovať operácie čítania pomocou veľkého rozsahu.
  • Odolné voči chybám: Dáta sa replikujú cez uzly, takže aj keď jeden uzol klesne, vaše údaje sú v bezpečí.
  • Prispôsobené ladenie: Cassandru môžete nastaviť tak, aby pracovala podľa vášho pracovného zaťaženia. Ak píšete veľa údajov, napríklad protokolovanie, môžete ich vyladiť, aby ste zvládli systémy náročné na zápis. K dispozícii je niekoľko ďalších možností ladenia.
  • Zaobchádzanie s veľkými objemami údajov: Na základe veľkosti klastra dokáže spoločnosť Cassandra zvládnuť obrovské objemy údajov.

Ako modelovať údaje v Cassandre?

Dobré modelovanie údajov sa riadi týmito krokmi

  • Konceptualizujte otázky, ktoré vyžaduje vaša aplikácia
  • Vytváranie tabuliek na uspokojenie týchto otázok

Predtým, ako začneme tieto pravidlá uplatňovať, je potrebné mať na pamäti: „Zameriavame sa na optimalizáciu našich operácií čítania, aj keď to vyžaduje duplikáciu údajov“. Môžeme mať veľa tabuliek, ktoré môžu obsahovať takmer podobné údaje.

Teraz zvážte, či chceme databázu, ktorá ukladá informácie o reštauráciách. Urobme obmedzenia, že názvy reštaurácií musia byť jedinečné.

Nasledujúca tabuľka sa môže použiť, keď chceme vyhľadávať na základe názvu reštaurácie:

Ak teraz chceme vyhľadať reštaurácie pre konkrétne miesto, napíšeme dotaz, ktorý iteruje cez všetky riadky a načíta názvy reštaurácií.

Namiesto toho, majte na pamäti pravidlo č. 2, môžeme ľahko vytvoriť ďalšiu tabuľku, ktorá bude slúžiť našim potrebám.

Teraz budú naše údaje rozdelené takým spôsobom, že uzol v klastri bude mať reštaurácie pre konkrétne miesto. Tým sa optimalizujú naše čítané dopyty, pretože vyhľadávanie dopytov sa uskutoční iba na jednom uzle s oveľa menšími riadkami ako prvá tabuľka, ktorú sme vytvorili.

Čo ak by sme chceli hľadať reštaurácie v konkrétnom meste, môžeme radšej vytvoriť inú tabuľku, ako iterovať všetky riadky v jednom oddiele vyššie uvedenej tabuľky.

záver

V tomto článku som opísal niekoľko osvedčených postupov, ktoré môžete sledovať, ako pristupovať k modelovaniu údajov v Cassandre. Ak rozumiete týmto pojmom a dokážete efektívne rozpoznať druh otázok, ktoré vaše aplikácie potrebujú, môžete navrhnúť skvelý dátový model, aby ste z vašej databázy získali vysoký výkon.

Odporúčané články

Toto je sprievodca údajovým modelom v Cassandre. Tu diskutujeme o tom, ako modelovať naše údaje v Cassandre spolu s pravidlami a významom dátových modelov Cassandra. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Čo je to modelovanie údajov?
  2. Dátové modely v DBMS
  3. Rozhovory s otázkami modelovania dát
  4. Cassandra Data Modeling