Zuhause Persönliche Finanzen ÜBergang von einem RDBMS-Modell zu HBase - Dummies

ÜBergang von einem RDBMS-Modell zu HBase - Dummies

Video: DJ Tipps #1 Übergang von House auf Rock 2024

Video: DJ Tipps #1 Übergang von House auf Rock 2024
Anonim

Wenn Sie mit der Entwurfsphase für Ihre Anwendung konfrontiert sind und glauben, dass HBase gut passt, dann sollten Sie Ihre Zeilenschlüssel und das Schema so gestalten, dass sie zum HBase-Datenmodell und zur Architektur passen. richtigen Ansatz. Manchmal ist es jedoch sinnvoll, eine ursprünglich für ein RDBMS entworfene Datenbank in HBase zu verschieben.

Ein gängiges Szenario, bei dem dieser Ansatz Sinn macht, ist eine MySQL-Datenbankinstanz, die an ihre Grenzen der Skalierbarkeit gestoßen ist. Es gibt Techniken, um eine MySQL-Instanz horizontal zu skalieren ( Sharding, ), aber dieser Prozess ist gewöhnlich umständlich und problematisch, weil MySQL ursprünglich nicht für Sharding entwickelt wurde.

Der Übergang vom relationalen Modell zum HBase-Modell ist eine relativ neue Disziplin. Es gibt jedoch bestimmte etablierte Denkmuster, die sich zu drei Schlüsselprinzipien zusammengeschlossen haben, die bei der Annäherung an einen Übergang zu beachten sind. Diese Prinzipien sind Denormalisierung, Duplikation, und intelligente Schlüssel (DDI) .

  • Denormalization: Das relationale Datenbankmodell ist abhängig von a) einem normalisierten Datenbankschema und b) verbindet Tabellen, um auf SQL-Operationen zu reagieren. Datenbank-Normalisierung ist eine Technik, die vor Datenverlust, Redundanz und anderen Anomalien schützt, wenn Daten aktualisiert und abgerufen werden.

    Es gibt eine Reihe von Regeln, die die Experten befolgen, um zu einem normalisierten Datenbankschema zu kommen (und die Datenbanknormalisierung ist eine ganze Studie selbst), aber der Prozess beinhaltet normalerweise das Aufteilen größerer Tabellen in kleinere Tabellen und das Definieren von Beziehungen. zwischen ihnen. Datenbank-Denormalisierung ist das Gegenteil von Normalisierung, wobei kleinere, spezifischere Tabellen zu größeren, allgemeineren Tabellen zusammengefügt werden.

    Dies ist ein übliches Muster beim Übergang zu HBase, da Joins nicht über Tabellen hinweg bereitgestellt werden und Verknüpfungen langsam sein können, da sie kostspielige Datenträgeroperationen erfordern. Der Schutz vor den Aktualisierungs- und Abrufanomalien ist jetzt die Aufgabe Ihrer HBase-Clientanwendung, da der durch die Normalisierung gewährte Schutz null und nichtig ist.

  • Duplizierung: Wenn Sie Ihr Datenbankschema denormalisieren, werden Sie wahrscheinlich die Daten duplizieren, da Sie dadurch kostspielige Lesevorgänge über mehrere Tabellen hinweg vermeiden können. Mach dir keine Sorgen über die zusätzliche Speicherung (natürlich). Sie können die automatische Skalierbarkeit von HBase zu Ihrem Vorteil nutzen.

    Beachten Sie jedoch, dass Ihre Client-Anwendung zusätzliche Arbeit benötigt, um die Daten zu duplizieren und sich zu erinnern, dass HBase nativ nur atomare Operationen auf Zeilenebene vorsieht (nicht mit der in HBASE-5229 JIRA beschriebenen Ausnahme). Tabelle.

  • Intelligente Schlüssel: Da die in HBase gespeicherten Daten nach Zeilenschlüssel sortiert sind und der Zeilenschlüssel der einzige vom System bereitgestellte Index ist, kann ein sorgfältiger intelligenter Entwurf des Zeilenschlüssels einen großen Unterschied ausmachen. Beispielsweise könnte Ihr Zeilenschlüssel eine Kombination aus einer Serviceauftragsnummer und der Kundennummer sein, die den Serviceauftrag aufgegeben hat.

    Mit diesem Zeilenschlüsselentwurf können Sie Daten suchen, die sich auf den Serviceauftrag beziehen, oder nach Daten suchen, die sich auf den Kunden beziehen und den gleichen Zeilenschlüssel in derselben Tabelle verwenden. Diese Technik wird für einige Abfragen schneller sein und kostspielige Tabellenverbindungen vermeiden.

