
Polars 2.0 çıxdı: Susmaya görə streaming mərkəzi, out-of-core dəstək və tam hüquqlu SQL
Polars 2.0 çıxdı. Buraxılış susmaya görə streaming mərkəzini və diskə ötürülməni (out-of-core spilling) aktivləşdirir, Map tipini əlavə edir, SQL-i tam hüquqlu vətəndaş kimi tanıyır və daha sürətli əks-əlaqə üçün sərtləri artırır.
Streaming və out-of-core susmaya görə
LazyFrame üzərində collect çağırışı indi susmaya görə streaming mərkəzindən istifadə edir ki, bu, komandanın dediyinə görə, əksər sorğularda yaddaş və məhsuldarlıq üçün nəhəng təkmilləşdirmələr verir. Streaming mərkəzi susmaya görə join, group_by və unpivot kimi əməliyyatlarda sıraların ardıcıllığına zəmanət vermədiyinə görə, dəyişiklik əsas versiyanı yeniləməni tələb etdi. Sıraların dəqiq ardıcıllığına ehtiyacı olan istifadəçilər maintain_order=True aktivləşdirə bilərlər.
out-of-core dəstəyi, yəni diskə ötürülmə, susmaya görə aktivdir və təxminən RAM-in 80 faizindən başlayır. sort, window funksiyaları və bir çox ifadə daxil olmaqla əməliyyatlar indi sorğunu yerinə yetirmək üçün diskə keçə bilərlər, susmaya görə disk büdcəsi 64GB ilə. out-of-core join-lər və group-by əməliyyatları gələcək buraxılışların planındadır.
SQL tam hüquqlu vətəndaş kimi
Polars 2.0 SQL-in tam hüquqlu vətəndaş kimi qəbul edildiyi andır. Optimizator və mərkəz təkmilləşdirmələrinə join-lərin yenidən qurulması, çox daha yaxşı ümumi alt-planların (common subplan) aşkarlanması və bloom filtrləri ilə dinamik predikatlar daxildir.
TPC-H və TPC-DS əsaslı benchmark-larda ki, DuckDB 1.5.6, DuckDB 2.0 alpha və DataFusion 54.0.0-a qarşı c7a.4xlarge və c7a.metal maşınlarında keçirildi, susmaya görə Polars bütün benchmark-larda ən sürətli idi, bir istisna xaric. Komanda 192 axına qədək miqyaslaşdırma zamanı daimi xərci qeyd edir ki, bu kiçik məlumatlı sorğulara təsir edir. 32 nüvə ilə məhdudlaşan Polars rəqabətqabiliyyətli idi və ya bütün benchmark-larda qalib gəldi, və səbəb növbəti buraxılışda düzəldiləcək. DataFusion TPC-DS-in bəzi sorğularında vaxt limitini aşdı, kiçik maşında isə TPC-H q18-də yaddaş tükəndi.
Yeni Map tipi
Polars indi Arrow MapType-ı Map tipi kimi birbaşa dəstəkləyir ki, bu Python lüğətinə bənzəyir, açarları dəyərlərlə əlaqələndirir. 2.0-dən əvvəl Arrow MapType List(Struct(...)) kimi oxunurdu. Tipə açarların axtarışı üçün ixtisaslaşdırılmış ifadələr, contains_key, len, keys və values daxildir.
Daha sərt Polars
Buraxılış sərtliyi daha da gücləndirir və sürətli uğursuzluq davranışı verir. Agentlər sorğunun strukturunu collect_schema() ilə əvvəlcədən yoxlaya bilərlər ki, bu tipləri təyin edir və məlumatların materializasiyası olmadan sxem səviyyəsi uyğunsuzluqlarını tutur, bu AI-nın daha sürətli iterasiyasını gücləndirir. Məlumatlara bağlı səhvlər indi susmaya görə daha sərt davranış istifadə edir ki, uyğunsuzluqlar tutulsun və susmaya görə başqa nəticə alınmasın.
Komanda out-of-core üzərində, böyük sayda CPU-larda miqyaslaşdırma, Polars Cloud və GeoPolars üzərində daha sonra işləməyi planlaşdırır və 2.0-a keçid üçün miqrasiya təlimatını dərc etdi.
Mənbələr: pola.rs
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.