Daten & Dokumente

Polars 2.0 bringt Out-of-Core-Verarbeitung und schnellere SQL-Abfragen

Polars 2.0 aktiviert standardmäßig die Auslagerung auf die Festplatte (Spill-to-Disk) und übertrifft DuckDB in SQL-Benchmarks, wobei es strengere Typsicherheit für KI-Workflows bietet.

Ein metallischer Datenwürfel, der sich in Blöcke aufspaltet, mit leuchtenden Schaltkreislinien.
Für diesen Artikel generierte Illustration

Automatisch aus dem englischen Original übersetzt.

Das Polars-Team hat Version 2.0 seiner Datenverarbeitungsbibliothek veröffentlicht. Dies markiert einen bedeutenden Wandel darin, wie die Engine mit Speicher und SQL-Workloads umgeht. Das am 6. Oktober 2026 veröffentlichte Major-Update führt Out-of-Core-Verarbeitung als Standardfunktion ein und positioniert Polars als Spitzenreiter in standardmäßigen SQL-Benchmarks gegen Wettbewerber wie DuckDB und DataFusion.

Was passiert ist

Dieses Release konzentriert sich auf Resilienz und Leistungsfähigkeit, anstatt nur neue Funktionen hinzuzufügen. Die wirkungsvollste Änderung besteht darin, dass der Aufruf von collect auf einem LazyFrame nun standardmäßig die Streaming-Engine nutzt. Diese Umstellung ermöglicht es Polars, Datensätze zu verarbeiten, die größer sind als der verfügbare RAM, indem temporäre Daten auf die Festplatte ausgelagert werden. Der Prozess der Auslagerung beginnt, wenn die Speichernutzung etwa 80 % des verfügbaren RAM erreicht, bei einem Standard-Festplattenbudget von 64 GB. Derzeit unterstützen Operationen wie Sortierung, Fensterfunktionen und viele Ausdrücke dieses Out-of-Core-Verhalten; Joins und Group-by-Operationen sind für zukünftige Updates geplant.

Da die Streaming-Engine für Operationen wie join, group_by und unpivot keine Zeilenreihenfolge garantiert, erforderte diese Änderung ein Major-Version-Update. Benutzer, die von einer spezifischen Zeilenreihenfolge abhängen, müssen nun explizit maintain_order=True setzen. Dieses Standardverhalten zielt darauf ab, Polars robuster für gelegentliche Datenpraktiker zu machen, die mit speicherintensiven Workloads arbeiten, und verhindert Abstürze, die zuvor auftraten, wenn Datensätze die physischen Speicherlimits überschritten.

Neben dem Speichermanagement behandelt Polars 2.0 SQL als vollwertiges Element. Die Bibliothek hat ihre SQL-Abdeckung drastisch erhöht und den Optimierer durch bessere Join-Umordnung, Elimination gemeinsamer Teilpläne (Common-Subplan-Elimination) und dynamische Prädikate verbessert. Diese Erweiterungen ermöglichen es Polars, komplexe SQL-Abfragen effizienter auszuführen, und schließen die Lücke zwischen programmatischer Datenmanipulation und traditionellen Datenbankinteraktionen.

Wie es funktioniert

Die Leistungsverbesserungen bei der SQL-Ausführung resultieren aus tiefgreifenden Optimierungen in der Query-Engine. Polars nutzt nun Bloom-Filter und dynamische Prädikate, um die Menge der während der Abfrageausführung verarbeiteten Daten zu reduzieren. Durch die Elimination gemeinsamer Teilpläne und die effektive Umordnung von Joins minimiert die Engine redundante Berechnungen. Diese technischen Verbesserungen ermöglichen es Polars, direkt mit etablierten analytischen Datenbanken zu konkurrieren.

Um diese Behauptungen zu validieren, führte das Team Benchmarks mit TPC-H- und TPC-DS-abgeleiteten Daten auf AWS-c7a-Instanzen durch. Sie verglichen Polars mit DuckDB 1.5.6, DuckDB 2.0 Alpha und DataFusion 54.0.0. Die Tests bestanden darin, jede Abfrage fünfmal im Hot-Setting auszuführen, den Dateicache zwischen den Engines zu leeren und die beste Laufzeit zu nehmen. Die Ergebnisse zeigten, dass Polars in fast allen Benchmarks auf Maschinen mit 16 vCPU und 192 vCPU die schnellste Engine war, obwohl es bei kleinen Datenabfragen auf 192 Threads skaliert einige Overheads aufwies.

