وظيفة DAX CALCULATETABLE VS FILTER

وظيفة DAX CALCULATETABLE VS FILTER

يعد كل من و أدوات فعالة لمعالجة البيانات وتحليلها في استعلام DAX ، ولكن هناك بعض الاختلافات الأساسية التي من المهم فهمها.

في هذه المدونة ، سنستعرض وظيفة CALCULATETABLE وخطة الاستعلام الخاصة بها في استوديو DAX ، ونفهم كيف تختلف عن وظيفة التصفية . بحلول النهاية ، سيكون لديك فهم أفضل لكيفية اختيار الوظيفة المناسبة لاحتياجات تحليل البيانات الخاصة بك.

للتوضيح ، سنستخدم رمز DAX أدناه.

وظيفة DAX CALCULATETABLE VS FILTER

عند تشغيل هذا الرمز ، ستحصل على جدول يعرض العلامة التجارية واللون.

وظيفة DAX CALCULATETABLE VS FILTER

في علامة التبويب Query Plans ، ستحصل على رمز مطابق لمشغل CrossApply في Formula Engine .

وظيفة DAX CALCULATETABLE VS FILTER

في الوقت نفسه ، يمكنك أن ترى أن الرمز يقوم فقط باسترداد لون المنتج والعلامة التجارية في علامة التبويب توقيتات الخادم .

وظيفة DAX CALCULATETABLE VS FILTER

جدول المحتويات

نتيجة توقيتات خادم DAX Studio لـ CALCULATETABLE

على سبيل المثال ، دعنا نقوم بتصفية لون المنتج لإظهار الأحمر و / أو الأسود فقط.

يمكنك القيام بذلك باستخدام وظيفة التصفية. عند تشغيله ، ستظهر توقيتات الخادم أن وسيطة FILTER لا يتم تطبيقها على كود xmSQL .

وظيفة DAX CALCULATETABLE VS FILTER

ولكن إذا كنت تستخدم وظيفة CALCULATETABLE ، فسيظهر الاستعلام في علامة التبويب توقيتات الخادم أن النتائج قد تمت تصفيتها حسب لون المنتج.

وظيفة DAX CALCULATETABLE VS FILTER

خطة الاستعلام CALCULATETETABLE في DAX Studio

لنلقِ نظرة على خطة الاستعلام لكل دالة.

يوجد CALCULATETABLE في السطر الأول من خطة الاستعلام المنطقي لأنها وظيفة من المستوى الأعلى في الكود وبالتالي لا تعتمد على أي متطلبات.

وظيفة DAX CALCULATETABLE VS FILTER

عندما تقرأ خطة الاستعلام لدالة CALCULATETABLE ، لا تبدأ بالمعامل الأول. تحتاج أولاً إلى فهم سياق عامل التصفية المستخدم. فلننتقل إلى السطر 5.

يمكنك أن ترى أن عامل التشغيل VertiPaq يتطلب عمود لون المنتج بسبب عامل التصفية المطبق. ثم يقوم بمسح هذا العمود ضوئيًا ويستخدم تركيبة "مرشح ليس فارغًا" للتحقق من لون المنتج مقابل كل صف.

بعد إعداد سياق عامل التصفية ، يتم تنفيذ وسيطة

بعد فوات الأوان ، إذا كنت تستخدم وظيفة FILTER ، فسترى خطة استعلام مختلفة ، لذلك يتم تنفيذ وسيطة CROSSJOIN قبل تحديد سياق عامل التصفية.

وظيفة DAX CALCULATETABLE VS FILTER

الجانب السلبي لهذا النهج هو أنه لا يدفع شرط الفلتر إلى محرك التخزين. لن تتمكن من استخدام جملة WHERE داخل xmSQL والتي ستضع عبئًا ثقيلًا على Formula Engine.

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

لذا بدلاً من إجراء جميع العمليات الحسابية في Formula Engine ، يمكنك إدخال شرط المرشح داخل فئة WHERE من كود XMSQL.

انتقال السياق لوظائف DAX المماثلة

توقيت الخادم

ينطبق هذا المفهوم أيضًا على وظيفة CALCULATE. دعنا نستخدم كود DAX أدناه كمثال.

وظيفة DAX CALCULATETABLE VS FILTER

يحتوي المقياس تلقائيًا على دالة CALCULATE حوله.

عند تشغيل هذا الرمز ، ستحصل على جدول يوضح إجمالي مبلغ المبيعات لكل لون.

