Inhaltsverzeichnis:
Video: How to Export Power BI To Excel (5 Different Ways) 2024
Ein Bigtable hat Tabellen wie ein RDBMS, aber im Gegensatz zu einem RDBMS haben Bigtable-Tabellen im Allgemeinen keine Beziehungen zu anderen Tabellen. Stattdessen werden komplexe Daten in einer einzigen Tabelle gruppiert.
Eine Tabelle in einer Bigtable besteht aus Gruppen von Spalten, Spaltenfamilien genannt, und einem Zeilenschlüssel. Diese zusammen ermöglichen ein schnelles Nachschlagen eines einzelnen Datensatzes von Daten, die in einem Bigtable gespeichert sind.
Verwenden der Zeilentasten
Jede Zeile muss eindeutig identifiziert werden. Hier kommt ein Zeilenschlüssel ins Spiel. Ein Zeilenschlüssel ist eine eindeutige Zeichenfolge, die verwendet wird, um auf einen einzelnen Datensatz in einem Bigtable zu verweisen. Sie können sich diese als einen Primärschlüssel oder eine Sozialversicherungsnummer für Bigtables vorstellen.
Viele Bigtables bieten keine guten sekundären Indizes (Indizes über Spaltenwerte selbst). Daher ist das Entwerfen eines Zeilenschlüssels, der ein schnelles Nachschlagen von Datensätzen ermöglicht, entscheidend für die Gewährleistung einer guten Leistung.
Ein gut gestalteter Zeilenschlüssel ermöglicht es, dass ein Datensatz lokalisiert wird, ohne dass Ihre Anwendung gelesen werden muss, und die Anwendbarkeit jedes Datensatzes selbst prüfen. Es ist schneller für die Datenbank, dies zu tun.
Zeilenschlüssel werden auch von den meisten Bigtables verwendet, um Datensätze gleichmäßig zwischen Servern zu verteilen. Ein schlecht ausgelegter Zeilenschlüssel führt dazu, dass ein Server in Ihrem Datenbankcluster mehr Ladevorgänge (Anforderungen) als die anderen Server erhält, wodurch die vom Benutzer sichtbare Leistung des gesamten Datenbankdiensts verlangsamt wird.
Spaltenfamilien erstellen
Eine Spaltenfamilie ist eine logische Gruppierung von Spalten. Mit Bigtables können Sie zwar die Anzahl der Spalten ändern, die zur Laufzeit in einer Tabellendefinition unterstützt werden, Sie müssen jedoch die zulässigen Spaltenfamilien im Voraus angeben. Diese können normalerweise nicht geändert werden, ohne den Server offline zu schalten. Beispielsweise kann eine Adressbuchanwendung eine Familie für die Heimatadresse verwenden. Dies könnte die Spalten Adresszeile 1, Adresszeile 2, Bereich, Stadt, Landkreis, Bundesland, Land und Postleitzahl enthalten.
Nicht alle Adressen haben Daten in allen Feldern. Beispielsweise sind Adresszeile 2, Bereich und Grafschaft möglicherweise leer. Auf der anderen Seite haben Sie möglicherweise nur Daten in Adresszeile 1 und Postleitzahl. Diese beiden Beispiele sind in der gleichen Hausadressen-Spaltenfamilie in Ordnung.
Eine unterschiedliche Anzahl von Spalten hat ihre Nachteile. Wenn Sie zum Beispiel HBase alle Spalten innerhalb einer bestimmten Familie auflisten wollen, müssen Sie alle Zeilen iterieren, um die vollständige Liste der Spalten zu erhalten! Daher müssen Sie Ihr Datenmodell in Ihrer Anwendung mit einem Bigtable-Klon verfolgen, um diese Leistungseinbußen zu vermeiden.
Verwenden von Zeitstempeln
Jeder Wert innerhalb einer Spalte kann normalerweise verschiedene Versionen speichern.Diese -Versionen werden mit einem Zeitstempelwert referenziert.
Werte werden niemals geändert - ein anderer Wert wird mit einem anderen Zeitstempel hinzugefügt. Um einen Wert zu löschen, fügen Sie dem Wert eine Tombstone-Markierung hinzu, die im Grunde anzeigt, dass der Wert zu einem bestimmten Zeitpunkt gelöscht wird.
Alle Werte für den gleichen Zeilenschlüssel und die gleiche Spaltenfamilie werden zusammen gespeichert. Dies bedeutet, dass alle Suchvorgänge oder Versionsentscheidungen an einem einzigen Ort vorgenommen werden, an dem sich alle relevanten Daten befinden.
Umgang mit Binärwerten
In Bigtables sind Werte einfach Byte-Arrays. Zum Beispiel können sie Text, Zahlen oder sogar Bilder sein. Was Sie in ihnen speichern, bleibt Ihnen überlassen.
Nur wenige Bigtable-Klone unterstützen die Wertetypisierung. Mit Hypertable können Sie beispielsweise Typen festlegen und sekundäre Indizes zu Werten hinzufügen. Cassandra erlaubt Ihnen auch, Typen für Werte zu definieren, aber seine Bereichsabfrageindizes (kleiner als und größer als Operationen für jeden Datentyp) sind auf die Beschleunigung von Schlüsselsuchoperationen, nicht von Wertvergleichsoperationen, beschränkt.