آموزش هوش تجاری از ۰ تا ۱۰۰

۱ مطلب با کلمه‌ی کلیدی «وبلاگ نویسی» ثبت شده است

  • ۰
  • ۰

تمرین هوش تجاری

چی؟! من می شنوم که شما می گویید. انفجار، گسترش، از هر کلمه ای که دوست دارید استفاده کنید. منظور من این است که شما می خواهید هر مرجعی را به یک معیار در داخل معیار دیگر حذف کنید.

مثال
3 اقدام زیر را در نظر بگیرید.

Total Sales = SUM(Sales[ExtendedAmount])
Total All Product Sales = CALCULATE([Total Sales],ALL(Products))
% Of All Product Sales = DIVIDE([Total Sales],[Total All Product Sales])

 

معیار نهایی، % از کل فروش محصول به 2 اقدام موقت اشاره دارد. 2 اشاره به اقدامات دیگر در اندازه سوم وجود دارد. این روش بسیار متداول است و نوشتن DAX به این روش مزایای زیادی دارد.

مزایا
شما می توانید فرمول فرم طولانی را یک بار بنویسید و بارها از آن استفاده مجدد کنید.
این کوتاهتر و سریعتر است
اگر نیاز به تغییر فرمول پایه دارید، فقط باید آن را در یک مکان تغییر دهید
منطق فرمول خواندن و درک آسان تر است زیرا نام اندازه گیری ها توصیفی هستند در حالی که فرمول های زیربنایی ممکن است نیاز به تجزیه و تحلیل عمیق داشته باشند تا بفهمند چه کاری انجام می دهند.
شما می توانید مسئله DAX را به اجزای منطقی تقسیم کنید و قبل از اینکه به قسمت بعدی بروید، یک قسمت از مشکل محاسبه کلی را حل کنید.
مشکل
خوب، پس مشکل چیست؟ مشکل این است که گاهی اوقات شما یک مسیر عمیق و تودرتو از اقدامات را دریافت می کنید که فرمول زیربنایی پیچیده تر از آن چیزی است که باید باشد، و اشکال زدایی آن عملا غیرممکن است. اگر به سادگی یک اندازه گیری نهایی را در کد DAX کامل و زیربنایی منفجر کنید/بسط دهید، دیدن آنچه در جریان است بسیار آسان تر می شود. با بازگشت به مثال DAX بالا، این همان چیزی است که اندازه سوم در زیر کاپوت به نظر می رسد، و تمام ارجاعات به معیارهای وابسته را حذف می کند.

% Of All Product Sales =
DIVIDE (
    SUM ( Sales[ExtendedAmount] ),
    CALCULATE ( 
        SUM ( Sales[ExtendedAmount] ), 
        ALL ( Products ) )
)

در این مثال ساده بالا، من نمی گویم که DAX کاملاً منفجر شده/منبسط شده کارآمدتر است. این فقط یک تصویر است اما مثال زیر یک مشکل است

فرمول اصلی DAX
در زیر فرمول DAX واقعی است که برای مشتری من عملکرد ضعیفی داشت. 12 خط کد بود

 

 

فرمول کاملا منفجر شده
نسخه کاملاً منفجر شده این فرمول دقیقاً مشابه (به زیر مراجعه کنید) 406 خط کد است. مشکل را می بینید؟ من یک ویدیو در زیر دارم که نشان می دهد چگونه می توان نسخه اصلی DAX را با استفاده از Tabular Editor 3 به سرعت به نسخه کاملاً منفجر شده تبدیل کرد.

پس کدام سریعتر است؟
خوب در این مورد، آنها از نظر سرعت یکسان هستند، زیرا فرمول کاملا منفجر شده در عملکرد با فرمول اصلی یکسان است. در واقع، به دلیل داشتن یک CALCULATE() ضمنی، ممکن است این کاملاً درست نباشد، اما این گفتگوی بسیار بزرگ‌تری است که فراتر از محدوده این مقاله است. آنچه در این مورد مهم است این است که

درک کنید مشکلی وجود دارد.
بدانید که چگونه اندازه گیری را در کامپوننت کامل آن DAX منفجر کنید (ویدیوی زیر را ببینید)
پس از انفجار، DAX را بازسازی و بازنویسی کنید تا کارآمدتر شود.
این نسخه نهایی من است در صورتی که شما علاقه مند هستید. نسخه اصلی حدود 45 ثانیه طول کشید تا اجرا شود. این نسخه نهایی در 66 میلی ثانیه اجرا می شود. برای بهبود DAX، موارد زیر را انجام دادم:

تجزیه و تحلیل کرد که DAX چه می کرد
الگوهای تکراری را پیدا کرد و شناسایی کرد که می‌توان آنها را یک بار در یک پاس ارزیابی کرد و در شروع اندازه‌گیری اینها را در متغیرها آورد.
نحوه عملکرد تکرار از طریق SUMX را بررسی کرد و آن را ساده کرد تا فقط یک بار آن را انجام دهد.

 

  • sahar saha sql