وظيفة DAX CALCULATETABLE VS FILTER

في علامة التبويب توقيتات الخادم ، يمكنك أن ترى أن الكود ينفذ استعلامين. يقوم الاستعلام الأول باحتساب مجموع مبلغ المبيعات من جدول المبيعات فيما يتعلق بجدول المنتجات.

وظيفة DAX CALCULATETABLE VS FILTER

من ناحية أخرى ، يقوم الاستعلام الثاني باسترداد لون المنتج مرة أخرى من جدول المنتجات. يتوافق مع الدالة في كود DAX.

وظيفة DAX CALCULATETABLE VS FILTER

يضع Formula Engine مخابئ البيانات للاستعلامين جنبًا إلى جنب. يبدأ باسترداد القيم من ذاكرة التخزين المؤقت للبيانات الثانية ثم يقوم بالبحث في ذاكرة التخزين المؤقت للبيانات الأولى.

خطة الاستعلام

في علامة التبويب خطة الاستعلام ، تفحص خطة الاستعلام المنطقي لون المنتج بسبب وسيطة .

بعد ذلك ، يلخص VertiPaq إجمالي مبلغ المبيعات اعتمادًا على لون المنتج. ينفذ انتقال السياق الذي يحول قيمة لون المنتج إلى سياق مرشح مكافئ.

وظيفة DAX CALCULATETABLE VS FILTER

تتم ترجمة عامل التصفية الذي تم إنشاؤه بواسطة انتقال السياق إلى خاصية DependOnCols في خطة الاستعلام. بعد أن يقوم VertiPaq بمسح الأعمدة المطلوبة لحساب إجمالي المبيعات ، فإنه يضاعف كمية المبيعات في صافي السعر.

ثم يتم إرجاع إجمالي المبيعات كنتيجة في شكل نوع بيانات العملة. وأخيرًا ، تُرجع الدالة ADDCOLUMNS جدولًا يحتوي على عمودين يحتويان على اللون ومبلغ إجمالي المبيعات.

خاتمة

يمكن أن يكون لخطة الاستعلام تأثير كبير على أداء الاستعلام ، حيث قد يكون لخطط الاستعلام المختلفة مستويات مختلفة من الكفاءة.

عند استخدام الدالتين CALCULATETABLE و FILTER في استعلام DAX ، قد تختلف خطة الاستعلام وفقًا للسيناريو المحدد ومجموعة متنوعة من العوامل ، مثل تعبير الصيغة المحددة المستخدم وإمكانيات محرك الاستعلام.

بشكل عام ، من الجيد اختبار أداء خطط الاستعلام المختلفة ومقارنتها لتحديد الأسلوب الأكثر فعالية لسيناريو معين.

أتمنى لك كل خير،


ما هي الذات في بايثون: أمثلة من العالم الحقيقي

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

كيفية حفظ وتحميل ملف RDS في R.

كيفية حفظ وتحميل ملف RDS في R.

ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.

تمت إعادة النظر في أول N أيام عمل - حل لغة ترميز DAX

تمت إعادة النظر في أول N أيام عمل - حل لغة ترميز DAX

في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.

اعرض الرؤى باستخدام تقنية المرئيات الديناميكية المتعددة الخيوط في LuckyTemplates

اعرض الرؤى باستخدام تقنية المرئيات الديناميكية المتعددة الخيوط في LuckyTemplates

سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.

مقدمة لتصفية السياق في LuckyTemplates

مقدمة لتصفية السياق في LuckyTemplates

في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.

أفضل النصائح في استخدام التطبيقات في خدمة LuckyTemplates عبر الإنترنت

أفضل النصائح في استخدام التطبيقات في خدمة LuckyTemplates عبر الإنترنت

أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.

تحليل تغييرات هامش الربح بمرور الوقت - التحليلات باستخدام LuckyTemplates و DAX

تحليل تغييرات هامش الربح بمرور الوقت - التحليلات باستخدام LuckyTemplates و DAX

تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.

أفكار التجسيد لذاكرة التخزين المؤقت للبيانات في DAX Studio

أفكار التجسيد لذاكرة التخزين المؤقت للبيانات في DAX Studio

سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX ​​في توفير النتائج.

إعداد تقارير الأعمال باستخدام LuckyTemplates

إعداد تقارير الأعمال باستخدام LuckyTemplates

إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته