Polars 2.0 ra mắt bản tiền phát hành: Streaming engine mặc định, hiệu năng tăng gấp 5 lần

Phần mềm03 tháng 9, 2026·4 phút đọc

Polars vừa công bố bản release candidate đầu tiên của phiên bản 2.0, tập trung vào việc thay đổi các thiết lập mặc định thay vì bổ sung tính năng mới. Điểm nhấn lớn nhất là mọi truy vấn LazyFrame sẽ chạy trên streaming engine mặc định, giúp cải thiện đáng kể hiệu suất và giảm bộ nhớ, dự kiến nhanh hơn tới 5 lần. Phiên bản này cũng siết chặt các quy tắc ép kiểu dữ liệu và cung cấp thông báo lỗi chi tiết hơn để hỗ trợ quá trình chuyển đổi.

Polars 2.0 ra mắt bản tiền phát hành: Streaming engine mặc định, hiệu năng tăng gấp 5 lần

Polars 2.0 vừa chính thức tung ra bản release candidate đầu tiên, đánh dấu một bước ngoặt quan trọng cho thư viện dataframe hiệu năng cao được cộng đồng data science và kỹ sư dữ liệu tại Việt Nam cũng như toàn cầu rất quan tâm. Thay vì thêm hàng loạt tính năng mới, đội ngũ phát triển tập trung vào việc "dọn dẹp" các quyết định thiết kế cũ và thay đổi các thiết lập mặc định để mang lại trải nghiệm tốt hơn cho đa số người dùng.

Điểm thay đổi gây chú ý nhất chính là streaming engine sẽ trở thành engine mặc định cho mọi truy vấn LazyFrame. Đây là một cuộc cách mạng về hiệu năng khi người dùng thông thường có thể kỳ vọng mức cải thiện lớn về bộ nhớ và tốc độ xử lý, thậm chí nhanh hơn tới 5 lần so với trước. Tuy nhiên, sự thay đổi này cũng đi kèm với việc không còn đảm bảo thứ tự hàng (row-order) mặc định cho một số thao tác như join, group_by hay unpivot, đòi hỏi người dùng phải chủ động thiết lập nếu có nhu cầu cụ thể.

Streaming engine trở thành mặc định: Bước nhảy vọt về hiệu năng

Trước đây, người dùng Polars phải tự tay bật streaming engine bằng cách thiết lập tham số, nhưng kể từ phiên bản 2.0, việc gọi collect trên một LazyFrame sẽ tự động sử dụng engine này. Điều này giúp giải quyết bài toán dữ liệu lớn vượt dung lượng RAM — một vấn đề rất phổ biến khi xử lý dữ liệu log, giao dịch tài chính hay dữ liệu IoT tại các doanh nghiệp Việt Nam.

Với những ai vẫn muốn giữ engine in-memory cũ làm mặc định, Polars cũng cung cấp tùy chọn để người dùng tự điều chỉnh thông qua thiết lập engine_affinity. Đội ngũ phát triển khuyến nghị người dùng nên kiểm tra kỹ migration guide đầy đủ để hiểu rõ tác động của sự thay đổi này lên các pipeline hiện tại.

Siết chặt quy tắc ép kiểu dữ liệu: Bảo vệ tính toàn vẹn dữ liệu

Một trong những thay đổi đáng chú ý khác là Polars 2.0 sẽ từ chối các phép ép kiểu (cast) tiềm ẩn rủi ro mất dữ liệu thay vì âm thầm thực hiện như trước. Ví dụ điển hình là khi kiểm tra một cột Int64 với danh sách các ID bị gắn cờ thuộc kiểu Float64, phiên bản cũ có thể gây ra lỗi sai lệch do giới hạn biểu diễn số nguyên lớn hơn 2^53. Với phiên bản mới, một lỗi InvalidOperationError sẽ được đưa ra, buộc người dùng phải xử lý ép kiểu một cách tường minh.

Điều này càng trở nên quan trọng trong bối cảnh các ứng dụng AI và machine learning xử lý dữ liệu số lớn, nơi chỉ một sai sót nhỏ trong quá trình ép kiểu cũng có thể dẫn đến những dự đoán sai lệch nghiêm trọng. Tương tự, việc nối dataframe theo chiều ngang (horizontal concat) giờ đây sẽ kiểm tra độ dài thay vì tự động điền giá trị null, giúp người dùng phát hiện sớm các lỗi từ upstream dữ liệu.

Cải tiến API và thông báo lỗi thông minh hơn

Polars 2.0 đánh dấu sự ra đi của một số phương thức và tham số cũ đã bị deprecated từ lâu, ví dụ như melt được thay thế bằng unpivot. Để hỗ trợ quá trình chuyển đổi, đội ngũ phát triển đã thêm hai loại exception mới: AttributeRemovedErrorArgumentRemovedError, với các thông báo lỗi được thiết kế để chỉ dẫn trực tiếp người dùng đến API thay thế phù hợp. Điều này đặc biệt hữu ích cho các kỹ sư dữ liệu tại Việt Nam khi làm việc với các codebase cũ hoặc khi sử dụng AI coding assistant để tự động di chuyển mã nguồn.

Việc ép kiểu từ integer sang kiểu Enum hay ép kiểu chuỗi ngày tháng sang kiểu Date cũng được siết chặt hơn, yêu cầu người dùng sử dụng các phương thức chuyên dụng như .str.to_date() để kiểm soát tốt hơn định dạng dữ liệu.

Tạm kết: Một phiên bản "nhàm chán" nhưng đáng chờ đợi

Dù đội ngũ phát triển hy vọng Polars 2.0 sẽ là một trải nghiệm "nhàm chán" cho người dùng — không có quá nhiều thay đổi gây sốc — nhưng những gì họ đang thực hiện phía sau lại rất đáng mong đợi. Các kế hoạch tương lai bao gồm hỗ trợ out-of-core đúng nghĩa cho streaming engine, một thiết kế IO-plugin mới, một S3 reader được dự đoán là nhanh nhất hiện nay, cải thiện đáng kể khả năng SQL, cũng như việc loại bỏ mmap để làm cho toàn bộ pipeline trở nên bất đồng bộ hoàn toàn.

Người dùng có thể dùng thử bản release candidate ngay hôm nay bằng lệnh pip install polars==2.0rc1 và đóng góp phản hồi cho đội ngũ phát triển thông qua GitHub hoặc Discord.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