Skip to main content
يُعد فهم نموذج التقييم الكسول في 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. استخدم التخزين المؤقت بحكمة - افهم متى تُبطَل صلاحية التخزين المؤقت
آخر تعديل في ٢٣ يوليو ٢٠٢٦