ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
يعد كل من و أدوات فعالة لمعالجة البيانات وتحليلها في استعلام DAX ، ولكن هناك بعض الاختلافات الأساسية التي من المهم فهمها.
في هذه المدونة ، سنستعرض وظيفة CALCULATETABLE وخطة الاستعلام الخاصة بها في استوديو DAX ، ونفهم كيف تختلف عن وظيفة التصفية . بحلول النهاية ، سيكون لديك فهم أفضل لكيفية اختيار الوظيفة المناسبة لاحتياجات تحليل البيانات الخاصة بك.
للتوضيح ، سنستخدم رمز DAX أدناه.
عند تشغيل هذا الرمز ، ستحصل على جدول يعرض العلامة التجارية واللون.
في علامة التبويب Query Plans ، ستحصل على رمز مطابق لمشغل CrossApply في Formula Engine .
في الوقت نفسه ، يمكنك أن ترى أن الرمز يقوم فقط باسترداد لون المنتج والعلامة التجارية في علامة التبويب توقيتات الخادم .
جدول المحتويات
نتيجة توقيتات خادم DAX Studio لـ CALCULATETABLE
على سبيل المثال ، دعنا نقوم بتصفية لون المنتج لإظهار الأحمر و / أو الأسود فقط.
يمكنك القيام بذلك باستخدام وظيفة التصفية. عند تشغيله ، ستظهر توقيتات الخادم أن وسيطة FILTER لا يتم تطبيقها على كود xmSQL .
ولكن إذا كنت تستخدم وظيفة CALCULATETABLE ، فسيظهر الاستعلام في علامة التبويب توقيتات الخادم أن النتائج قد تمت تصفيتها حسب لون المنتج.
خطة الاستعلام CALCULATETETABLE في DAX Studio
لنلقِ نظرة على خطة الاستعلام لكل دالة.
يوجد CALCULATETABLE في السطر الأول من خطة الاستعلام المنطقي لأنها وظيفة من المستوى الأعلى في الكود وبالتالي لا تعتمد على أي متطلبات.
عندما تقرأ خطة الاستعلام لدالة CALCULATETABLE ، لا تبدأ بالمعامل الأول. تحتاج أولاً إلى فهم سياق عامل التصفية المستخدم. فلننتقل إلى السطر 5.
يمكنك أن ترى أن عامل التشغيل VertiPaq يتطلب عمود لون المنتج بسبب عامل التصفية المطبق. ثم يقوم بمسح هذا العمود ضوئيًا ويستخدم تركيبة "مرشح ليس فارغًا" للتحقق من لون المنتج مقابل كل صف.
بعد إعداد سياق عامل التصفية ، يتم تنفيذ وسيطة
بعد فوات الأوان ، إذا كنت تستخدم وظيفة FILTER ، فسترى خطة استعلام مختلفة ، لذلك يتم تنفيذ وسيطة CROSSJOIN قبل تحديد سياق عامل التصفية.
الجانب السلبي لهذا النهج هو أنه لا يدفع شرط الفلتر إلى محرك التخزين. لن تتمكن من استخدام جملة WHERE داخل xmSQL والتي ستضع عبئًا ثقيلًا على Formula Engine.
وعندما تعمل مع جداول متعددة ، فإن تركيبة المرشحات لوظيفة CROSSJOIN ستكون ضخمة. يؤدي هذا إلى إبطاء أداء كود DAX. وبالتالي ، في معظم الحالات ، يوصى باستخدام وظيفة CALCULATETABLE.
لذا بدلاً من إجراء جميع العمليات الحسابية في Formula Engine ، يمكنك إدخال شرط المرشح داخل فئة WHERE من كود XMSQL.
انتقال السياق لوظائف DAX المماثلة
توقيت الخادم
ينطبق هذا المفهوم أيضًا على وظيفة CALCULATE. دعنا نستخدم كود DAX أدناه كمثال.
يحتوي المقياس تلقائيًا على دالة CALCULATE حوله.
عند تشغيل هذا الرمز ، ستحصل على جدول يوضح إجمالي مبلغ المبيعات لكل لون.
في علامة التبويب توقيتات الخادم ، يمكنك أن ترى أن الكود ينفذ استعلامين. يقوم الاستعلام الأول باحتساب مجموع مبلغ المبيعات من جدول المبيعات فيما يتعلق بجدول المنتجات.
من ناحية أخرى ، يقوم الاستعلام الثاني باسترداد لون المنتج مرة أخرى من جدول المنتجات. يتوافق مع الدالة في كود DAX.
يضع Formula Engine مخابئ البيانات للاستعلامين جنبًا إلى جنب. يبدأ باسترداد القيم من ذاكرة التخزين المؤقت للبيانات الثانية ثم يقوم بالبحث في ذاكرة التخزين المؤقت للبيانات الأولى.
خطة الاستعلام
في علامة التبويب خطة الاستعلام ، تفحص خطة الاستعلام المنطقي لون المنتج بسبب وسيطة .
بعد ذلك ، يلخص VertiPaq إجمالي مبلغ المبيعات اعتمادًا على لون المنتج. ينفذ انتقال السياق الذي يحول قيمة لون المنتج إلى سياق مرشح مكافئ.
تتم ترجمة عامل التصفية الذي تم إنشاؤه بواسطة انتقال السياق إلى خاصية DependOnCols في خطة الاستعلام. بعد أن يقوم VertiPaq بمسح الأعمدة المطلوبة لحساب إجمالي المبيعات ، فإنه يضاعف كمية المبيعات في صافي السعر.
ثم يتم إرجاع إجمالي المبيعات كنتيجة في شكل نوع بيانات العملة. وأخيرًا ، تُرجع الدالة ADDCOLUMNS جدولًا يحتوي على عمودين يحتويان على اللون ومبلغ إجمالي المبيعات.
خاتمة
يمكن أن يكون لخطة الاستعلام تأثير كبير على أداء الاستعلام ، حيث قد يكون لخطط الاستعلام المختلفة مستويات مختلفة من الكفاءة.
عند استخدام الدالتين CALCULATETABLE و FILTER في استعلام DAX ، قد تختلف خطة الاستعلام وفقًا للسيناريو المحدد ومجموعة متنوعة من العوامل ، مثل تعبير الصيغة المحددة المستخدم وإمكانيات محرك الاستعلام.
بشكل عام ، من الجيد اختبار أداء خطط الاستعلام المختلفة ومقارنتها لتحديد الأسلوب الأكثر فعالية لسيناريو معين.
أتمنى لك كل خير،
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.
في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.
سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.
في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.
أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.
تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.
سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX في توفير النتائج.
إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.
ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته