Αρχιτεκτονικές αλλαγές και επιδόσεις

Η έκδοση 2.0 του Polars δεν αποτελεί απλώς ένα feature release, αλλά μια στρατηγική αναβάθμιση της υποδομής του. Η μετάβαση στη μηχανή streaming ως προεπιλογή για τα LazyFrame αντικείμενα αλλάζει τον τρόπο διαχείρισης της μνήμης, αν και απαιτεί προσοχή στη διατήρηση της σειράς των εγγραφών (row-order) σε ορισμένες λειτουργίες όπως τα join και group_by.

SQL ως υποστήριξη πρώτης κατηγορίας

Με τις πρόσφατες βελτιώσεις στον optimizer, το Polars ανταγωνίζεται πλέον ευθέως λύσεις όπως το DuckDB και το DataFusion. Οι βελτιώσεις περιλαμβάνουν καλύτερο join reordering, common-subplan-elimination και χρήση bloom filters, καθιστώντας το Polars εξαιρετικά αποδοτικό σε σύνθετα SQL queries. Τα benchmarks δείχνουν ότι το Polars υπερέχει σε πληθώρα σεναρίων, αν και παρατηρείται ένα σταθερό overhead σε περιβάλλοντα με πολύ μεγάλο αριθμό νημάτων (threads) κατά την επεξεργασία μικρών συνόλων δεδομένων.

Ανθεκτικότητα και αυστηρότητα (Strictness)

Η ενσωμάτωση του out-of-core spill-to-disk επιτρέπει στο Polars να διαχειρίζεται workloads που ξεπερνούν τη διαθέσιμη μνήμη, με ένα προεπιλεγμένο όριο 64GB στον δίσκο. Παράλληλα, η ομάδα του Polars ενισχύει την αυστηρότητα στους τύπους δεδομένων (dtypes), επιτρέποντας στα AI agents να επικυρώνουν τα σχήματα (schemas) μέσω του collect_schema() πριν από την εκτέλεση, μειώνοντας έτσι τον χρόνο feedback και την πιθανότητα σφαλμάτων κατά το runtime.

Νέος τύπος δεδομένων Map

Η προσθήκη του Map dtype επιτρέπει την απευθείας αναπαράσταση δομών τύπου dictionary (key-value pairs) εντός του DataFrame. Αυτό αντικαθιστά την παλαιότερη προσέγγιση των List(Struct), προσφέροντας native μεθόδους για key lookups, έλεγχο ύπαρξης κλειδιών και εξαγωγή δεδομένων, βελτιώνοντας την εκφραστικότητα του κώδικα.