Query Caching

التخزين المؤقت هو تقنية أساسية لتحسين أداء أنظمة مستودع البيانات من خلال تجنب الحاجة إلى إعادة الحساب أو جلب نفس البيانات عدة مرات. في Databricks SQL، يمكن للتخزين المؤقت تسريع تنفيذ الاستعلام بشكل كبير وتقليل استخدام المستودع، ما يؤدي إلى انخفاض التكاليف واستخدام الموارد بشكل أكثر كفاءة. تعمل كل طبقة تخزين مؤقت على تحسين أداء الاستعلام وتقليل استخدام نظام المجموعة وتحسين استخدام الموارد لتجربة مستودع بيانات سلسة.

يوفر التخزين المؤقت العديد من المزايا في مستودعات البيانات، بما في ذلك:

  • السرعة: من خلال تخزين نتائج الاستعلام أو البيانات التي يتم الوصول إليها بشكل متكرر في الذاكرة أو غيرها من وسائط التخزين السريع، يمكن أن يقلل التخزين المؤقت بشكل كبير من أوقات تنفيذ الاستعلام. هذا التخزين مفيد بشكل خاص للاستعلامات المتكررة، حيث يمكن للنظام استرداد النتائج المخزنة مؤقتا بسرعة بدلا من إعادة حسابها.
  • تقليل استخدام نظام المجموعة: يقلل التخزين المؤقت من الحاجة إلى موارد حساب إضافية عن طريق إعادة استخدام النتائج المحسوبة مسبقا. وهذا يقلل من وقت تشغيل المستودع الكلي والطلب على مجموعات الحوسبة الإضافية، مما يؤدي إلى توفير التكاليف وتخصيص أفضل للموارد.

أنواع ذاكرة التخزين المؤقت للاستعلام في Databricks SQL

ينفذ Databricks SQL عدة أنواع من التخزين المؤقت للاستعلام.

query caches

  • ذاكرة التخزين المؤقت لواجهة مستخدم Databricks SQL: التخزين المؤقت لكل مستخدم لجميع نتائج الاستعلام ولوحة المعلومات في واجهة مستخدم Databricks SQL. عندما يفتح المستخدمون لأول مرة لوحة معلومات أو استعلام SQL، تعرض ذاكرة التخزين المؤقت لواجهة مستخدم Databricks SQL أحدث نتيجة استعلام، بما في ذلك النتائج من عمليات التنفيذ المجدولة.

    تحتوي ذاكرة التخزين المؤقت لواجهة مستخدم Databricks SQL على دورة حياة مدتها 7 أيام على الأكثر. توجد ذاكرة التخزين المؤقت داخل نظام ملفات Azure Databricks في حسابك. يمكنك حذف نتائج الاستعلام عن طريق إعادة تشغيل الاستعلام الذي لم تعد تريد تخزينه. بمجرد إعادة التشغيل، تتم إزالة نتائج الاستعلام القديمة من ذاكرة التخزين المؤقت. بالإضافة إلى ذلك، يتم إبطال ذاكرة التخزين المؤقت بمجرد تحديث الجداول الأساسية.

  • ذاكرة التخزين المؤقت للنتائج: التخزين المؤقت لكل مجموعة لنتائج الاستعلام لجميع الاستعلامات من خلال مستودعات SQL. يتضمن التخزين المؤقت للنتائج كلا من ذاكرة التخزين المؤقت للنتائج المحلية والبعيدة، والتي تعمل معا لتحسين أداء الاستعلام عن طريق تخزين نتائج الاستعلام في الذاكرة أو وسائط التخزين البعيد.

    • ذاكرة التخزين المؤقت المحلية: ذاكرة التخزين المؤقت المحلية هي ذاكرة تخزين مؤقت في الذاكرة تخزن نتائج الاستعلام لمدة بقاء نظام المجموعة أو حتى يتم امتلاء ذاكرة التخزين المؤقت، أيهما يأتي أولا. ذاكرة التخزين المؤقت هذه مفيدة لتسريع الاستعلامات المتكررة، مما يلغي الحاجة إلى إعادة حساب نفس النتائج. ومع ذلك، بمجرد إيقاف المجموعة أو إعادة تشغيلها، يتم تنظيف ذاكرة التخزين المؤقت وإزالة جميع نتائج الاستعلام.
    • ذاكرة التخزين المؤقت للنتيجة عن بعد: ذاكرة التخزين المؤقت للنتيجة البعيدة هي نظام ذاكرة تخزين مؤقت بلا خادم فقط يحتفظ بنتائج الاستعلام عن طريق الاحتفاظ بها في التخزين السحابي. ونتيجة لذلك، لا يتم إبطال ذاكرة التخزين المؤقت هذه عن طريق إيقاف أو إعادة تشغيل مستودع SQL. تعالج ذاكرة التخزين المؤقت للنتيجة عن بعد نقطة ألم شائعة في التخزين المؤقت لنتائج الاستعلام في الذاكرة، والتي تبقى متوفرة فقط طالما أن موارد الحساب قيد التشغيل. ذاكرة التخزين المؤقت البعيدة هي ذاكرة تخزين مؤقت مشتركة مستمرة عبر جميع المستودعات في مساحة عمل Databricks.

    يتطلب الوصول إلى ذاكرة التخزين المؤقت للنتيجة البعيدة مستودعا قيد التشغيل. عند معالجة استعلام، يبحث نظام المجموعة أولا في ذاكرة التخزين المؤقت المحلية الخاصة به ثم يبحث في ذاكرة التخزين المؤقت للنتيجة البعيدة إذا لزم الأمر. يتم تنفيذ الاستعلام فقط إذا لم يتم تخزين نتيجة الاستعلام مؤقتا في أي من ذاكرة التخزين المؤقت. كل من ذاكرة التخزين المؤقت المحلية والنائية لها دورة حياة 24 ساعة، والتي تبدأ عند إدخال ذاكرة التخزين المؤقت. تستمر ذاكرة التخزين المؤقت للنتيجة البعيدة من خلال إيقاف أو إعادة تشغيل مستودع SQL. يتم إبطال كلا المخزنين المؤقتين عند تحديث الجداول الأساسية.

    تتوفر ذاكرة التخزين المؤقت للنتيجة عن بعد للاستعلامات باستخدام عملاء ODBC / JDBC وواجهة برمجة تطبيقات بيان SQL.

    لتعطيل التخزين المؤقت لنتيجة الاستعلام، يمكنك التشغيل SET use_cached_result = false في محرر SQL.

    هام

    يجب استخدام هذا الخيار فقط في الاختبار أو القياس.

  • ذاكرة التخزين المؤقت للقرص: التخزين المؤقت المحلي ل SSD للبيانات المقروءة من تخزين البيانات للاستعلامات من خلال مستودعات SQL. تم تصميم ذاكرة التخزين المؤقت للقرص لتحسين أداء الاستعلام عن طريق تخزين البيانات على القرص، ما يسمح بقراءة البيانات المتسارعة. يتم تخزين البيانات مؤقتا تلقائيا عند إحضار الملفات، باستخدام تنسيق وسيط سريع. من خلال تخزين نسخ من الملفات على التخزين المحلي المرفق بعقد الحساب، تضمن ذاكرة التخزين المؤقت للقرص وجود البيانات بالقرب من العمال، ما يؤدي إلى تحسين أداء الاستعلام. راجع تحسين الأداء باستخدام التخزين المؤقت على Azure Databricks.

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

يؤثر التخزين المؤقت لنتائج الاستعلام وذاكرة التخزين المؤقت للقرص على الاستعلامات في واجهة مستخدم Databricks SQL وBI والعملاء الخارجيين الآخرين.