Acasă Finanțe personale Trecerea de la un model RDBMS la HBase - manechine

Trecerea de la un model RDBMS la HBase - manechine

Video: Trecerea zonei neutre de la Merisor cu un EC modernizat 2024

Video: Trecerea zonei neutre de la Merisor cu un EC modernizat 2024
Anonim

Dacă vă confruntați cu faza de proiectare pentru aplicația dvs. și credeți că HBase ar fi o potrivire bună, atunci proiectarea cheilor de rând și schema pentru a se potrivi modelului de date HBase și arhitectura este abordare corectă. Cu toate acestea, uneori are sens să mutați o bază de date creată inițial pentru o RDBMS către HBase.

Un scenariu comun în care această abordare are sens este o instanță de bază de date MySQL care a atins limitele de scalabilitate. Există tehnici pentru scalarea orizontală a unei instanțe MySQL (cu alte cuvinte, Sharpening, ), dar acest proces este, de obicei, greoaie și problematic, deoarece MySQL pur și simplu nu a fost conceput inițial pentru ștergere.

Trecerea de la modelul relațional la modelul HBase este o disciplină relativ nouă. Cu toate acestea, anumite modele de gândire stabilite au apărut și s-au coalizat în trei principii cheie care trebuie urmate atunci când se apropie o tranziție. Aceste principii sunt denormalizare, duplicare, și chei inteligente (DDI) .

  • Denormalizare: Modelul bazei de date relaționale depinde de a) o schemă de bază de date normalizată și b) se unește între tabele pentru a răspunde la operațiile SQL. Baza de date de normalizare este o tehnică care protejează împotriva pierderii de date, a redundanței și a altor anomalii, deoarece datele sunt actualizate și preluate.

    Acesta este un model comun atunci când se trece la HBase, deoarece conexiunile nu sunt furnizate în tabele și conexiunile pot fi lente, deoarece implică operațiuni costisitoare pe disc. Protejarea împotriva anomaliilor de actualizare și de recuperare este acum sarcina aplicației dvs. client HBase, deoarece protecția pe care ți-a oferit-o prin normalizare este nulă și neavenită.

    Duplicarea:

  • Pe măsură ce denormalizați schema bazei de date, probabil veți termina duplicarea datelor deoarece vă poate ajuta să evitați operațiile de citire costisitoare din mai multe mese. Nu vă preocupați de depozitarea suplimentară (în mod normal); puteți utiliza scalabilitatea automată a HBase în avantajul dumneavoastră. Fiți conștienți, totuși, că cererea dvs. suplimentară va fi solicitată de către aplicația dvs. client pentru a duplica datele și rețineți că HBase nativ furnizează numai operațiuni atomice la nivel de linie care nu sunt transversale (cu excepția descrisă în HBASE-5229 JIRA) masa.

    Cheile inteligente:

  • Deoarece datele stocate în HBase sunt ordonate de cheia rând, iar cheia rând este singurul indice nativ furnizat de sistem, un design inteligent atent al cheii rând poate face o diferență enormă. De exemplu, cheia dvs. de rând ar putea fi o combinație între un număr de comandă de serviciu și numărul de identificare al clientului care a plasat comanda de serviciu. Acest design al cheii de rând vă permite să căutați date referitoare la comanda de serviciu sau să căutați date referitoare la client folosind aceeași cheie de rând în același tabel. Această tehnică va fi mai rapidă pentru unele întrebări și va evita îmbinările costisitoare.

    Pentru a clarifica aceste modele de gândire, luați o tabelă cu informații despre clienți și plasați-o în contextul unei baze de date tipice de comandă de servicii. Figura vă arată ce ar putea arăta o schemă de baze de date pentru comenzi de servicii normalizate.

În conformitate cu normele de normalizare a RDBMS, setați tabelul de eșantionare a informațiilor despre clienți, astfel încât să fie separat de tabelul pentru comenzi de servicii, pentru a evita pierderea datelor despre clienți atunci când comenzile de serviciu sunt închise și eventual eliminate. Utilizați aceeași abordare pentru tabelul Produse, ceea ce înseamnă că pot fi adăugate noi produse în baza de date fictivă a companiei, independent de comenzile de serviciu.

Bazându-se pe operațiile de integrare RDBMS, această schemă acceptă interogări care dezvăluie numărul de comenzi de servicii care sunt deschise împotriva unui anumit produs împreună cu locația clientului în care produsul este utilizat.

Asta e bine și dandy, dar este o schemă pe care o folosești cu RDBM. Cum transformați această schemă într-o schemă HBase? Următoarea figură ilustrează o posibilă schemă HBase - una care urmează modelul de design DDI.

Tabelul Informații despre persoanele de contact a fost denormalizat prin includerea numelui clientului și a informațiilor de contact în locul cheilor externe utilizate anterior. De asemenea, datele sunt duplicate, păstrând tabelul cu informații despre clienți ca atare. Acum intră în tabelul cu comenzi de servicii și nu este necesar tabelul Informații de contact pentru clienți.

În plus, a fost utilizată o schemă cheie inteligentă care combină numărul produsului cu numărul clientului pentru a forma numărul comenzii de serviciu (de exemplu, A100 | 00001). Folosind această cheie inteligentă, tabelul pentru comenzile de serviciu poate furniza rapoarte vitale despre deficiențele produsului și clienții care se confruntă în prezent cu probleme legate de produs.

Toate aceste interogări pot fi susținute de HBase la un nivel de nivel atomic pentru aplicație. Deoarece știți că HBase comandă cheile de rând și le sortează într-un mod lexicografic, aplicația dvs. poate face anumite presupuneri educate despre localitatea de date atunci când emit scanări pentru raportare. (Numerele de produse din seria A * vor fi stocate împreună, de exemplu.)

