RDBMS vs. NoSQL: Ako si vyberáte?

  • Oct 21, 2023

Vážny argument pre NoSQL...od veterána RDBMS IBM a Oracle.

Jnan Dash prestrelil hlavu

Tento príspevok hosťa je od Jnana Dasha, technologického vizionára/výkonného konzultanta v Silicon Valley, ktorý strávil 10 rokov v Oracle Corporation a 16 rokov v IBM na rôznych vedúcich pozíciách v oblasti databáz. Dash pôsobí v niekoľkých predstavenstvách a poradných zboroch, vrátane MongoDB's.

Autor: Jnan Dash
Trh je plný výrazov ako NoSQL, Big Data, NewSQL, Database Appliance atď. Tvorcovia rozhodnutí v oblasti IT môžu byť často veľmi zmätení so všetkým tým hlukom. Nerozumejú, prečo by mali uvažovať o novšej, alternatívnej databáze, keď RDBMS existujú už viac ako 20 rokov. Mnohé popredné podniky však už využívajú alternatívne databázy a šetria peniaze, inovujú rýchlejšie a dokončujú projekty, ktoré predtým nemohli realizovať. Poďme diskutovať o tom, ako možno určiť, či je NoSQL vhodný pre súčasné alebo budúce aplikácie.

Povaha údajov
Prvou úvahou, ktorú je potrebné zvážiť pri výbere databázy, sú charakteristiky údajov, ktoré chcete využiť. Ak majú údaje jednoduchú tabuľkovú štruktúru, ako napríklad účtovná tabuľka, potom by relačný model mohol byť primeraný.

Na druhej strane údaje, ako sú geopriestorové, inžinierske časti alebo molekulárne modelovanie, bývajú veľmi zložité. Môže mať viacero úrovní vnorenia a úplný dátový model môže byť komplikovaný. Takéto údaje boli v minulosti modelované do relačných tabuliek, ale prirodzene nezapadali do dvojrozmernej štruktúry riadkov a stĺpcov.

Odporúčané

  • Je Windows 10 príliš populárny pre svoje vlastné dobro?
  • 5 spôsobov, ako nájsť najlepšie miesto na začatie kariéry
  • Takto generatívna AI zmení ekonomiku koncertov k lepšiemu
  • 3 dôvody, prečo uprednostňujem tento 300 USD Android pred Pixelom 6a od Google

V podobných prípadoch dnes treba zvážiť NoSQL databázy ako možnosť. Viacúrovňové vnorenie a hierarchie sú veľmi jednoducho reprezentované vo formáte JavaScript Object Notation (JSON), ktorý používajú niektoré produkty NoSQL.

Ďalšia otázka, ktorú si treba položiť, je „aká je volatilita dátového modelu?“ Je pravdepodobné, že sa dátový model zmení a bude sa vyvíjať, alebo s najväčšou pravdepodobnosťou zostane rovnaký? Vo všeobecnosti nie sú v čase návrhu známe všetky fakty o dátovom modeli, takže je potrebná určitá flexibilita. To predstavuje veľa problémov pre používateľov systému správy relačných databáz (RDBMS) na celom svete.

Počas môjho pôsobenia v IBM sme strávili mnoho hodín upozorňovaním používateľov, aby schému navrhli správne hneď na prvý raz, pretože neskoršie revízie spomalili alebo zastavili prevádzku databázy. Z tohto dôvodu museli byť akékoľvek potenciálne zmeny na ceste minimálne. Otázka tuhosti schémy je aktuálna aj dnes, čo vedie k malej flexibilite, pokiaľ ide o vývoj a vývoj aplikácií.

Tento prístup „najskôr to spravte“ mohol fungovať v starom svete statických schém, ale nebude vhodný pre nový svet dynamických schém, kde je potrebné vykonávať zmeny denne, ak nie každú hodinu, aby sa zmestili neustále sa meniace údaje Model. Niet divu, že mnohí používatelia NoSQL sú firmy zamerané na web, ktoré vyžadujú väčšiu mieru flexibility.

Vývoj aplikácií (vysoká rýchlosť kódovania a agilita)
Kľúčovou zložkou DBMS je komunita vývojárov aplikácií. V minulosti priemysel definoval správcu databázy (DBA) od vývojára aplikácie. Nový svet stiera takéto rozdiely a vyžaduje veľmi malú závislosť od špecializovaných DBA. Vývojár softvéru sa stáva najdôležitejším používateľom.

Ako sa veľkosť databázy zväčšuje alebo sa znásobuje počet používateľov, mnohé lokality založené na RDBMS trpia vážnymi problémami s výkonom.

Vývojár vyžaduje vysokú rýchlosť kódovania a veľkú obratnosť v procese vytvárania aplikácií. Databázy NoSQL sa v tomto smere ukázali ako lepšia voľba, využívajúc technológie zamerané na objekty, ako je napríklad JSON. Aj keď ste obchod s SQL, prírastkový čas na osvojenie si nových databázových technológií vám časom ušetrí veľa nákladov na vývoj.

