ایجاد Measure یا Calculated Column؟ تفاوت در چیست و چه زمانی از کدام استفاده کنیم!

کلید موفقیت شما در گزارش سازی با پاور بی آی (Power BI) و فرمول نویسی به وسیله DAX، تسلط بر زمان استفاده از یک ستون محاسبه شده (Calculated Column) در مقابل زمان استفاده از معیار (Measure) است. مفهومی که اغلب اوقات اشتباه درک می شود و انتخاب اشتباه ممکن است منجر به عملکرد ضعیف گزارش و یا حتی نتایج نادرست شود.

در صورتی که هریک از سؤالات زیر برای شما مطرح است، مطلب زیر را مطالعه کنید:

  • ستون محاسبه شده (Calculated Column) چیست؟
  • معیار (Measure) چیست؟
  • انتخاب بین Measure و Calculated Column
  • جمع بندی

ستون محاسبه شده (Calculated Column) چیست؟

وقتی یک مدل داده را ایجاد می کنید، می توانید یک جدول را با ایجاد ستون های جدید گسترش دهید. ماهیت ستون جدید این است که محاسبات را به صورت ردیفی انجام می دهد. همانطور که در تصویر زیر می بینید، شما در پاور بی آی (Power BI) این امکان را دارید تا از طریق منوی Modeling و قسمت Calculations یک ستون اضافه کنید یا از طریق راست کلیک کردن بر روی جدول، گزینه اضافه کردن ستون جدید را انتخاب کنید. معمولاً ستون محاسبه شده از عبارت DAX استفاده می کند که برای هر ردیف در مجموعه داده اعمال می شود و نتیجه آن در ستون جدید ذخیره می شود.

Profit Margin = Sales[Sales Amount] - Sales[Total Cost]

در جدول بالا ستون جدید برای محاسبه سود از تفاضل دو ستون فروش و هزینه ایجاد شده است.

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

معیار (Measure) چیست؟

روش دیگری برای تعریف محاسبات در پاور بی آی توسط DAX وجود دارد. هر زمان که نمی خواهید مقادیر مربوط به هر سطر را محاسبه کنید، می توانید با استفاده از Measure  مقادیر بسیاری از ردیف های جدول را جمع کنید. این تجمیع می تواند به سادگی جمع فروش باشد یا ممکن است کمی پیچیده تر باشد، مانند محاسبه متوسط فروش ماهانه در یک سال. Measure ها بر خلاف Calculated Column ها، از CPU استفاده می کنند، پس فقط زمانی که در یک نمودار مورد استفاده قرار گیرند، محاسبات انجام می شود.

انتخاب بین Measure و Calculated Column

با وجود شباهت های ظاهری زیاد، تفاوت های اساسی بین ستون ها و معیارها وجود دارد. مقدار ستون محاسبه شده در هربار به روز رسانی داده ها محاسبه می شود و از ردیف فعلی به عنوان زمینه محاسبات (Row Context) استفاده می کند. معیارها بر اساس تجمیع داده های تعریف شده توسط زمینه فعلی (Filter Context) عمل می کند، که بستگی به فیلتر اعمال شده در گزارش دارد. به طور کلی شما در موارد زیر مجاز به ایجاد Calculated Column هستید:

  • بخواهید از مقادیر محاسبه شده در Slicer استفاده کنید تا بتوانید در صفحه قابلیت فیلتر برای کاربر ایجاد شود.
  • بخواهید محاسباتی انجام دهید که در سطح ردیف حتماً باید انجام شوند.
  • بخواهید طبقه بندی بر روی مقادیر عددی انجام دهید. برای مثال سن افراد را در ظرف های زمانی مشخص دسته بندی کنید.

مزیت بزرگ استفاده از Measure ها این است که شما در زمان اجرای گزارش و به روز رسانی داده ها، محاسبات اضافی که گاهاً ممکن است بسیار سنگین باشند و اجرای گزارش را کند بکنند، نخواهید داشت. به علاوه، با تعریف Measure، شما این امکان را فراهم می سازید تا از این معیار در فرمول ها و محاسبات دیگر نیز استفاده کنید. به این رفتار اصطلاحاً Measure Branching گفته می شود.

جمع بندی

به یاد داشته باشید که روش های دیگری برای تعریف یک ستون محاسبه شده قبل از وارد کردن داده ها وجود دارد. به عنوان مثال، می توانید از Power Query استفاده کنید که زبان قدرتمندی را برای آماده سازی داده ها به صورت فراهم می کند. این تنوع با توجه به درجه توانمندی شما در ایجاد گزارشات مدیریتی و تحلیل داده قابل انتخاب است. بنابراین هر اندازه دانش فنی خود را گسترش دهید، قابلیت تلفیق این مفاهیم و در نتیجه سطح داشبوردهای هوش تجاری خود را می توانید بالاتر ببرید.

منبع: Businesstomy