Wichtige Details

  • Out-of-Core-Verarbeitung ist standardmäßig aktiviert und lagert bei ~80 % RAM-Nutzung auf die Festplatte aus, mit einem Standard-Festplattenbudget von 64 GB.
  • Die Streaming-Engine ist nun der Standard für collect, was die Zeilenreihenfolge ändern kann, es sei denn, maintain_order=True wird gesetzt.
  • Polars übertraf DuckDB und DataFusion in TPC-H- und TPC-DS1-Benchmarks sowohl auf c7a.4xlarge- als auch auf c7a.metal-Instanzen.
  • Ein neuer Map-Datentyp unterstützt Arrow MapType direkt und ermöglicht dictionary-artige Schlüssel-Lookups und Iterationen.
  • Strengere Typprüfung und collect_schema() ermöglichen schnellere Feedback-Schleifen für KI-Agenten und Entwickler.
  • DataFusion lief bei mehreren Abfragen in einen Timeout oder hatte einen Speicherüberlauf, wo Polars und DuckDB erfolgreich abschlossen.

Warum es wichtig ist

Für Software-Ingenieure und Data Scientists bedeutet die standardmäßige Out-of-Core-Unterstützung eine höhere Zuverlässigkeit bei der Verarbeitung großer Datensätze. Zuvor führte das Überschreiten von Speicherlimits zum Absturz des Prozesses, was manuelles Chunking oder externe Tools erforderte. Nun kann Polars größere-als-Speicher-Workloads elegant handhaben, indem es Festplattenspeicher nutzt. Dies erleichtert den Aufbau resilienter Datenpipelines ohne umfangreiche Infrastruktur-Tuning-Maßnahmen. Dies ist besonders wertvoll für Teams, die keine dedizierten Data-Engineering-Ressourcen haben, um komplexe verteilte Systeme zu verwalten.

Das strengere Typsystem und die Schema-Validierung adressieren zudem eine wachsende Notwendigkeit in der KI-gesteuerten Entwicklung. Da immer mehr Entwickler KI-Agenten nutzen, um Code zu generieren, wird die frühe Fehlererkennung kritisch. Indem Polars schnell bei Schema-Mismatches über collect_schema() fehlschlägt, hilft es Agenten und Menschen, schneller zu iterieren. Dies reduziert die Zeit, die für das Debugging stiller Fehler oder falscher Datentypen tief in einer Pipeline aufgewendet wird, und führt zu wartbarerem und korrekterem Datenverarbeitungscode.

Was Sie tun können

  • Aktualisieren Sie auf Polars 2.0 und prüfen Sie den vom Team bereitgestellten Migrationsleitfaden, um Breaking Changes zu behandeln.
  • Testen Sie Ihre bestehenden Pipelines auf Abhängigkeiten von der Zeilenreihenfolge und fügen Sie maintain_order=True hinzu, wo dies erforderlich ist.
  • Experimentieren Sie mit dem neuen Map-Datentyp, um verschachtelte Key-Value-Datenstrukturen effizienter zu verarbeiten.
  • Führen Sie SQL-Abfragen direkt in Polars aus, um den verbesserten Optimierer zu nutzen und die Performance gegen Ihren aktuellen Stack zu benchmarken.
  • Verwenden Sie collect_schema() in Ihrem Entwicklungsworkflow, um Typfehler zu erkennen, bevor schwere Datenoperationen ausgeführt werden.
  • Überwachen Sie die Speichernutzung und passen Sie den Schwellenwert für die Auslagerung auf die Festplatte an, wenn Ihr Workload eine andere Ressourcenallokation erfordert.

Tools aus dem Bytechap-Shop

$89

DocBento

Selbst gehostetes Dokumentenmanagement, das jeden Scan liest und mit Seitenzitaten antwortet.

Live-Demo

Weiterlesen

Alle Artikel