MechanikKapitel II · Daten · Baustein 6 von 9

Partitionierung

Partitionierung verteilt Datensätze anhand einer Regel auf getrennte Einheiten. Der Schlüssel beeinflusst Lastverteilung und mögliche lokale Abfragen.

  1. PartitionsschlüsselDas Feld, nach dem verteilt wird.
  2. Fan-outEine Abfrage muss alle Partitionen fragen.
  3. HotspotEine Partition trägt fast die ganze Last.

Einordnung

Warum das wichtig ist

Wächst das Bestellvolumen, trägt eine einzelne Einheit die Last nicht mehr. Verteilung hilft nur, wenn der Schlüssel zur häufigsten Abfrage passt. Im Englischen heißt das Sharding. Identische Kopien sind Replikation.

Dieser Baustein erklärt horizontale Datenverteilung. Für identische Datenkopien siehe Replikation.

Auf einen Blick · Daten auf Shards verteilt

Ein Router leitet jede Anfrage anhand des Schlüssels an genau einen Shard weiter; jeder Shard hält nur einen Teil der Daten.
Shop-Beispiel · Schlüssel wählen

Welcher Schlüssel verteilt die Bestellungen?

Variante: Bei stark gewachsenem Bestellvolumen verteilt der Shop Bestellungen nach Kunden-ID auf drei Partitionen. Die übrigen Module bleiben im modularen Monolithen.

So liest du das Bild

  1. Partitionsschlüssel Die Auswahl Kunden-ID, Bestell-ID oder Bestelldatum.
  2. Fan-out Apricot markierte Abfragen berühren alle drei Partitionen.
  3. Hotspot Beim Bestelldatum landen alle neuen Bestellungen in einer Partition.
  • Alle Bestellungen von K-171 von 3 berührte Partitionen · eine Partition genügt

  • Bestellung B-1042 lesen3 von 3 berührte Partitionen · Fan-out über alle Partitionen

  • Alle Bestellungen von heute3 von 3 berührte Partitionen · Fan-out über alle Partitionen

Kein Schlüssel macht alle Abfragen billig. Wähle ihn nach der häufigsten Abfrage und baue für seltene Abfragen eine Lesestruktur.

Werte illustrativ

Wähle einen Schlüssel; je Abfrage siehst du, wie viele Partitionen sie berührt (Werte illustrativ).

Nutzen & Grenzen

Hilft, wenn

  • Partitionierung verteilt Datenbestand und Arbeit, sobald Volumen oder Schreiblast die Kapazität einer Einheit übersteigen.
  • Ein stabiler Abfrageschlüssel lenkt Anfragen gezielt an die zuständige Partition.
  • Eine geordnete Bereichsaufteilung unterstützt Archivierung und gezielte Abfragen entlang dieses Bereichs.

Grenzen

  • Ein ungleich verteilender Schlüssel erzeugt einen Hotspot: Eine Partition ist überlastet, die anderen bleiben ungenutzt.
  • Abfragen ohne den Schlüssel fragen alle Partitionen. Für sie hilft eine eigene Lesestruktur, etwa mit CQRS.
  • Wer den Schlüssel später wechselt, verschiebt die Daten: Das ist eine Datenmigration mit eigenem Aufwand.

In der Praxis

  1. Wähle einen Schlüssel anhand typischer Zugriffe und erwarteter Verteilung. Prüfe, welche Operationen damit eine Partition gezielt erreichen und welche mehrere Einheiten benötigen.
  2. Simuliere Last- und Schlüsselverteilung mit realistischen Größenordnungen. Suche Hotspots und dokumentiere, wie neue Partitionen oder Schlüsselwechsel migriert werden.
  3. Miss Kosten übergreifender Abfragen und sichere Umzüge mit Kontrollwerten. Replikation verteilt Kopien; Performance ordnet Messgrößen ein.
Ausführliche Erklärung lesen

Partitionierung ordnet verschiedene Datensätze anhand eines Schlüssels auf getrennte Datenbereiche oder Knoten. Hash- und Bereichsaufteilung verteilen Schlüssel beziehungsweise halten zusammenhängende Werte gruppiert. Der Schlüssel beeinflusst damit Lastverteilung und Reichweite typischer Abfragen.

Zugriffe mit bekanntem Schlüssel können eine Partition gezielt erreichen; andere Abfragen benötigen Fan-out oder zusätzliche Sichten. Ungleichmäßige Schlüsselverteilungen erzeugen Hotspots. Umzüge, Wachstum und Schlüsseländerungen verlangen ein kontrolliertes Migrationsverfahren.

Replikation vervielfältigt Daten zur Verfügbarkeit oder Leselast; Partitionierung teilt den Datenbestand auf. Performance hilft, Schlüsselwirkung und Engpässe zu messen.

Im englischen Sprachgebrauch heißt horizontale Partitionierung oft Sharding.

Selbst prüfen

Teste dich in drei Stufen

  1. AblesenIm Bild nachsehen

    Wie viele Partitionen berührt „Alle Bestellungen von heute“ bei der Kunden-ID, und wie viele beim Bestelldatum?

    Lösung mit Begründung ansehen

    Bei der Kunden-ID alle drei (Fan-out), beim Bestelldatum nur eine.

  2. AnwendenAuf eine neue Lage übertragen

    Der Kundenservice liest fast nur die Bestellungen einzelner Kunden, etwa von K-42. Welchen Schlüssel wählst du?

    Lösung mit Begründung ansehen

    Die Kunden-ID: Der Router findet die Partition von K-42 direkt, und die Abfrage berührt nur eine Partition.

  3. BewertenEine Alternative abwägen

    Ist das Bestelldatum ein guter Schlüssel, weil der Tagesbericht dann nur eine Partition berührt? Wie wägst du ab?

    Lösung mit Begründung ansehen

    Der Tagesbericht wird billig, aber alle Schreibzugriffe des Tages treffen eine Partition (Hotspot). Empfehlung: Kunden-ID als Schlüssel, den Tagesbericht über eine Lesestruktur bedienen.

Weiter im Lernpfad

Als Nächstes in Daten & Zustand: Caching.