من المثير للاهتمام، كنت أعتقد دائما أنه إذا استشرت إلى استعلام Dune آخر، فسيكون غير فعال لأن محسن Trino لا يخطط للاستعلام الخارجي والاستعلام الحالي معا. لكن اتضح أنه يفعل ذلك. لدي الاستعلام أ: جدول أسواق مورفو للتوريد والسحب. هذا هو سجل الأحداث الكامل، لذا يجب أن يكون ثقيلا جدا. ثم يقوم الاستعلام B، الذي يشير إلى الاستعلام A، بتصفية market_id محددة. اتضح أن Trino لا يزال ذكيا بما يكفي ليقوم بضغط الخصوم (مصطلح فاخر للتصفية في أقرب وقت ممكن) على الاستعلام A. ببساطة، نقل فلتر market_id الخاص بي إلى الاستعلام A رغم أن الفلتر تم تطبيقه على الاستعلام B. لست متأكدا مما إذا كان ترينو، في الاستعلامات الأكثر تعقيدا، سيفعل الشيء نفسه. لكن تبعات هذا هي: قد لا تحتاج إلى تحسين مسبق أو القيام بتصفية مبكرة على جداول القاعدة. إذا كانت مرشحاتك على جداول الميل الأخير، وهي جداول تستخدم عادة لصنع لوحات المعلومات، فإن ترينو قادر على دفع الفلاتر إلى الأمام (يا لها من جملة غريبة). كنت قلقا جدا بشأن هذا في البداية وكنت نوعا ما مبالغ في التحسين المفرط. لكن التحذير هو أنه يمكنك فعل ذلك فقط إذا كنت تتوقع بالفعل أن الجداول اللاحقة سيكون لديها نوع من التصفية. لأنه إذا لم تقم بهذا التحسين في الجداول المقدمة، سيكلفك الكثير من الاعتمادات. بالطبع القاعدة القياسية تنطبق في تحسين التعليم، مثل إذا قمت بعمل دالة نافذة قبل التصفية على قيم معينة، فسوف تطبخ لأنك ستعمل في النافذة عبر مجموعة البيانات بأكملها. ليس جيدًا. لذا في الواقع، تصميم الاستعلام يعتمد على حالة الاستخدام المتوقعة للجدول اللاحق. لست متأكدا إذا كنت أتحدث بشكل منطقي أو إذا كان هذا صحيحا. ربما يمكن لأحد أن يطلع على هذا أيضا. لكن الأمر رائع جدا.