Inhaltsverzeichnis:
Video: Analyze Traffic Patterns with Apache NiFi 2024
HBase (Hadoop Database) ist eine Java-Implementierung von Googles BigTable. Google definiert BigTable als "spärliche, verteilte, persistente, mehrdimensionale, sortierte Karte". "Es ist eine recht knappe Definition, aber Sie werden auch zustimmen, dass es ein bisschen komplex ist. Um die Komplexität von BigTable etwas herunterzubrechen, folgt eine Beschreibung jedes Attributs.
Hbase ist spärlich
Wie Sie vielleicht schon vermutet haben, wurde das verteilte BigTable-Datenspeichersystem entwickelt, um die Anforderungen von Big Data zu erfüllen. Jetzt speichern Big Data-Anwendungen viele Daten, aber auch große Datenmengen sind oft variabel. Stellen Sie sich eine traditionelle Tabelle in einer Firmendatenbank vor, in der Kundenkontaktinformationen gespeichert sind:
Kunden-ID | Nachname | Vorname | Zweiter Name | E-Mail-Adresse | Adresse der Straße |
---|---|---|---|---|---|
00001 | Smith | John | Timotheus | 1 Hadoop Lane, NY 11111 | |
00002 | Hirsch | Jane | NULL | NULL | 7 HBase Ave, CA 22222 |
Ein Unternehmen oder eine Einzelperson kann einen vollständigen Datensatz für jeden ihrer Kunden oder Bestandteile verlangen. Ein gutes Beispiel ist Ihr Arzt, der alle Ihre Kontaktinformationen benötigt, um Sie angemessen zu versorgen. Andere Unternehmen oder Einzelpersonen benötigen möglicherweise nur teilweise Kontaktinformationen oder müssen diese Informationen im Laufe der Zeit erlernen.
Zum Beispiel kann ein Kundendienstunternehmen Telefonanrufe oder E-Mail-Nachrichten für Serviceanfragen verarbeiten. Kunden können oder können sich nicht dafür entscheiden, Dienstleistungsunternehmen alle ihre Kontaktinformationen zu geben. Mit jeder Interaktion im Laufe der Zeit können Unternehmen jedoch mehr über ihre Kunden erfahren, die ihnen einen besseren Service bieten können - zum Beispiel durch proaktive Servicemeldungen.
In diesem Zusammenhang bedeutet sparse , dass Felder in Zeilen leer oder NULL sein können, aber HBase nicht zum Anhalten bringt. HBase kann damit umgehen, dass Sie (noch) nicht den Vornamen und die E-Mail-Adresse von Jane Doe kennen.
Hier ein weiteres Beispiel: eine Datenbank zum Speichern von Satellitenbildern. Es stellt sich heraus, dass Google BigTable-Technologie verwendet, um Satellitenbilder der Erde zu speichern. In fast jedem Fall werden bei der Speicherung von Bildern Metadaten mit gespeichert.
Die Metadaten können die Straßenadresse des Bildes oder nur den Breitengrad und Längengrad enthalten, wenn das Bild aus der Wildnis aufgenommen wird. Die Metadaten sind im Inhalt variabel, daher sind einige Felder NULL - und das ist OK.
In beiden Beispielen können die gesammelten Datensätze extrem groß sein - besonders im zweiten Beispiel.Bilderdatenbanken werden fast immer in Terabyte oder manchmal in Petabyte gemessen.
HBase ist für die Speicherung großer Datenmengen ausgelegt, ist aber auch für die Speicherung von Datensätzen mit geringer Dichte ausgelegt. Diese Sorge ist entscheidend, wenn Sie Big Data-Anwendungen verwenden! Das Speichern einiger NULL-Datensätze über eine Million Zeilen ist verschwenderisch, aber versuche, dir die Verschwendung über eine Billiarde Zeilen vorzustellen!
Zum Glück war dies ein wichtiger Aspekt für Google-Designer und die HBase-Community. Sparsame Daten werden unterstützt, ohne dass kostspieliger Speicherplatz verschwendet wird.
Und damit hört es nicht auf. Betrachten Sie die Leistung eines schemelosen Datenspeichers. Die Tabelle zeigt Ihnen eine klassische Kundenkontakttabelle. Wenn Unternehmen diese Tabellen entwerfen, wissen sie im Voraus, was sie speichern möchten. Mit anderen Worten ist das Schema fest ; Es ist bereits definiert, bevor das erste Informationsbyte in der Tabelle gespeichert wird.
Was ist nun, wenn mit der Zeit ein neuer Bereich für einen Kunden benötigt wird? Wie wäre es mit einem Twitter-Handle oder einer neuen Handynummer? Sie sind scheinbar mit einem Schema verbunden, das für Sie nicht mehr funktioniert.
Nun, HBase löst auch diese Herausforderung - Sie können Felder nicht nur kostenlos überspringen, wenn Sie die Daten nicht haben, sondern auch Felder (oder Spalten in der HBase-Muttersprache) dynamisch hinzufügen. Zeit, ohne das Schema neu zu gestalten oder Vorgänge zu stören.
Sie können sich HBase also als schemenlosen Datenspeicher vorstellen. Das heißt, es ist flüssig - Sie können das Schema hinzufügen, davon subtrahieren oder modifizieren, während Sie fortfahren.
HBase ist verteilt und persistent
BigTable ist ein verteilter und persistenter Datenspeicher. Persistent bedeutet einfach, dass die Daten, die Sie in BigTable (und HBase) speichern, bestehen bleiben oder bleiben, nachdem Ihr Programm oder Ihre Sitzung beendet wurde. Das ist ziemlich einfach - persistent bedeutet, dass es bestehen bleibt - aber Sie sollten ein wenig mehr Zeit damit verbringen, darüber nachzudenken, wie die Daten bestehen bleiben. In seinem BigTable-Artikel beschrieb Google das verteilte Dateisystem, das als Google File System oder GFS bekannt ist. Es stellt sich heraus, dass, genauso wie HBase eine Open-Source-Implementierung von BigTable ist, HDFS eine Open-Source-Implementierung von GFS ist.
Standardmäßig nutzt HBase HDFS, um seine Daten auf dem Plattenspeicher zu speichern. Obwohl andere verteilte Datenspeicher mit HBase verwendet werden können, nutzen die meisten HBase-Installationen HDFS. Das macht vollkommen Sinn, wenn man bedenkt, dass HBase die "Hadoop-Datenbank" ist - hey, es ist in den Namen eingebaut, um Himmels willen.
HDFS ist eine Schlüsseltechnologie nicht nur für Hadoop, sondern auch für HBase. Durch die Speicherung von Daten in HDFS bietet HBase Zuverlässigkeit, Verfügbarkeit, nahtlose Skalierbarkeit, hohe Leistung und vieles mehr - und das alles auf kostengünstigen verteilten Servern!
HBase hat eine mehrdimensionale sortierte Karte
Ausgehend von den Grundlagen ist eine
Karte (auch bekannt als assoziatives Array ) eine abstrakte Sammlung von Schlüssel-Wert-Paaren, wobei Der Schlüssel ist einzigartig. Diese Definition ist für Ihr Verständnis von HBase von entscheidender Bedeutung, da das HBase-Datenmodell häufig auf unterschiedliche Weise beschrieben wird - oft unvollständig als ein spaltenorientiertes Geschäft. HBase ist im Grunde ein Schlüsselwert-Datenspeicher, in dem jeder Schlüssel eindeutig ist - dh er erscheint höchstens einmal im HBase-Datenspeicher. Zusätzlich ist die Karte sortiert und mehrdimensional. Die Schlüssel werden in HBase gespeichert und in einer lexikographischen Reihenfolge sortiert. Jeder Wert kann mehrere Versionen haben, wodurch das Datenmodell mehrdimensional wird. Standardmäßig werden Datenversionen mit einem Zeitstempel implementiert.