متى ينبغي استخدام العروض المادية القابلة للتحديث؟
يمكن للعروض المادية القابلة للتحديث تشغيل عمليات دفعية لتنفيذ مهام مثل إلغاء التطبيع. ويمكن إنشاء تبعيات بين العروض المادية القابلة للتحديث بحيث يعتمد أحد العروض على نتائج عرض آخر، ولا يُنفَّذ إلا بعد اكتماله. ويمكن أن يحل هذا محل مسارات العمل المجدولة أو مخططات DAG البسيطة مثل مهمة dbt. ولمعرفة المزيد حول كيفية تعيين التبعيات بين العروض المادية القابلة للتحديث، انتقل إلى CREATE VIEW، قسم Dependencies.
كيف يتم تحديث عرض مادي قابل للتحديث؟
SYSTEM REFRESH VIEW:
متى تم آخر تحديث للعرض المادي القابل للتحديث؟
system.view_refreshes، كما هو موضح أدناه:
كيف يمكنني تغيير معدل التحديث؟
ALTER TABLE...MODIFY REFRESH.
استخدام APPEND لإضافة صفوف جديدة
APPEND إضافة صفوف جديدة إلى نهاية الجدول بدلًا من استبدال العرض بأكمله.
ومن استخدامات هذه الميزة التقاط لقطات للقيم في نقطة زمنية معيّنة. على سبيل المثال، لنتخيّل أن لدينا جدول events يُملأ بتدفّق من الرسائل من Kafka، أو Redpanda، أو أي منصة أخرى للبيانات المتدفقة.
4096 قيمة في العمود uuid. ويمكننا كتابة الاستعلام التالي للعثور على القيم الأعلى من حيث العدد الإجمالي:
uuid كل 10 ثوانٍ وتخزينه في جدول جديد باسم events_snapshot. سيبدو مخطط events_snapshot كما يلي:
events_snapshot للحصول على العدد بمرور الوقت لقيمة uuid محددة:
أمثلة
Stack Overflow
votes وusers وbadges وposts وpostlinks.
في ذلك الدليل، أوضحنا كيفية إزالة تطبيع مجموعة بيانات postlinks ضمن جدول posts باستخدام الاستعلام التالي:
insert لمرة واحدة لهذه البيانات في جدول posts_with_links، ولكن في نظام production، سنرغب في تشغيل هذه العملية بشكل دوري.
قد يُحدَّث كلٌّ من جدولي posts وpostlinks. لذلك، بدلًا من محاولة تنفيذ عملية join هذه باستخدام العروض المادية التزايدية، قد يكون من الكافي ببساطة جدولة هذا الاستعلام ليعمل على فاصل زمني محدد، مثل مرة كل ساعة، مع تخزين النتائج في جدول post_with_links.
وهنا يأتي دور العرض المادي القابل للتحديث، ويمكننا إنشاء واحد باستخدام الاستعلام التالي:
الصياغة هنا مطابقة لصياغة العرض المادي التزايدي، باستثناء أننا نُدرج بند
REFRESH:IMDb
actors وdirectors وgenres وmovie_directors وmovies وroles.
يمكننا بعد ذلك كتابة الاستعلام التالي لاستخراج ملخص لكل ممثل، مرتبًا حسب أكبر عدد من مرات الظهور في الأفلام.