- Google BigTable
-
BigTable ist ein proprietäres Hochleistungs-Datenbanksystem des Unternehmens Google. Es baut unter anderem auf dem Google File System (GFS) und Chubby Lock Service auf. Es wird zurzeit beispielsweise beim Platform-as-a-Service-Dienst (PaaS) Google App Engine genutzt.
Inhaltsverzeichnis
Geschichte
Die Entwicklung von BigTable begann 2004. Es wird mittlerweile von vielen Google-Produkten, wie etwa MapReduce, Google Reader, Google Maps, Google Bücher, YouTube oder Google Earth, genutzt. Da BigTable-Datenbanken sehr groß werden können, wurde besonderer Wert auf Skalierbarkeit (durch Unterstützung sehr großer Computercluster) und Geschwindigkeit (durch eine nichtrelationale Struktur) gelegt.
Design
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 können die 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.[1]
Jede Tabelle ist mehrdimensional. Zur Versionierung erhält jeder Eintrag einen Timestamp. Mithilfe von Timestamps kann stets die neueste Version der Daten berücksichtigt werden, ohne ältere Daten zu bearbeiten oder zu löschen.
Beispiel
Google selbst beschreibt in einer Publikation[1] ein Beispiel für die Verwendung von BigTable durch die Google-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 enthält jeweils die URL einer anderen Seite, die auf die entsprechende Seite verlinkt. Somit kann die Anzahl der Spalten theoretisch unendlich groß werden. Die gesammelten Links sind eine Grundlage des PageRank-Verfahrens.
Einzelnachweise
Wikimedia Foundation.