Video: Consul Data Backup | How to take key value backup from consul | Hashicorp Consul Tutorial 2024
betrachten kann. Das logische HBase-Datenmodell ist einfach, aber elegant und bietet einen natürlichen Datenspeicherungsmechanismus für alle Arten von Daten - besonders unstrukturierte große Datensätze. Alle Teile des Datenmodells konvergieren zu einem Schlüssel / Wert-Paar.
Zunächst einmal, in einer Welt, in der Sie sich den Zeilenschlüssel als Primärschlüssel für in HBase gespeicherte Daten vorstellen können, wie können Sie am Ende die restlichen Datenmodellkomponenten nutzen? Nun, es hängt alles davon ab, wie viele Daten Sie in Abfragen zurückgeben und wie lange Sie warten möchten.
Die Angabe nur des Zeilenschlüssels kann möglicherweise eine Tonne Daten zurückgeben, da eine einzelne Zeile Millionen von Spalten haben kann. Auch mit nur dem Zeilenschlüssel, von dem aus gearbeitet werden kann, kann HBase jedes Spaltenqualifikationsmerkmal, jede Version und jeden Wert, der sich auf den Zeilenschlüssel bezieht, zurückgeben.
Was ist, wenn Sie nur eine bestimmte Spalte oder Version Ihrer Daten wünschen? Können Sie aus dem gezeigten Beispiel sehen, was passiert, wenn Sie nur den Nachnamen eines bestimmten Kunden wünschen? Die Lösung besteht darin, einen komplexeren Schlüssel zu erstellen, um genau anzugeben, was Sie benötigen. Ein Schlüsselwertepaar kann wie folgt aussehen: RowKey: (Column Family: Column Qualifier: Version) => Wert
Zeilenschlüssel | Spaltenfamilie: {Spaltenqualifizierer: Version: Wert} |
---|---|
00001 | Kundenname: {'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 |
Kundenname: {' FN ': | 1383859183103:' Jane ',
'LN': 1383859183163: 'Doe', ContactInfo: { 'SA': 1383859185577: '7 HBase Ave, CA 22222'}
|
Schlüssel sind also komplexer, als man sich vielleicht beim Studieren des Tisches vorstellen kann. Wenn Sie zum Beispiel den letzten zweiten Vornamen (oder den einzigen zweiten Vornamen) des Kunden in Zeile '00001' wünschen, würde das resultierende Schlüssel / Wert-Paar wie folgt aussehen: '00001: CustomerName: MN' => ' Timothy '
Denken Sie daran, dass Versionen standardmäßig mit Zeitstempeln implementiert und in absteigender Reihenfolge sortiert sind, sodass Sie automatisch den neuesten Wert erhalten, wenn Sie keine Version angeben. Wenn Sie eine vorherige mittlere Initialisierung für Ihren Kunden wünschen (siehe Tabelle 12-2), würde Ihr resultierendes Schlüssel-Wert-Paar wie folgt aussehen: '00001: CustomerName: MN: 1383859182915' => 'T'
Wir hoffen, dass die verschiedenen Beschreibungen von HBase beginnen sich in deinem Geist zu formen.Insbesondere ist HBase sowohl ein spaltenfamilienorientierter Datenspeicher als auch ein Schlüsselwertpaardatenspeicher. Sich auf HBase als einfach "spaltenorientierten" Datenspeicher zu verlassen, überlässt der Vorstellung viel.
Falls Sie neugierig waren, gibt es in HBase keine Datentypen - Werte in HBase sind nur ein oder mehrere Bytes. Wieder einfach, aber mächtig, weil du alles speichern kannst!