Um diese speziellen Denkmuster zu verdeutlichen, nehmen Sie eine Tabelle mit den Kundenkontaktinformationen und platzieren Sie sie im Kontext einer typischen Serviceauftragsdatenbank. Die Abbildung zeigt Ihnen, wie ein normalisiertes Service-Order-Datenbankschema aussehen könnte.

Legen Sie gemäß den Regeln der RDBMS-Normalisierung die Tabelle mit den Kundenkontaktinformationen so an, dass sie von der Serviceauftragstabelle getrennt ist, um zu vermeiden, dass Kundendaten verloren gehen, wenn Serviceaufträge geschlossen und möglicherweise gelöscht werden. Gehen Sie für die Tabelle "Produkte" genauso vor, sodass neue Produkte unabhängig von Serviceaufträgen in die fiktive Unternehmensdatenbank aufgenommen werden können.

Durch die Verwendung von RDBMS-Joinoperationen unterstützt dieses Schema Abfragen, die die Anzahl der Serviceaufträge angeben, die für ein bestimmtes Produkt zusammen mit dem Standort des Kunden geöffnet werden, an dem das Produkt verwendet wird.

Das ist alles schön und gut, aber es ist ein Schema, das Sie mit RDBM verwenden würden. Wie überführen Sie dieses Schema in ein HBase-Schema? Die nächste Abbildung zeigt ein mögliches HBase-Schema - eines, das dem DDI-Entwurfsmuster folgt.

Die Tabelle mit den Kontaktdaten des Kunden wurde durch Eingabe des Kundennamens und der Kontaktinformationen anstelle der zuvor verwendeten Fremdschlüssel denormalisiert. Außerdem werden die Daten dupliziert, indem die Tabelle mit den Kundenkontaktinformationen unverändert beibehalten wird. Jetzt sind Verknüpfungen zwischen der Tabelle "Servicereihenfolge" und der Tabelle "Kundenkontaktinformationen" nicht erforderlich.

Zusätzlich wurde ein intelligenter Zeilenschlüsselentwurf verwendet, der die Produktnummer mit der Kundennummer kombiniert, um die Serviceauftragsnummer zu bilden (z. B. A100 | 00001). Mit diesem intelligenten Schlüssel kann die Serviceauftragstabelle wichtige Berichte über Produktmängel und Kunden, die aktuell Produktprobleme haben, bereitstellen.

Alle diese Abfragen können alle von HBase in einer atomaren Art und Weise auf Zeilenebene für die Anwendung unterstützt werden. Da Sie wissen, dass HBase Zeilenschlüssel ordnet und sie lexikografisch sortiert, kann Ihre Anwendung bei der Ausgabe von Scans für die Berichterstellung bestimmte fundierte Vermutungen über die Datenlokalität machen. (Alle Produktnummern der A * -Serie werden z. B. zusammen gespeichert.)

Die durch das HBase-Schema dargestellte Serviceauftragsdatenbank ist ein relativ einfaches Beispiel, zeigt jedoch, wie sich HBase in bestimmten Fällen mit der RDBMS-Welt überschneiden kann. und bieten einen signifikanten Wert. Wenn das fiktive Unternehmen Terabytes oder sogar Petabytes an Service-Call-Daten zum Speichern hat, würde HBase einen enormen Unterschied in Bezug auf Kosten, Zuverlässigkeit, Leistung und Skalierung ausmachen.

Sie können Ihr HBase-Schema für Serviceaufträge auf verschiedene Arten entwerfen. Zugegebenermaßen hängt das Design von den Abfragen ab, die unterstützt werden müssen, aber Sie können einige relationale Datenbanken in sehr leistungsfähige HBase-Anwendungen für die Produktionsanwendung überführen, solange Sie von einem soliden Verständnis der HBase-Architektur und des DDI-Entwurfsmusters ausgehen.

In diesem Beispiel wurde davon ausgegangen, dass Abfragen von einer Java-Anwendung ausgeführt wurden, die die HBase-Client-APIs oder möglicherweise eine andere Sprache mit Apache Thrift nutzt. Dieses Anwendungsmodell kann den Anforderungen gut entsprechen und bietet nützliche Leistungs- und Anpassungsoptionen für die fiktive Dienstfirma.

ÜBergang von einem RDBMS-Modell zu HBase - Dummies

Die Wahl des Herausgebers

Optimierung sozialer Medien: Anpassung von Inhalten an Specialty Channels - Dummies

Optimierung sozialer Medien: Anpassung von Inhalten an Specialty Channels - Dummies

Eine der besten Möglichkeiten, um Zusätzliche Meilenzahl von Ihren Sozialmedieninhalt ist, sie umzupacken und sie auf verschiedenen Kanälen freizugeben. Wenn Sie einen Blogbeitrag haben und den Beitrag direkt über Social Sharing bewerben, können Sie diesen Blogpost in eine herunterladbare PDF-Datei umwandeln. Wenn die ...

Social-Media-Optimierung: SMART Marketing - Dummies

