نرم افزار POWER BI از دو زبان مختلف پشتیبانی میکند، زبان M و DAX (Data Analysis Expression) که میتوانند برای فیلتر، مدیریت و تجسم دادهها مورد استفاده قرار بگیرد. در این مقاله ما به تفاوت زبان M و DAX در این نرم افزار میپردازیم.
M را میتوان به عنوان زبان فرمول جستجو در نظر گرفت و میتوان از آن در Power BI Query Editor به منظور آماده کردن دادهها قبل از بارگذاری در مدل Power BI استفاده کرد.
از طرف دیگر، DAX زبان محاسبه دادههای تحلیلی است که قادر است برای تجزیه و تحلیل دقیق و عمیق دادهها در مرحله مشاهده و بررسی دادهها استفاده شود.
اگر میخواهید به صورت کامل و دقیق به تفاوت این دو مورد پی ببرید، ادامه این مطلب میتواند برای شما راهنمای خوبی باشد.
بررسی تفاوت زبان M و DAX در POWER BI
قبل از بررسی تفاوت این دو مورد مهم، باید بگوییم که M و DAX به هیچ وجه به یکدیگر وابسته نیستند و ساختارهای کاملا متفاوتی را دنبال میکنند و کدهای اساسی متفاوتی نسبت به هم دارند. M و DAX همچنین نمیتوانند به طور همزمان در این نرم افزار استفاده شوند؛ زیرا زبان M در Query Editor استفاده میشود، در حالی که DAX بیشتر در مدل مشاهده دادهها استفاده میشود.
در ادامه این مطلب ما تفاوت زبان M و DAX را در این نرم افزار برای شما بیان میکنیم. اما پیش از شروع بحث تفاوتها، تعریف جزئی از هر یک خواهیم داشت.
زبان M
زبان M به منظور برنامهنویسی در پاور کوئری (Power Query) مورد بهرهگیری قرار میگیرد و این نام، در واقع نام غیررسمی این زبان به حساب میآید. نام رسمی این زبان در اصل برنامهنویسی پاور کوئری است که چون برای استفاده در محاورات کمی طولانی و دشوار است، از نام مخفف و کوتاه آن استفاده میشود که بتوان راحتتر آن را بیان کرد.
از معروفترین اصطلاحات این زبان میتوانیم به ماشاپ (Mashup) اشاره کنیم که در معنای حقیقی و لغوی خود به معنای جمع و ترکیب کردن است. به بیان ساده این زبان می تواند دادههای زیادی را جمع کند و آنها را به شکلهای متفاوتی تغییر دهد.
این زبان را همواره به عنوان زبانی کاربردی در نظر میگیرند و ساختار اسکریپت آن به شکل زیر است.
در اکثر اوقات ساختار این زبان را به صورت گام به گام فرض میکنند. هر خطی در اسکریپت این زبا ، به عنوان مرحله تغییر داده است؛ در این حالت روند به این صورت است که مرحله بعد، از نتیجه به دست آمده مرحله قبلی بهرهگیری میکند.
پیگیری ساختار این زبان برای برنامهنویسان و افراد فعال این عرصه معمولا کار راحتی است؛ زیرا با بلوکهای برنامه نویسی Let and In و دیگر ویژگیهای زبان برنامهنویسی میتوان آنها را فهمید و شناخت.
این زبان قادر است در بسیاری از سناریوهای تبدیل دادهها به کار گرفته شود. حال در ادامه به سراغ معرفی اجمالی DAX میرویم.
زبان DAX
زبان DAX در اصل مخفف شده عبارت Data Analysis eXpression language است که به تجزیه و تحلیل و آنالیز دادهها میپردازد. این زبان به عنوان زبان بیان شناخته میشود و دقیقا برخلاف همتای خود، بسیار شبیه به تابعهای اکسل است.
در اصل باید بگوییم این زبان، توابعی مشترک با اکسل را هم دارد. گرچه در برخی از جنبهها و ویژگیها، حتی قدرتمندتر از فرمولها و توابع اکسل عمل میکند.
محاسبات به کار رفته در این زبان به گونهای است که برای کاربرانی که با اکسل کار کردهاند و با آن آشنا هستند، منطقی و درست به نظر میرسد. این اصلی واضح است که کاربران اکسل با این زبان راحتتر ارتباط برقرار میکنند. دلیل اصلی آن هم این است که همه محاسبات با توابع انجام میشود. زبان DAX دارای بلوکهای برنامهنویسی نیست و در اصل ترکیب کاربردهای مختلف عملکرد، فیلترها و عبارات مختلف است.
میتوان اینطور گفت که این زبان امکان محاسبه بسیاری از تجزیه و تحلیلها و آنالیزها را دارد. به عنوان مثال، محاسبه میزان بودجهبندی از آغاز سال تا تاریخ روز، محاسبه میانگین سود در سال و ۱۲ ماهه یا دیگر موارد این چنینی.
تفاوت زبان M و DAX در POWER BI در چیست؟
حال به بحث اصلی خود یعنی تفاوت زبان M و DAX در POWER BI میرسیم. در حقیقت باید بدانیم که تفاوتها در کدام بخشها وجود دارند و کدام یک اهمیت بیشتری را دارد. در ادامه به شرح تفاوتهای این دو زبان میپردازیم.
وارد کردن مجموعه دادهها
در مورد این بخش باید بگوییم که مجموعه داده ساختگی را وارد سیستم میکنیم که از آن مجموعه به جهت اجرای کوئری های زبان M و DAX خود در نرم افزار استفاده میکنیم. برای انجام دادن این کار، مطابق با تصویری که در ادامه متن آورده شده است، با کلیک کردن و زدن روی دکمه «دریافت داده» در منوی بالایی، کار را آغاز کنید.
لیستی جدید، تمامی پیوندهای داده باز شده در Power BI را به شکل فهرست ارائه میکند.
web را در قسمت جستجو تایپ کرده و قرار دهید و بعد از این کار گزینه Web برای شما ظاهر میشود. همچنین نمادی در بخش گزینههای All data source نمایش داده خواهد شد. گزینه Web را انتخاب کنید و سپس روی “connect” در پایین صفحه کلیک کنید.
پنجرهای جدید برای شما باز میشود که باید لینک مربوطه را در آن وارد کردید و وقتی از آن اطمینان حاصل کردید، تایید را بزنید.
این لینک Power BI را به Github میفرستد. بسته به اندازه فایل، ممکن است دانلود دادهها از سایت مورد نظر کمی طول بکشد.
پس از بارگیری کامل دادهها، دو گزینه پیش روی شما است. میتوانید مستقیم دادهها را به نمای داده/گزارش وارد کرده، یا ابتدا دادهها را در ویرایشگر Query بارگیری کنید. از آنجایی که زبان M در ویرایشگر کوئری (Query Editor) کار میکند، ابتدا دادهها را در ویرایشگر کوئری بارگذاری می کنیم.
میبینید که مجموعه داده حاوی اطلاعاتی در مورد مشتری است؛ مانند جنسیت و نام و ….
پس از کلیک روی Transform، باید Query Editor را مشاهده کنید.
در این بخش ما Power BI را به مجموعه داده ساختگی در GitHub متصل کردیم. در این قسمت با کمک مثالها، تفاوت زبان M و DAX را شرح خواهیم داد.
زبان M در POWER BI
ابتدا میخواهیم ببینیم که M چیست و چگونه در Power BI استفاده میشود. همانطور که اشاره شد، زبان M برای مدیریت و فیلتر کردن دادهها در ویرایشگر Query استفاده میشود. اگر ویرایشگر Query را بستهاید، میتوانید با کلیک کردن روی گزینه «Edit Queries» از منوی بالا، آن را باز کنید.
در ویرایشگر Query، تنها نام جدول در قسمت سمت چپ صفحه، جدول شما خواهد بود. روی جدول دادههای “WA_Fn-UseC_-Telco-Customer-Churn” از پنل سمت چپ ویرایشگر کوئری، کلیک کنید.
برای مشاهده کوئری ها در M، ستونی را انتخاب کنید. به عنوان مثال، “Partner” و سپس روی دکمه “Remove Columns” از منوی بالا کلیک کنید. همانطور که میبینید، ستون حذف میشود.
برای ادامه این روند در مرحله بعد، شما باید از منوی بالا بر روی گزینه “View” کلیک کنید.
روی کادر “نوار فرمول” کلیک کنید. اکنون باید درخواستی را در نوار فرمول همانطور که در تصویر زیر مشخص شده است مشاهده کنید. این مورد در اینجا “= Table.RemoveColumns(#”Changed Type”,{“Partner”}) است. این کوئری، کوئری زبان M است که برای حذف ستون “Partner” از جدول انتخاب شده، استفاده میشود. مشاهده میکنید که کوئری زبان M بیشتر شبیه دستور SQL یا LINQ (Language Integrated Query) در سی شارپ است.
مشاهده تمام کوئری ها در M
برای مشاهده تمام کوئری های M که پیشتر اجرا شده است، در مجموعه داده خود، میتوانید روی “View – Advanced Editor” کلیک کرده و آن را انتخاب کنید.
پس از کلیک روی گزینه “Advanced Editor” از منوی بالا، باید پنجره Advanced Editor را ببینید. پنجره Advanced Editor شامل تمام کوئری های زبان M است که تا کنون در این روند به کار گرفته شدهاند.
خواهید دید که آخرین عملیات آن است که ستون “Partner” را از جدول حذف کرده است. قبل از آن، کوئری “Change Type” برای تخصیص انواع دادهها به ستونهای مختلف در مجموعه داده استفاده میشود. اگر کوئری دیگری را اجرا کنید، در پایین لیست کوئری در «ویرایشگر پیشرفته»، آن مورد به نمایش در خواهد آمد.
نکات دیگر زبان M در نرم افزار
حالا میخواهیم یک ستون ساده در جدول این بخش اضافه کنیم و کوئری M را برای آن مشاهده کنیم. برای این منظور، روی گزینه “افزودن ستون و ستون سفارشی” در منوی بالای پنجره کلیک کنید.
حال باید پنجرهای را مشاهده کنید. روی ستونهای Total Charges و Monthly Charges یکی یکی کلیک کنید و سپس روی دکمه Insert کلیک کنید که آنها را در پنجره ویرایشگر در خواست دهید. در پنجره ویرایشگر کوئری، یک علامت “+” بین نامهای دو ستونی اضافه کنید و روی دکمه “OK” کلیک کنید.
حال در این قسمت شما باید ستونی جدید به نام”ماهانه-کل” را مشاهده کنید که به جدول اضافه شده است. در نوار فرمول، همچنین می توانید کوئری M را که برای ایجاد ستون “ماهانه-کل” ایجاد شده است، مشاهده کنید. ستون «مجموع ماهانه»، در کل مجموع مقادیر ستونهای «هزینههای کل» و «هزینههای ماهانه» را نشان میدهد.
اکنون اگر دوباره پنجره «ویرایشگر پیشرفته» را باز کنید، عبارتی را خواهید دید که برای افزودن ستون «مجموع ماهانه» در پایین کوئریها در ویرایشگر پیشرفته استفاده میشود.
اکنون کمی متوجه این شدیم که زبان M چگونه کار میکند و چگونه به نظر کاربر میرسد. حال در ادامه به بررسی DAX طبق همین روند و بررسی تفاوت زبان M و DAX در این نرم افزار پرکاربرد میپردازیم.
کوئری های DAX در نمای دادهها اجرا میشوند. بنابراین، باید دادهها را از ویرایشگر Query به نمای داده منتقل کنیم. برای انجام این کار، در ویرایشگر کوئری از منوی بالا روی گزینه “Close & Apply” کلیک کنید. پس از کلیک بر روی دکمه “بستن و اعمال”، نمای داده باز خواهد شد.
DAX در POWER BI
در این قسمت نحوه اضافه کردن ستون جدید به جدول Books را با استفاده از DAX را خواهیم دید. در نمای داده، طبق شکل پایین، از منوی بالا روی گزینه “Modeling -New Column” کلیک کنید.
پس از کلیک روی گزینه “ستون جدید” باید پنجره جدیدی را مشاهده کنید. در نوار فرمول، میتوانید نام ستون پیش فرض را ببینید. می توانید کوئری های DAX را در این نوار فرمول به اجرا در آورید.
عبارت “Monthly-Total 2 = [Total Charges] + [Monthly Charges]” را در نوار فرمول وارد کنید و کلید “Enter” را بزنید. هنگامی که اینتر را فشار دهید، یک ستون جدید “Monthly-Total 2” خواهید دید که مجموع مقادیر ستونهای “Total Charges” و “Monthly Charges” را نشان میدهد.
در این جا به خوبی میبینید که کوئریهای DAX بسیار شبیه به توابع اکسل در مایکروسافت هستند.
کلام پایانی
در این مقاله سعی کردیم تفاوت زبان M و DAX را در نرم افزار POWER BI به روشی ساده بیان کنیم. زبان M و DAX دو زبانی هستند که توسط Power BI برای مدیریت دادهها، فیلتر و تجزیه و تحلیل دادهها پشتیبانی میشوند.
اگرچه هر دو زبان عملکردهای مشابهی دارند، اما کاملا مستقل از یکدیگر کار میکنند. M برای پیش پردازش دادهها در داخل Query Editor استفاده می شود و این در حالی است که DAX برای تجزیه و تحلیل دادهها پس از بارگذاری دادهها در Data View Model استفاده می شود.
شناخت تفاوتهای این دو زبان، میتواند دید بسیار خوبی را به شما برای بهرهگیری هرچه بیشتر در برنامه POWER BI ببخشد.