Video: Controllare errori e prestazioni della propria auto con uno smartphone e l'OBD 2 2024
Il modello di dati logici HBase è semplice ma elegante e fornisce un meccanismo naturale di memorizzazione dei dati per tutti i tipi di dati - grandi set di dati non strutturati in particolare. Tutte le parti del modello di dati convergono in una coppia chiave-valore.
Prima di tutto, in un mondo in cui è possibile pensare alla chiave di riga come chiave primaria per i dati memorizzati in HBase, come si finisce per sfruttare il resto dei componenti del modello di dati? Bene, tutto dipende da quanti dati vuoi vengano restituiti nelle query e da quanto tempo sei disposto ad aspettare.
La specifica della sola chiave di riga può potenzialmente restituire una tonnellata di dati, perché una singola riga può avere milioni di colonne. Inoltre, con la sola chiave di riga su cui lavorare, HBase può restituire ogni qualificatore di colonna, versione e valore relativo alla chiave di riga.
Che cosa succede se si desidera solo una particolare colonna o versione dei dati? Dall'esempio mostrato, puoi vedere cosa succede se vuoi solo il cognome di un determinato cliente? La soluzione è costruire una chiave più complessa per specificare esattamente ciò di cui hai bisogno. Una coppia valore-chiave può avere questo aspetto: RowKey: (famiglia di colonne: qualificatore di colonna: versione) => valore
Riga chiave | Famiglia di colonne: {Nome colonna: Versione: Valore} |
---|---|
00001 | Nome cliente: {'FN':
1383859182496: "John", "LN": 1383859182858: "Smith", "MN": 1383859183001: "Timothy", "MN": 1383859182915: "T"} > ContactInfo: {'EA': 1383859183030: 'John. Smith @ xyz. com ', ' SA ': 1383859183073:' 1 Hadoop Lane, NY 11111 '} 00002 |
CustomerName: {' FN ': | 1383859183103:' Jane ',
"LN": 1383859183163: "Doe", ContactInfo: { 'SA': 1383859185577: '7 HBase Ave, CA 22222'}
|
Quindi le chiavi sono più complesse di quanto si possa immaginare dallo studio del tavolo. Ad esempio, se si desidera il nome intermedio più recente (o il solo secondo nome finora) del cliente nella riga '00001', la coppia chiave-valore risultante sarà simile a questa: '00001: CustomerName: MN' => ' Timothy '
Ricorda che le versioni sono implementate utilizzando i timestamp di default e sono ordinate in ordine decrescente in modo da ottenere automaticamente il valore più recente se non si specifica una versione. Se si desidera una prima iniziale intermedia per il cliente (fare riferimento alla Tabella 12-2), la coppia chiave-valore risultante sarà simile a questa: '00001: CustomerName: MN: 1383859182915' => 'T'
Speriamo che le varie descrizioni di HBase stanno iniziando a prendere forma nella tua mente.Nello specifico, HBase è sia un archivio dati orientato alla famiglia che un archivio dati coppia-valore-chiave. Fare riferimento a HBase come semplice archivio dati "orientato alla colonna" lascia molto all'immaginazione.
Nel caso in cui eri curioso, non ci sono tipi di dati in HBase - i valori in HBase sono solo uno o più byte. Ancora una volta, semplice ma potente perché è possibile memorizzare qualsiasi cosa!