Beobachtetes Signal · 26. Apr. 2026 · Technical Guide · Quelle: DEV Community · Relevanz: 2/5 · Sentiment: Positiv
PREWHERE-Optimierung für ReplacingMergeTree mit FINAL in ClickHouse
Dieser technische Beitrag erläutert, wie die PREWHERE-Optimierung von ClickHouse mit der ReplacingMergeTree-Engine und dem FINAL-Keyword interagiert. PREWHERE kann die I/O-Last drastisch reduzieren, indem Daten gefiltert werden, bevor Nicht-Filter-Spalten gelesen werden. ClickHouse deaktiviert jedoch die automatische PREWHERE-Verschiebung bei Verwendung von FINAL, da FINAL eine Deduplizierung zur Lesezeit auslöst und ein vorab angewendetes PREWHERE die überlebende Zeile verändern kann. Der Beitrag demonstriert dieses Risiko an einem konkreten Beispiel und nennt eine einfache Faustregel: Das Verschieben von ORDER BY-Spalten (dem Deduplizierungsschlüssel) in PREWHERE ist sicher, das Verschieben anderer Spalten hingegen nicht. Der Autor empfiehlt, eine bestehende ClickHouse-Diskussion zu unterstützen, die eine automatische PREWHERE-Anwendung für ORDER BY-Spalten bei Verwendung von FINAL vorschlägt.
Praktische technische Anleitung zur ClickHouse-Abfrageoptimierung, die I/O-Kosten signifikant senken und die Performance von Analytics-Abfragen verbessern kann, jedoch eher eine plattformspezifische Best Practice als branchenverändernde News darstellt.
Marktsignale zu ClickHouse in Echtzeit verfolgen
Polaris7 erfasst behördliche Registrierungen, Primärquellen, Führungswechsel und Deal-Aktivitäten rund um die Uhr. Erstellen Sie Ihren kostenlosen Explorer-Workspace, um automatisierte Executive Briefings zu erhalten.
Wichtigste Kernpunkte & Evidenz
- PREWHERE reduziert die I/O-Last durch das Filtern von Zeilen vor dem Lesen von Nicht-Filter-Spalten und verbessert so die Abfrageleistung in ClickHouse.
- ClickHouse deaktiviert die automatische PREWHERE-Optimierung für Abfragen mit dem FINAL-Keyword, um fehlerhafte Ergebnisse durch Vorab-Filtern zu verhindern.
- Das Verschieben von Spalten, die Teil der ORDER BY-Klausel sind, ist bei ReplacingMergeTree + FINAL sicher; das Verschieben anderer Spalten kann zu inkorrekten Deduplizierungsergebnissen führen.
- Der Artikel enthält ein SQL-Beispiel, das zeigt, wie PREWHERE mit FINAL bei Filtern auf Nicht-ORDER-BY-Spalten zu falschen Zeilen führen kann.
- Der Autor verlinkt auf eine offene ClickHouse-Diskussion zur automatischen PREWHERE-Verschiebung von ORDER BY-Spalten in FINAL-Abfragen (github.com/ClickHouse/ClickHouse/discussions/95595).
Verknüpfte Unternehmen
3 verknüpfte UnternehmenOntologie & Marktkonzepte
Verwandte Marktsignale & Trends
Aktuelle verifizierte Unternehmensentwicklungen und Deal-Aktivitäten in diesem Marktsegment.
Warum ClickHouse ReplacingMergeTree Zeilen verwirft
Ein technischer Leitfaden erläutert, warum ClickHouse bei der Verwendung der ReplacingMergeTree-Engine scheinbar lautlos Zeilen löscht. ReplacingMergeTree dedupliziert Zeilen anhand eines ORDER BY-Schlüssels und einer Versionsspalte, wobei die Zeile mit der höchsten Version gewinnt. Duplikate innerhalb desselben INSERT-Blocks werden sofort aufgelöst, während Duplikate über separate INSERTs hinweg sichtbar bleiben, bis Hintergrund-Part-Merges ausgeführt werden oder ein explizites OPTIMIZE TABLE ... FINAL erfolgt. SELECT ... FINAL wendet die Deduplizierung zwar zur Lesezeit an, ist jedoch rechenintensiv. Unabhängig davon führt ClickHouse eine INSERT-Block-Deduplizierung mittels Prüfsummen durch, wodurch identische INSERT-Blöcke übersprungen werden. Der Artikel enthält ein Beispieltabellenschema, SQL-Beispiele und empfohlene Befehle, um Merges zu erzwingen oder deduplizierte Daten auszulesen.
ClickHouse JOINs im Wandel: Eine PR-Analyse von 2022 bis 2026
Dieser Artikel analysiert die Evolution des Join-Subsystems von ClickHouse von 2022 bis Anfang 2026 anhand von über 50 zusammengeführten GitHub Pull Requests, Changelogs und Release-Blogs. Der Autor dokumentiert den Wandel von einem speichergebundenen Hash Join zu einer ausgereiften Join-Engine mit sinnvollen Standardeinstellungen. Zu den wichtigsten Neuerungen gehören sechs Join-Algorithmen, Parallel Hash Join als Standard, Grace Hash für datenträgerbasiertes Caching, kostenbasierte globale Join-Umordnung, Äquivalenzmengen-Prädikat-Pushdown und standardmäßig aktivierte Runtime Bloom Filter. Die Analyse nennt konkrete Pull Requests und gemessene Geschwindigkeitssteigerungen, darunter 180x durch Prädikat-Pushdown, 1.450x bei TPC-H SF100 durch Umordnung und 2,1x durch Runtime-Filter. Es wird betont, dass diese leistungsstarken Funktionen nun produktive Standards und keine experimentellen Features mehr sind, was die Verarbeitungsgeschwindigkeit in datenintensiven Architekturen massiv erhöht.
ClickHouse versus PostgreSQL: Detaillierter Vergleich von OLAP und OLTP
Ein von Entwicklern verfasster technischer Beitrag vergleicht ClickHouse und PostgreSQL im Rahmen einer Artikelserie. Der Artikel erläutert, dass PostgreSQL eine zeilenorientierte OLTP-Datenbank ist, die für transaktionale Workloads mit häufigen Einfügungen, Aktualisierungen und Löschungen sowie starken Transaktionsgarantien optimiert ist. Im Gegensatz dazu handelt es sich bei ClickHouse um eine spaltenorientierte OLAP-Datenbank, die für groß angelegte Analysen, schnelle Aggregationen sowie Zeitreihen- und Event-Analysen konzipiert ist. Der Beitrag skizziert Unterschiede bei Speicherung und Komprimierung, Skalierungsüberlegungen sowie gängige Bereitstellungsmuster, bei denen Unternehmen PostgreSQL für operative Daten und ClickHouse für analytische Berichts-Workloads einsetzen. Das Ziel ist es, die Datenbankauswahl anhand von Workload-Anforderungen statt nach Beliebtheit oder Benchmarks zu leiten.
Marktsignale & Strategische Shifts in Echtzeit verfolgen
Erstellen Sie benutzerdefinierte Watchlists, um automatisierte, evidenzbasierte Executive Briefings zu erhalten, sobald wesentliche Signale oder Marktverschiebungen auftreten.
