Cuprins:
- Utilizarea tastelor de rând
- Crearea de familii de coloane
- Folosirea timestamp-urilor
- Manipularea valorilor binare
Video: Stocarea datelor in partitii ascunse 2024
Un Bigtable are tabele la fel ca RDBMS, dar spre deosebire de RDBMS, tabelele Bigtable nu au, în general, relații cu alte tabele. În schimb, datele complexe sunt grupate într-un singur tabel.
Un tabel din Bigtable constă din grupuri de coloane, numite familii de coloane și o cheie de rând. Acestea permit o căutare rapidă a unei singure înregistrări a datelor deținute într-un Bigtable.
Utilizarea tastelor de rând
Fiecare rând trebuie identificat în mod unic. Aici intră o cheie de rând. O cheie de rând este un șir unic folosit pentru a face referire la o singură înregistrare într-un Bigtable. Vă puteți gândi la ele ca fiind asemănătoare cu o cheie primară sau ca un număr de securitate socială pentru Bigtables.
Multe Bigtables nu oferă indici secundari buni (indici deasupra valorilor coloanelor), deci proiectarea unei chei de rând care să permită căutarea rapidă a înregistrărilor este esențială pentru asigurarea unei performanțe bune.
O tastă de rând bine creată permite înregistrarea unei înregistrări fără a fi necesară citirea aplicației dvs. și verificați-vă singur aplicabilitatea fiecărei înregistrări. Este mai rapid ca baza de date să facă acest lucru.
Cheile de ordine sunt, de asemenea, utilizate de majoritatea Bigtables pentru distribuirea uniformă a înregistrărilor între servere. O cheie de rând necorespunzătoare va duce la un server din clusterul de baze de date care primește mai multă încărcare (solicitări) decât celelalte servere, încetinind performanța vizibilă de utilizator a întregului serviciu de baze de date.
Crearea de familii de coloane
O familie de coloane reprezintă o grupare logică a coloanelor. Deși Bigtables vă permit să modificați numărul de coloane acceptate în orice definiție a tabelului în timpul rulării, trebuie să specificați familiile coloanelor permise în față. De obicei, acestea nu pot fi modificate fără a lua serverul offline. De exemplu, o aplicație de carte de adrese poate utiliza o singură familie pentru adresa de domiciliu. Aceasta ar putea conține coloanele Linia de Adresă 1, Linia de Adresă 2, Zona, Orașul, Judetul, Statul, Țara și Codul Zip.
Nu toate adresele vor avea date în toate câmpurile. De exemplu, linia de adrese 2, zona și județul pot fi adesea goale. Pe de altă parte, este posibil să aveți date numai în linia de adrese 1 și codul poștal. Aceste două exemple sunt amândouă bine în aceeași familie de coloane de domiciliu.
Având un număr variat de coloane, are dezavantajele sale. Dacă doriți să HBase, de exemplu, pentru a lista toate coloanele dintr-o anumită familie, trebuie să iterați peste toate rândurile pentru a obține lista completă a coloanelor! Deci, trebuie să țineți evidența modelului dvs. de date în aplicația dvs. cu o clonă Bigtable pentru a evita această pedeapsă de performanță.
Folosirea timestamp-urilor
Fiecare valoare dintr-o coloană poate de obicei să stocheze diferite versiuni.Aceste versiuni sunt menționate prin utilizarea unei valori de timbru.
Valorile nu sunt niciodată modificate - se adaugă o valoare diferită cu o marcă de timp diferită. Pentru a șterge o valoare, adăugați un indicator de piatră de mormânt la valoare, care în principiu indică faptul că valoarea este ștersă la un moment dat.
Toate valorile pentru aceeași cheie de rând și familie de coloane sunt stocate împreună, ceea ce înseamnă că toate căutările sau deciziile de versiune sunt luate într-un singur loc unde locuiesc toate datele relevante.
Manipularea valorilor binare
În Bigtables, valorile sunt doar arhitecturi byte. De exemplu, ele pot fi text, numere sau chiar imagini. Ceea ce stocați în ele depinde de dvs.
Doar câteva clone Bigtable acceptă tastarea de valori. Hypertable, de exemplu, vă permite să setați tipuri și să adăugați indici secundari la valori. De asemenea, Cassandra vă permite să definiți tipuri de valori, însă indexurile de interogare a intervalului (mai puțin decât și mai mare decât cele pentru fiecare tip de date) sunt limitate la accelerarea operațiunilor de căutare cheie, nu la operațiile de comparare a valorii.