Napríklad krivka učenia na JSON je pomerne rýchla a programátori dokážu postaviť prototyp za niekoľko dní a týždňov. Keďže mnohé ponuky NoSQL obsahujú otvorený systém, komunita poskytuje mnoho nástrojov na zvýšenie produktivity, čo je ďalšia veľká výhoda oproti proprietárnym produktom jedného dodávateľa. Niektoré organizácie, ako napríklad MongoDB, dokonca ponúkajú bezplatné kurzy online, ktoré školia zamestnancov a zainteresovaných používateľov v tom, ako túto technológiu používať.

Prevádzkové problémy (rozsah, výkon a vysoká dostupnosť)
Zo skúsenosti viem, že ako veľkosť databázy rastie alebo sa znásobuje počet používateľov, mnohé lokality založené na RDBMS trpia vážnymi problémami s výkonom.

Ďalej sú privedení konzultanti, aby sa pozreli na problém a poskytli riešenia. Vertikálne škálovanie sa zvyčajne odporúča pri vysokých nákladoch. Ako sa pridávajú procesory, dochádza k lineárnemu škálovaniu až do bodu, kedy sa môžu objaviť ďalšie prekážky. Mnoho komerčných produktov RDBMS ponúka aj horizontálne škálovanie (zhlukovanie), ale tieto riešenia sú naskrutkované a môžu byť veľmi drahé a zložité.

Ak organizácia čelí takýmto problémom, mala by zvážiť technológie NoSQL, pretože mnohé z nich boli navrhnuté konkrétne na riešenie tohto rozsahu (horizontálne škálovanie alebo škálovanie pomocou komoditných serverov) a výkonu problémy. Rovnako ako architektúra horizontálneho škálovania HDFS od spoločnosti Google pre distribuované systémy v dávkovom spracovaní, aj tieto novšie technológie NoSQL boli vytvorené na hosťovanie distribuovaných databáz pre online systémy. Pre vysokú dostupnosť je tu implementovaná redundancia (v troch vyhotoveniach).

Bežnou sťažnosťou na databázy NoSQL je, že strácajú konzistenciu v prospech vysokej dostupnosti. To sa však nedá povedať o všetkých NoSQL databázach. Vo všeobecnosti by ste mali zvážiť RDBMS, ak máte viacriadkové transakcie a zložité spojenia. V databáze NoSQL, ako je napríklad MongoDB, môže byť dokument (aka komplexný objekt) ekvivalentom riadkov spojených vo viacerých tabuľkách a v rámci tohto objektu je zaručená konzistencia.

Databázy NoSQL sa vo všeobecnosti vyhýbajú funkciám RDBMS, ako sú spojenia viacerých tabuliek, ktoré môžu byť príčinou vysokej latencie. V novom svete veľkých dát ponúka NoSQL možnosti prísnej až uvoľnenej konzistencie, ktoré je potrebné posudzovať od prípadu k prípadu.

Dátové sklady a analytika
RDBMS sú ideálne vhodné pre komplexné dotazy a analýzy. Pôvodne sa DB2 a Oracle používali väčšinou na úlohy náročné na dopyty. Údaje z produkčných systémov boli extrahované a transformované (prostredníctvom procesov ETL) a načítané do RDBMS na krájanie a krájanie. Dokonca aj v dnešnom svete sa údaje Hadoop niekedy načítavajú späť do RDBMS na účely vykazovania. Takže RDBMS je dobrou voľbou, ak sú požiadavky na dopyt a podávanie správ veľmi kritické.

Analýza prevádzkových údajov v reálnom čase je vhodnejšia pre nastavenie NoSQL. Okrem toho v prípadoch, keď sa údaje zhromažďujú z mnohých nadradených systémov na vytvorenie aplikácie (nielen na vytváranie správ), je NoSQL nevyhnutnosťou. Dnes je podpora nástrojov BI pre NoSQL novinkou, ale rýchlo rastie.

Koexistencia databáz RDBMS a NoSQL
IBM práve oznámila implementáciu MongoDB API, reprezentácie údajov, dotazovacieho jazyka a drôtového protokolu, čím vytvorila cestu pre mobilné a ďalšie aplikácie novej generácie na prepojenie s podnikovými databázovými systémami, ako je napríklad relačná databáza IBM DB2 a jej údaje WebSphere eXtreme Scale mriežka. To by mohlo spustiť novú vlnu flexibilných aplikácií, ktoré pridávajú významnú hodnotu tým, že zahŕňajú viaceré dátové systémy.

Spoločnosť Oracle tiež minulý rok predstavila svoj produkt NoSQL.

Výmena údajov a interoperabilita sa budú aj naďalej vyvíjať, keďže ďalší lídri v odvetví budú nasledovať kroky IBM a funkčnosť databáz NoSQL sa bude v priebehu času naďalej vyvíjať. Spoločnosti z rebríčka Fortune 1000 budú mať dobrú radu, aby sa pozreli na databázové riešenia NoSQL, aby vyhovovali ich potrebám v dátovo náročnom obchodnom svete.

Rýchle prijatie týchto alternatívnych databáz v priebehu niekoľkých rokov je dôkazom ich príťažlivosti pre nový svet veľkých dát, kde vládne agilita, výkon a škálovateľnosť.