العودة
الإصدار التجريبي من Polars 2.0: محرك التدفق يصبح الافتراضي
SiTech AI Team2 წთ. საკითხავი

الإصدار التجريبي من Polars 2.0: محرك التدفق يصبح الافتراضي

أصدر Polars أول مرشّح للنسخة 2.0: استعلامات LazyFrame تعمل على محرك التدفق افتراضياً، مع تحقق أكثر صرامة من الأنواع ورسائل أوضح للواجهات المحذوفة. ويقول المطوّر الرئيسي إن النسخة النهائية متوقعة خلال أسابيع.

أصدر Polars أول مرشّح لإصدار النسخة 2.0، مع توقّع الإصدار النهائي خلال الأسابيع المقبلة. ويكتب المطوّر الرئيسي ريتشي فينك في مدونة المشروع مؤكداً أن رفع رقم النسخة الرئيسي لا يتعلق بميزات جديدة، بل بالتخلص من قرارات تصميم قديمة ونقل الإعدادات الافتراضية إلى خيارات أكثر منطقية.

محرك التدفق يصبح الافتراضي

أكبر تغيير هو أن كل استعلامات LazyFrame تعمل الآن على محرك التدفق (streaming). لذلك يوفّر استدعاء collect() انخفاضاً كبيراً في استهلاك الذاكرة وأداءً أفضل في معظم الاستعلامات؛ ويتوقّع المشروع أن يكون محرك التدفق أسرع بخمسة أضعاف في المجمل.

ولهذا السبب تحديداً لزم إصدار رئيسي جديد: فمحرك التدفق لا يضمن ترتيب الصفوف في عمليات مثل join وgroup_by وunpivot. وعلى الكود الذي يعتمد على ترتيب ملحوظ أن يطلبه صراحةً عبر maintain_order=True، بينما يمكن لمن يفضّل محرك الذاكرة القديم كخيار افتراضي أن يحدّده عبر pl.Config.set_engine_affinity.

أكثر صرامة مع رسائل خطأ أوضح

يشدّد Polars 2.0 أيضاً سلوكاً كان يفشل سابقاً بصمت. فتعابير is_in على أنواع مختلفة كانت تُجبر الطرفين على نوع أعلى مشترك حتى عندما يفقد التحويل بيانات — ويعرض المقال مقارنة معرّف مستخدم فوق 2^53 أدّى التقريب فيها إلى نتيجة موجبة خاطئة؛ والآن تُطلق هذه الحالة خطأً. كما يتحقق الدمج الأفقي concat من الأطوال بدلاً من الحشو بقيم null، ولم يبقَ السلوك القديم إلا كخيار صريح باسم "horizontal_extend". وقد أُزيلت عدة عمليات cast غامضة لصالح دوال مخصّصة مثل .cat.to() و.str.to_date().

وللواجهات المحذوفة أُضيف استثناءان محدّدان بالنوع، AttributeRemovedError وArgumentRemovedError، تشير رسائلهما إلى البديل: فقد أصبح melt هو unpivot، وأُعيد تسمية join_nulls إلى nulls_equal. ويشير الكاتب أيضاً إلى أن التحقق المبكر من المخطط عبر collect_schema() مفيد لوكلاء الذكاء الاصطناعي، إذ يمكنهم فحص بنية الاستعلام قبل معالجة البيانات.

ما الذي سيأتي بعده

يقول فينك إن النسخة 2.x ستتجاوز 1.x بكثير: دعم المعالجة خارج الذاكرة لمحرك التدفق، وتصميم جديد لإضافات IO، وعمل على ما يتوقّعه الفريق ليكون أسرع قارئ لـ S3، وتغطية أوسع للغة SQL، ومخطّط يعتمد على التكلفة، وإعادة ترتيب عمليات join، وإزالة mmap لجعل مسارات المعالجة غير متزامنة من طرف إلى طرف. ودليل الترحيل الكامل متاح بالفعل، ويثبَّت المرشّح بالأمر pip install polars==2.0rc1.

SSiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.