الانتقال إلى المحتوى الرئيسي
يُعد فهم نموذج التقييم الكسول في DataStore مفتاحًا لاستخدامه بفعالية وتحقيق أفضل أداء.

التقييم الكسول

يستخدم DataStore التقييم الكسول — إذ لا تُنفَّذ العمليات فورًا، بل تُسجَّل وتُترجم إلى استعلامات SQL مُحسّنة. ولا يتم التنفيذ إلا عند الحاجة الفعلية إلى النتائج.

مثال: التقييم الكسول مقابل التقييم الفوري

فوائد التقييم الكسول

  1. تحسين الاستعلام: تتحول عمليات متعددة إلى استعلام SQL واحد مُحسَّن
  2. تمرير عوامل التصفية إلى المصدر: تُطبَّق عوامل التصفية على مستوى مصدر البيانات
  3. تقليم الأعمدة: لا تُقرأ إلا الأعمدة المطلوبة
  4. القرارات المؤجلة: يمكن اختيار محرك التنفيذ في وقت التشغيل
  5. فحص الخطة: يمكنك عرض الاستعلام أو تصحيحه قبل تنفيذه

مشغّلات التنفيذ

يبدأ التنفيذ تلقائيًا عند الحاجة إلى القيم الفعلية:

المشغّلات التلقائية

أمثلة:

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

أمثلة:

التنفيذ على ثلاث مراحل

تتبع عمليات DataStore نموذج تنفيذ على ثلاث مراحل:

المرحلة 1: بناء استعلام SQL (مؤجَّل)

تتراكم العمليات التي يمكن التعبير عنها بلغة SQL:

المرحلة 2: نقطة التنفيذ

عند تحقّق المُشغِّل، يُنفَّذ استعلام SQL المتراكم:

المرحلة 3: عمليات DataFrame (إن وُجدت)

إذا أتبعتَ التنفيذ بعمليات تقتصر على pandas فقط:

عرض خطط التنفيذ

استخدم explain() لمعرفة ما سيجري تنفيذه:
Query
Response
استخدم verbose=True للحصول على مزيد من التفاصيل:
راجع تصحيح الأخطاء: explain() للاطلاع على الوثائق الكاملة.

التخزين المؤقت

يخزّن DataStore نتائج التنفيذ مؤقتًا لتجنّب تكرار الاستعلامات.

كيف يعمل التخزين المؤقت

إبطال صلاحية ذاكرة التخزين المؤقت

تُبطَل صلاحية ذاكرة التخزين المؤقت عندما تُجري العمليات تعديلات على DataStore:

التحكم اليدوي في ذاكرة التخزين المؤقت


دمج عمليات SQL وPandas

يدير DataStore بذكاء العمليات التي تجمع بين SQL وPandas:

العمليات المتوافقة مع SQL

تُحوَّل هذه إلى SQL:
  • filter(), where()
  • select()
  • groupby(), agg()
  • sort(), orderby()
  • limit(), offset()
  • join(), union()
  • distinct()
  • عمليات على الأعمدة (العمليات الحسابية، والمقارنة، ودوال السلاسل النصية)

عمليات خاصة بـ Pandas فقط

تؤدي هذه العمليات إلى بدء التنفيذ وتستخدم pandas:
  • apply() مع دوال مخصّصة
  • pivot_table() مع عمليات تجميع معقّدة
  • stack(), unstack()
  • عمليات على كائنات DataFrame بعد تنفيذها

مسارات العمل الهجينة


اختيار محرّك التنفيذ

يمكن لـ DataStore تنفيذ العمليات باستخدام محرّكات مختلفة:

الوضع التلقائي (الافتراضي)

فرض استخدام محرك chDB

فرض استخدام محرك pandas

راجع التهيئة: محرك التنفيذ لمزيد من التفاصيل.

اعتبارات الأداء

جيد: طبّق التصفية مبكرًا

سيئ: طبّق التصفية متأخرًا

جيد: اختر الأعمدة مبكرًا

جيد: دع SQL يتولى العمل


ملخص أفضل الممارسات

  1. سلسِل العمليات قبل التنفيذ - ابنِ الاستعلام بالكامل، ثم شغِّله مرة واحدة
  2. طبّق التصفية مبكرًا - قلّل البيانات عند المصدر
  3. حدّد الأعمدة التي تحتاجها فقط - يحسّن تقليم الأعمدة الأداء
  4. استخدم explain() لفهم آلية التنفيذ - صحّح الأخطاء قبل التشغيل
  5. دع SQL يتولى التجميعات - ClickHouse مُحسَّن لهذا الغرض
  6. انتبه إلى مشغّلات التنفيذ - تجنّب التشغيل المبكر غير المقصود
  7. استخدم ذاكرة التخزين المؤقت بحكمة - افهم متى تُبطَل صلاحية ذاكرة التخزين المؤقت
آخر تعديل في ٢٥ يونيو ٢٠٢٦