Mobile-Menu

Teilung einer Datenbank Was ist Sharding?

Von Dipl.-Ing. (FH) Stefan Luber 2 min Lesedauer

Anbieter zum Thema

Sharding teilt den Datenbestand einer Datenbank in mehrere Teile auf und ermöglicht die Verteilung der Datenbank auf mehrere Serverinstanzen. Mithilfe dieser Skalierungstechnik lassen sich große, verteilte Datenbanken mit kurzen Datenabrufzeiten realisieren. Das Sharding kann über verschiedene Arten automatisiert oder benutzerdefiniert, beispielsweise schlüsselbasiert, bereichsbasiert oder verzeichnisbasiert, stattfinden.

Die wichtigsten IT-Fachbegriffe verständlich erklärt.(Bild:  © aga7ta - Fotolia)
Die wichtigsten IT-Fachbegriffe verständlich erklärt.
(Bild: © aga7ta - Fotolia)

Der Begriff Sharding leitet sich vom englischen Wort shard für „Scherbe“ oder „Glassplitter“ ab. Sharding ist eine Methode, mit der sich der Datenbestand großer Datenbanken aufteilen und auf mehreren Servern verteilt speichern, verarbeiten und bereithalten lässt. Die einzelnen Shards werden jeweils von eigenen Serverinstanzen verwaltet. Es handelt sich um eine Skalierungstechnik, mit der sich große, verteilte Datenbanken mit kurzen Datenabrufzeiten realisieren lassen. Viele Benutzer können trotz der Größe der Datenbank parallel mit hoher Performance mit den Daten arbeiten.

Sharding findet entweder automatisiert und vom Datenbanksystem selbst verwaltet oder benutzerdefiniert über verschiedene Arten, beispielsweise schlüsselbasiert, bereichsbasiert oder verzeichnisbasiert, statt.

Prinzipielle Funktionsweise des Datenbank-Shardings

Sharding teilt den Datenbestand beziehungsweise die Tabellen einer Datenbank nach bestimmten Kriterien auf. Es entstehen logische, voneinander unabhängig Shards, die sich verteilt auf verschiedenen Servern speichern, verarbeiten und bereithalten lassen. Die Server, auf welche die logischen Shards verlagert werden, werden als physische Shards (Datenbankknoten) bezeichnet.

Ein physischer Shard kann viele logische Shards beherbergen. Die physischen Shards arbeiten voneinander unabhängig und sind parallel ansprechbar. Logische Shards sind zwar auf separaten Knoten verteilt, verwenden aber alle das grundlegende Schema oder Design der ursprünglichen Datenbank. Datenverteilung und Datenspeicherung sowie der Zugriff auf die Shards werden von einer Software-Schicht koordiniert und verwaltet. Bei der Aufteilung in logische Shards unterscheidet man verschiedene Methoden:

Schlüsselbasiertes Sharding weist per mathematischer Formel den Datenbankinhalten individuelle Hash-Werte zu und sortiert sie in logische Shards. Bereichsbasiertes Sharding nimmt die Aufteilung der Daten in Shards abhängig von Wertebereichen vor. Beispielsweise könnte die Aufteilung nach Anfangsbuchstaben von Namen stattfinden. Das sogenannte verzeichnisbasierte Sharding fasst logisch zusammengehörige Daten in einem logischen Shard zusammen. Geo-Sharding selektiert die Shards nach geografischen Standorten.

Vor- und Nachteile des Datenbank-Shardings

Datenbank-Sharding bietet unter anderem diese Vorteile:

  • ermöglicht die Skalierung von Datenbanken sowohl hinsichtlich der Datenmenge als auch des Transaktionsvolumens in großem Umfang,
  • verteilt die Arbeitslast auf viele Server und sorgt für kurze Abfrage- und Antwortzeiten,
  • ermöglicht die parallele Arbeit vieler Benutzer mit hoher Performance,
  • erlaubt eine flexible Aufteilung der Daten nach verschiedenen Methoden,
  • verringert die Auswirkungen bei Ausfällen einzelner Server (der Ausfall eines einzelnen Servers führt nicht zum Komplettausfall der Datenbank),
  • ermöglicht das Hinzufügen neuer physischer Shards, ohne Auswirkung auf das Gesamtsystem oder die Notwendigkeit eines Wartungsfensters.

Als Nachteile des Shardings lassen sich aufführen:

  • erhöht die Komplexität des Datenbanksystems,
  • falsche Sharding-Methode kann zu ungünstiger Verteilung der Daten und Leistungseinbußen führen,
  • Risiko der Entstehung ungewollter Datenbank-Hotspots mit einem Großteil des Datenbestands.

(ID:49640776)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Data-Storage und -Management

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung