Bigtable
# Bigtable

Bigtable ist ein Hochleistungs-Datenbanksystem des US-amerikanischen Unternehmens Google Inc. Bigtable ist einer der Vorgänger von Spanner.

## Geschichte

Die Entwicklung von Bigtable begann 2004. Bigtable unterstützt das MapReduce-Verfahren und stellte die Grundlage von vielen Google-Produkten, wie etwa Google Maps, Google Bücher, YouTube oder Google Earth, dar. Besonderer Wert wurde auf Skalierbarkeit und Geschwindigkeit gelegt. Die Datenbank basiert deshalb auch auf einer nichtrelationalen Struktur.

## Technik

Charakteristisch für in Bigtable gespeicherte Daten ist, dass sehr häufig Datensätze hinzugefügt werden, vorhandene Datensätze aber sehr selten geändert werden. Eine Bigtable besteht grundlegend aus sehr vielen Zeilen, die durch einen Datensatzidentifikator benannt werden. Innerhalb einer Zeile können beliebig viele Spalten definiert werden. Im Gegensatz zu relationalen Datenbanken kann die Anzahl der Spalten für jede Zeile unterschiedlich groß sein. Lediglich die sogenannten Family Columns, die einen gleichen Datentyp (wie beispielsweise einen Link, der auf eine Seite verweist) beinhalten, müssen bei der Implementierung der Datenbank bekannt sein, können aber beliebig viele Instanzen pro Zeile enthalten.

Jede Tabelle ist mehrdimensional. Zur Versionierung erhält jeder Eintrag einen Zeitstempel. Mithilfe von Timestamps kann stets die neueste Version der Daten berücksichtigt werden, ohne ältere Daten zu bearbeiten oder zu löschen.

## Beispiel

Der Anbieter selbst beschreibt in einer Publikation ein Beispiel für die Verwendung von Bigtable durch die hauseigene Suchmaschine: Für jede zuvor durch einen Crawler gescannte neue Webseite wird eine Zeile in der entsprechenden Bigtable angelegt. Die erste Spalte enthält den ersten Inhalt (in HTML-Syntax) der Seite. Die Multidimensionalität entsteht durch spätere Versionen der gleichen Seite und den zugeordneten Zeitstempel (Timestamp). Die nachfolgenden Spalten entstammen alle der gleichen FamilyColumn „anchor“ und enthalten jeweils die URL einer anderen Seite, die auf die entsprechende Seite verlinkt. Somit ist die Anzahl der Spalten seitens des Anbieters nicht beschränkt.