Baza de date pentru comenzi de servicii reprezentată de schema HBase este un exemplu relativ simplu, dar ilustrează modul în care HBase se poate intersecta în anumite cazuri cu RDBMS și oferă o valoare semnificativă. Dacă compania fictivă are terabiți sau chiar câțiva kilobiți de date despre apelurile de serviciu pentru stocare, HBase ar face o diferență uriașă în ceea ce privește costul, fiabilitatea, performanța și scara.

Puteți, bineînțeles, să proiectați comanda HBase a comenzii dvs. de servicii în mai multe moduri diferite. Desigur, designul depinde de întrebările care trebuie suportate, dar aveți posibilitatea de a trece unele baze de date relaționale la aplicații HBase foarte puternice pentru utilizarea în producție, atâta timp cât lucrați dintr-o înțelegere solidă a arhitecturii HBase și a modelului de design DDI.

Acest exemplu a presupus că interogările au fost efectuate de o aplicație Java care utilizează API-urile clientului HBase sau poate printr-o altă limbă folosind Apache Thrift. Acest model de aplicație poate corespunde cerințelor și oferă opțiuni utile de performanță și personalizare pentru compania fictivă de servicii.

Trecerea de la un model RDBMS la HBase - manechine

Alegerea editorilor

Administrator de rețea: Zone de căutare inversă - dummies

Administrator de rețea: Zone de căutare inversă - dummies

Interogări DNS obișnuite sunt interogări de căutare înainte corespunde unui nume de domeniu complet calificat. O căutare inversă este opusul unei căutări forward: returnează numele de domeniu complet calificat al unei gazde pe baza adresei sale IP. Căutările inverse sunt posibile din cauza unui domeniu special numit ...

Rețea Elemente de bază: Clienți și servere - manechine

Rețea Elemente de bază: Clienți și servere - manechine

Computerul de rețea care conține hard disk-urile, imprimantele și alte resurse care sunt partajate cu alte calculatoare de rețea se numește un server. Acest termen vine în repetate rânduri, deci trebuie să-l amintiți. Scrie-o pe spatele mâinii tale stângi. Orice computer care nu este un server este numit client. Aveți ...

Retea Bazele: Poduri - dummies

Retea Bazele: Poduri - dummies

O punte este un dispozitiv care conecteaza doua retele astfel incat sa actioneze ca si cum ar fi o rețea. Podurile sunt utilizate pentru a împărți o rețea mare în două rețele mai mici din motive de performanță. Vă puteți gândi la un pod ca pe un repetor inteligent. Repetoarele ascultă semnale care coboară pe un cablu de rețea, amplifică ...

Alegerea editorilor

ÎMprumuta și tweak idei de la alte comunități online - dummies

ÎMprumuta și tweak idei de la alte comunități online - dummies

, Mai degrabă decât să ia ideile altcuiva complet pentru dvs. comunitate online, încercați să riffați pe aceeași idee, dar nu atât de mult încât este evident că nu sunteți creierul din spatele brainstorming-ului. Idei sunt acolo pentru a lua, dar nu ar fi mai degrabă văzute ca cineva inovatoare, nu cineva care scours pe web ...

Branding Blogul tău

Branding Blogul tău

Branding blog-ul tău merge mult spre a face dacă este ușor de recunoscut pentru cititorii tăi. Când vedeți un punct roșu în interiorul unui cerc roșu, ce magazin vine în minte? Ce zici de acele arcuri de aur? Un nume de marcă apare în minte atunci când vedeți simbolul swoosh? La fel ca magazinele populare, restaurantele și încălțămintea ...

Construiți un Blog Mama care este Sellable - dummies

Construiți un Blog Mama care este Sellable - dummies

Dacă obiectivul pe termen lung este de a vinde blogul dvs. ar trebui să o construiască cu acest scop în minte. Evitați asocierea prea intensă a blogului cu marca dvs. personală. Un blog care poate fi valoros cu orice scriitor la cârma trebuie să îndeplinească majoritatea, dacă nu toate, următoarele criterii: Blogul este concentrat ...

Alegerea editorilor

Cum să creați o nouă campanie de anunțuri LinkedIn - dummies

Cum să creați o nouă campanie de anunțuri LinkedIn - dummies

LinkedIn oferă servicii de publicitate pentru afacerea dvs. Dacă vă decideți să utilizați LinkedIn ca instrument de marketing, va trebui doar să obțineți o nouă campanie de anunțuri în lucrări. Când sunteți gata să începeți o nouă campanie, urmați acești pași:

Opțiuni de filtrare pentru anunțul dvs. LinkedIn - manechine

Opțiuni de filtrare pentru anunțul dvs. LinkedIn - manechine

Ce opțiuni de filtrare aveți pentru anunțul dvs. LinkedIn? Alte rețele de publicitate vă permit să filtrați publicul vizat de câteva atribute cunoscute ale persoanei care vă va vedea anunțul, sexul și locația membrilor din public. LinkedIn vă permite să faceți un pas mai departe permițându-vă ...

Oferind și primind viziuni pe LinkedIn - manechine

Oferind și primind viziuni pe LinkedIn - manechine

Deși mulți oameni cred că "Nu este ceea ce știi, știi, "care este unul dintre principalele motive pentru care LinkedIn este atât de valoros, mulți oameni (recrutorii, angajații, directorii executivi, investitorii și altele) sunt foarte interesați de ceea ce știi. În mod logic, oamenii care vă cunosc cel mai bine sunt oamenii din rețeaua dvs., care ...