Skip to main content
رغم أن DataStore متوافق إلى حدٍ كبير مع pandas، فهناك اختلافات مهمة ينبغي فهمها.

الجدول الملخّص


1. التنفيذ المؤجل مقابل التنفيذ الفوري

pandas (التنفيذ الفوري)

تُنفَّذ العمليات مباشرةً:

DataStore (مؤجل)

تُؤجَّل العمليات حتى تدعو الحاجة إلى النتائج:

لماذا يُعد هذا مهمًا

يُمكّن التنفيذ المؤجل مما يلي:
  • تحسين الاستعلامات: تُجمَّع عمليات متعددة في استعلام SQL واحد
  • استبعاد الأعمدة غير اللازمة: لا تُقرأ إلا الأعمدة المطلوبة
  • تطبيق عوامل التصفية عند المصدر: تُطبَّق عوامل التصفية عند المصدر
  • كفاءة الذاكرة: لا تُحمِّل بيانات لا تحتاج إليها

2. أنواع الإرجاع

pandas

DataStore

التحويل إلى أنواع بيانات pandas


3. محفزات التنفيذ

يُنفَّذ DataStore عندما تحتاج إلى القيم الفعلية:

العمليات التي تظل مؤجلة التنفيذ


4. ترتيب الصفوف

pandas

يُحافَظ دائمًا على ترتيب الصفوف:

DataStore

يُحفَظ ترتيب الصفوف تلقائيًا في معظم العمليات:
يتتبع DataStore تلقائيًا مواضع الصفوف الأصلية داخليًا (باستخدام rowNumberInAllBlocks()) لضمان اتساق ترتيبها مع pandas.

عندما يكون الترتيب محفوظًا

  • مصادر الملفات (CSV، Parquet، JSON، إلخ)
  • مصادر pandas DataFrame
  • عمليات التصفية
  • اختيار الأعمدة
  • بعد استخدام sort() أو sort_values() بشكل صريح
  • العمليات التي تحدد الترتيب (nlargest()، nsmallest()، head()، tail())

متى قد يختلف الترتيب

  • بعد عمليات التجميع groupby() (استخدم sort_values() لضمان اتساق الترتيب)
  • بعد merge() / join() مع بعض أنواع الربط
  • في وضع الأداء (config.use_performance_mode()): لا يُضمن ترتيب الصفوف في أي عملية. راجع وضع الأداء.

5. لا توجد معلمة باسم inplace

pandas

DataStore

inplace=True غير مدعوم. أسند النتيجة دائمًا:

لماذا لا يوجد inplace؟

يستخدم DataStore عمليات غير قابلة للتعديل لإتاحة ما يلي:
  • بناء الاستعلامات (التقييم المؤجل)
  • السلامة في البيئات متعددة الخيوط
  • تصحيح الأخطاء بسهولة أكبر
  • شيفرة أكثر نظافة

6. دعم الفهارس

pandas

دعم كامل للفهارس:

DataStore

دعم مبسّط للفهارس:

مصدر DataStore مهم

  • مصدر DataFrame: يحافظ على الفهرس في pandas
  • مصدر File: يستخدم فهرسًا بسيطًا من الأعداد الصحيحة

7. سلوك عمليات المقارنة

المقارنة مع pandas

لا يتعرّف pandas على كائنات DataStore:

استخدام الدالة equals()


8. استدلال النوع

pandas

يستخدم أنواع البيانات في numpy/pandas:

DataStore

يمكنه استخدام أنواع ClickHouse:

التحويل الصريح للأنواع


9. نموذج الذاكرة

pandas

توجد جميع البيانات في الذاكرة:

DataStore

تبقى البيانات في المصدر إلى أن تكون مطلوبة:

10. رسائل الخطأ

مصادر الأخطاء المختلفة

  • أخطاء pandas: من مكتبة pandas
  • أخطاء DataStore: من chDB أو ClickHouse

نصائح لتصحيح الأخطاء


قائمة التحقق الخاصة بالترحيل

عند الترحيل من pandas:
  • غيّر عبارة الاستيراد
  • أزل المعاملات inplace=True
  • أضف to_df() صراحةً حيث يكون pandas DataFrame مطلوبًا
  • أضف الفرز إذا كان ترتيب الصفوف مهمًا
  • استخدم to_pandas() في اختبارات المقارنة
  • اختبر باستخدام أحجام بيانات ممثلة

مرجع سريع

آخر تعديل في ٢٣ يوليو ٢٠٢٦