Anzeige
Anzeige
Für Links auf dieser Seite erhält GIGA ggf. eine Provision vom Händler, z.B. für mit oder blauer Unterstreichung gekennzeichnete. Mehr Infos.
  1. GIGA
  2. Tech
  3. Apps & Downloads
  4. Sharding – das Aufteilen von Datenbanken einfach erklärt

Sharding – das Aufteilen von Datenbanken einfach erklärt

© dlohner | pixabay.com
Anzeige

Datenbanken können riesig sein. Das Suchen in einer Datenbank dauert viel zu lange, daher wird sie aufgeteilt. Wir erklären euch, wie die Methode Sharding hierfür funktioniert.

Der Begriff „shard“ leitet sich aus dem Englischen ab und bedeutet „Scherbe“ oder, in der IT-Welt passender ausgedrückt, „Fragment“. Aus Fragmenten besteht somit die Datenbank, welche eine Tabelle aus horizontalen beziehungsweise waagerechten Zeilen und vertikalen beziehungsweise senkrechten Spalten beinhaltet. Die Datensätze in der Tabelle sind kategorisiert: Pro Spalte gibt es Einträge, die zu einer bestimmten Kategorie und gegebenenfalls dessen Unterkategorie gehören.

Anzeige

In Excel könnt ihr durch ein paar einfache Tricks eure Tabellen ebenfalls übersichtlicher gestalten. Mehr dazu verraten wir euch im Video.

Excel: Gruppieren und Gliedern von Tabellen (Tutorial) Abonniere uns
auf YouTube

Warum muss die Datenbank aufgeteilt werden?

Datenbanken können groß werden, zu groß für den nahtlosen Arbeitsprozess. Um Ausbremsungen entgegenzuwirken, besteht die Möglichkeit den Prozessor, Arbeitsspeicher und die Festplatten auf schnellere und leistungsvollere Modelle aufzustocken – genannt: Skalierung. Doch auch diese Hardware stößt an ihre Grenzen. Nicht nur aus Speicherplatzmangel oder weil die Lesegeschwindigkeit von Tabellen ein bestimmtes Limit hat, sondern vor Allem, weil es nicht sinnvoll ist bei neuen Suchvorgängen die gesamte Tabelle im Ganzen zu scannen. Aus diesem Grund teilt man diese in Kategorien mithilfe von sogenannten Shard-Schlüsseln auf, vergleichbar mit Tags oder Schlüsselwörtern, um die Datensätze zu filtern. Die mit Shard-Schlüsseln „gefilterten“ Datensätze werden dann in separate Tabellen aufgeteilt, um diese parallel anstatt nacheinander zu durchsuchen. Ab hier beginnt der Zauber.

Anzeige

Wie funktioniert Sharding?

Einzelne mit Shard-Schlüsseln gekennzeichnete Tabellen werden nun voneinander unabhängig gemacht, also partitioniert. Partitionen sind auf Festplatten für das Betriebssystem wie Windows oder Linux gedacht, aber es gibt auch logische Partitionen, die von Software-Anwendungen erstellt und verwaltet werden, hier zum Beispiel explizit für Datenbanken beziehungsweise deren Shards. Diese Shards sind logische Shards, welche größtenteils auf weitere Festplatten innerhalb eines Servers, auf andere Server oder Computer verlagert werden. Diese Server und PCs, auf die die logischen Shards verlagert werden, bezeichnet man als physische Shards oder Datenbankknoten. Diese bleiben in Betrieb und erreichbar, sodass das Programm mit jeden logischen Shard auf jedem physischen Shard in Verbindung bleibt. Es können mehrere logische Shards auf einem physischen Shard vorhanden sein. Genauso können mehrere Suchvorgänge gleichzeitig stattfinden und durch Filterung viele unnötige Tabellen ausgelassen werden, um gezielt nach einem bestimmten Datensatz zu suchen, während bei den restlichen Datenbankknoten Ressourcen gespart werden.

Anzeige

Der externe Inhalt kann nicht angezeigt werden.

Sharding in der Praxis: Methoden

Zur Veranschaulichung nutzen wir eine Excel-Tabelle mit sensiblen Daten und zeigen euch die vier Methoden zum effektiven Sharding. Für jeden Anwendungsfall gibt es eine eigene Methode. Die Shard-Schlüssel werden entsprechenden Methoden zugewiesen. Die Datensätze innerhalb eines Shard-Schlüssels werden partitioniert und als lokale Shards zu den entsprechenden physischen Shards zugeordnet. Jeweils pro Methode wird beispielhaft anhand der Farben kenntlich gemacht nach welchen Kriterien die Shards aus der zentralen Tabelle ausgelagert werden. Die ursprüngliche Tabelle behält, je nach Methode, die Verknüpfungen zu den Shards, also die Datenbank-Anwendung kümmert sich darum.

Tabelle zum Sharding
Diese Tabelle mit 10 Datensätzen wird aufgeteilt. Jeder Datensatz entspricht einer Zeile. (© Michael Pinneker)

Bereichbasiertes Sharding

Auch „Dynamisches Sharding“ genannt“: hier wird ein Wertebereich zugewiesen. Zum Beispiel der erste Buchstabe eines Namens wird in alphabetische Reihenfolge gebracht. Diese wird manuell festgelegt.

Tabelle: Bereichbasiertes Sharding
Namen werden unterteilt in lokale Shards. (© Michael Pinneker)

Gehashtes Sharding

„Hashen“ bedeutet so viel wie mittels einer mathematischen Formel „codieren“. Die Formel wandelt in jeder Zeile den Inhalt in einen individuellen Hash-Wert und sortiert diesen einem logischen Shard zu, der wiederum zu einem physischen Shard beziehungsweise Datenknoten gelangt.

Gehashtes Sharding
Farblich kenntlich gemacht: Unterteilung in zwei logische Shards, indem die berechneten Hashes anstatt der kompletten Datensätze gespeichert werden. (© Michael Pinneker)

Verzeichnis-Sharding

Hier werden vereinfacht gesagt (Teil-)Einträge einer Kategorie als Shard-Schlüssel in eine Nachschlagtabelle übertragen. Anhand dieser Tabelle wird der entsprechende Datensatz gesucht. Diese Methode erfordert eine stets aktuell gehaltene Nachschlagtabelle.

Tabelle: Verzeichnis-Sharding
Als Shard-Schlüssel wird der Inhalt einer oder mehrerer Kategorien in eine oder mehrere Nachschlagtabellen übertragen und somit verknüpft. (© Michael Pinneker)

Geo-Sharding

Bei dieser Methode wird nach dem geografischen Standort selektiert. Der am nächsten gelegene Server für die kürzeste Wartezeit wird gewählt. Auch für Lieferdienste ist dieses Feature ganz praktisch. Shard-Schlüssel werden nach Wohnorten gruppiert und so die Suche eingeschränkt. Die restlichen Wohnorte sind demnach irrelevant und dessen logische Shards können währenddessen ruhen. 

Anzeige
Tabelle: Geo-Sharding
Falls vorhanden, so befinden sich Kundendaten einer Stadt in einem physischen Shard derselben Stadt. Der Server ist dementsprechend gegebenenfalls in jener Stadt vorhanden. (© Michael Pinneker)

Sharding-Methoden: Vorteile und Nachteile

Bereichbasiertes Sharding

  • Vorteil: Einfach zu implementieren
  • Nachteil: Überlastung eines einzelnen Datenknotens

Gehashtes Sharding

  • Vorteil: Gleichmäßige Datenverteilung
  • Nachteile: Zuordnung nicht nach Inhalten und Bedeutung; Kommen weitere Computer hinzu, besteht Schwierigkeit bei Neuzuweisung von Hashes

Verzeichnis-Sharding

  • Vorteile: Flexibel erweiterbar; Aussagekräftige Darstellung der Datenbank
  • Nachteil: Fehler bei fehlenden Informationen in Nachschlagtabelle

Geo-Sharding

  • Vorteil: Kurze Wege und Zeiten für Anfragen von Anwendungen und Informationen
  • Nachteil: Ungleichmäßige Auslastung möglich

Hat dir der Beitrag gefallen? Folge uns auf WhatsApp und Google News und verpasse keine Neuigkeit rund um Technik, Games und Entertainment.

Anzeige