Social-Media-Optimierung: SMART Marketing - Dummies

Wenn Sie Ihre Social Media-Ziele definiert haben, haben Sie Ihr Ziel identifiziert Zielgruppe und fand heraus, wo sie auf Social-Media-Kanälen zu finden sind, nutzte die Daten aus Analyse-Programmen, um die optimale Zeit zu bestimmen, um in sozialen Medien aktiv zu sein, und eine umfassende Social-Media-Verhaltenspolitik setzen Sie sind bereit, zu bewegen ...

Social Media Optimierung: Was Sie über Semantic Markup wissen sollten - Dummies

Social Media Optimierung: Was Sie über Semantic Markup wissen sollten - Dummies

Wenn Sie möchten Um mit Ihrer Social-Media-Optimierungsstrategie wirklich erfolgreich zu sein, müssen Sie etwas über semantisches Markup wissen. Einfach gesagt ist semantisches Markup ein standardisierter Weg, um Code zu schreiben, der eine Webseite für dumme Maschinen wie Suchmaschinen leicht verständlich macht. Es ist eine Möglichkeit, den Inhalt einer Webseite mit Anmerkungen zu versehen ...

Die Wahl des Herausgebers

Online-Community-Manager sollten ihre Ausbildung ausweiten - Dummies

Online-Community-Manager sollten ihre Ausbildung ausweiten - Dummies

Haben Sie keine Angst, etwas Neues zu lernen. Dies kann bedeuten, dass Sie Artikel über Ihre Branche, die Marke und das Online-Community-Management lesen. Dies kann bedeuten, dass Sie nach Bildung suchen, die es Ihnen ermöglicht, Ihre Community besser zu betreiben. Es schadet nie, grundlegendes Web- oder Blog-Design zu kennen und auf dem neuesten Stand der Technik zu bleiben. Außerdem ...

Online-Community-Manager sollten mit Beispiel führen - Dummies

Online-Community-Manager sollten mit Beispiel führen - Dummies

Ihre Community orientiert sich an Ihnen. Wenn du schwörst und nistest, werden die Mitglieder wissen, dass dieses Verhalten in Ordnung ist. Wenn Sie aber jeden Morgen fröhlich grüßen, folgen sie Ihrem Beispiel. Sogar Leute, die von Drama und Negativität angezogen werden, werden sich entweder an der guten Miene beteiligen, oder sie werden so müde ...

Online Community-Manager Bleiben Sie auf dem neuesten Stand der Trends - dummies

Online Community-Manager Bleiben Sie auf dem neuesten Stand der Trends - dummies

Ob es sich um Ihre Online-Community handelt oder nicht müssen Sie sich der Marktentwicklung bewusst sein. Was kaufen Leute? Wie kommunizieren sie online? Geben sie mehr oder weniger Geld aus? Welche Lebensmittel, Gadgets oder Moden sind rein oder raus? Um auf dem neuesten Stand der Trends zu bleiben, sollten Sie wissen, was und was so ist.

Die Wahl des Herausgebers

Kennenlernen der Aufgabenleiste in Outlook 2007 - dummies

Kennenlernen der Aufgabenleiste in Outlook 2007 - dummies

Ausblick 2007 eine neue Funktion namens To-Do-Leiste, die alle Dinge, die Sie tun müssen, zusammenfasst und sie in einem Bereich auf der rechten Seite des Outlook-Bildschirms anzeigt. Das Ziel der To-Do-Leiste ist es, Ihnen mitzuteilen, was Sie auf einen Blick tun müssen, anstatt ...

ÄNdern der Größe einer Notiz in Outlook 2013 - Hinweise für Dummies

ÄNdern der Größe einer Notiz in Outlook 2013 - Hinweise für Dummies

In Outlook 2013 befolgen alle Regeln dass andere Windows-Boxen folgen, also wenn Sie ein alter Hase beim Verschieben und Ändern der Größe von Boxen in Windows sind, werden Sie in Ordnung sein. Wenn Sie mit Windows und Dialogfeldern noch nicht vertraut sind, machen Sie sich keine Sorgen - Notizen lassen sich genauso einfach in der Größe ändern wie zum Schreiben und Lesen. Ändern ...

Kennenlernen von Ansichten in Outlook 2007 - Dummys

Kennenlernen von Ansichten in Outlook 2007 - Dummys

In Outlook 2007 verfügt jedes Outlook-Modul über eine eigene Auswahl von Ansichten. Jede Art von Ansicht ist so organisiert, dass ein bestimmtes Merkmal Ihrer Informationen auf den ersten Blick sichtbar wird. Sie können die Art ändern, wie Sie eine Ansicht anzeigen, indem Sie sie sortieren, filtern oder gruppieren. Sie können mit Ansichten nicht falsch gehen, weil Sie ...