Ein Aggregat ist eine Funktion, keine Summe

An Aggregate Is a Function, Not a Sum

Ein Team speichert Kassenbons aus Kafka in ClickHouse und scheitert viermal an Berichten über Schichten, Stunden und Tage: Duplikate werden doppelt gezählt, Neuberechnungen lesen 46 Millionen Zeilen für 508.000, ein Schlüssel-Cache sprengt den Speicher, und Berechnen beim Lesen kostet 3,5 Milliarden Zeilen pro Bericht. Die Lösung: Jeder Bon gehört zu genau einer Zelle, deren Wert sich jederzeit aus den Dokumenten neu berechnen lässt – Duplikate kollabieren, späte Bons werden nachgezogen, und Berichte sind nur noch Additionen über Zellen.

Jeder Wiederholungsversuch schrieb die Zeilen, bevor er scheiterte, sodass jeder Retry eine weitere Kopie speicherte. Dokumente landeten mehrfach, und die Deduplizierung erzeugte selbst Duplikate.

Mehr von diesem Tag

2026-11-10