زبان m که برخی آن را با نام Power Query Formula Language نیز میشناسند، در Power BI به منظور تبدیل دادهها و فعالیتهای مربوط به شکلدهی داده استفاده میشود.
این زبان زبانی کاربردی است که به کاربران امکان اتصال به منابع مختلف داده، استخراج داده و تبدیل و بارگذاری آن را میدهد و همچنین اجازه میدهد تا عملیات پاکسازی و شکل دهی داده اعمال شود.
زبان m در Power Query Editor استفاده میشود، جایی که کاربر میتواند قبل از بارگیری داده در Power BI عملیات تبدیل داده را انجام دهد.
در این مقاله به بررسی زبان m، ویژگیها، اجزا، کارکرد انواع توابع زبان M، مفاهیم کلیدی، نحوه استفاده از زبان m در Power BI و مهارتهای مورد نیاز برای یادگیری زبان m خواهیم پرداخت.
1# زبان m در پاور کوئری چیست؟
زبان m که برخی آن را مخفف Mashup میدانند، زبانی کاربردی و حساس به حروف بزرگ و کوچک است که برای تبدیل و آماده سازی دادهها طراحی شده است.
این زبان به صورت اختصاصی برای پاور کوئری مایکروسافت ساخته شده و یک ابزار ETL (Extract, Transform, Load) است که امکان ادغام آن در اکسل، پاور بی آی (Power BI) و سایر محصولات شرکت مایکروسافت وجود دارد.
در این زبان، وقتی یک تبدیل انجام دهید، کد آن مرحله به صورت خودکار ایجاد میشود و دیگر نیازی به نوشتن کد، توسط کاربر نخواهد بود.
با این حال در مواردی نیاز است که نحوه نوشتن کدهای زبان m را یاد گرفت که شامل موارد زیر است:
- توابع سفارشی
- انجام تحولات پیچیده تر
- بهینه سازی و ساخت کانکتورهای (Connector) سفارشی
در سپتامبر 2018، IntelliSense معرفی شد که میزان حساسیت کد روی حروف بزرگ و کوچک را کم کرد.
IntelliSense به کاربر این امکان را میدهد که اجزای اصلی #shared را همانند سایر موارد زیر در زبان m، فراخوانی کند:
- توابع اصلی
- توابع سفارشی
- نام متغیرها
- مراحل
- پارامترها
زبان m، یک زبان کاربردی است.
وقتی جریان آن را به خوبی درک کنید، خواندن و نوشتن کدهای m آسانتر خواهد شد.
زبان m، با اهدافی از جمله موارد زیر توسعه داده شده است:
- پاکسازی کردن
- تغییر شکل دادهها
- ترکیب دادهها از منابع مختلف
- تسهیل فرآیند تبدیل دادههای خام به شکل دلخواه
با استفاد از زبان m، کاربران میتوانند موارد زیر را ایجاد کنند که فراتر از چیزی است که برنامههای سنتی میتوانند، انجام دهند:
- توابع سفارشی
- ستونهای شرطی
- تبدیل دادههای پیشرفته
این زبان، شبیه به زبان برنامه نویسی F است.
1-1# اجزای زبان m
سیستم m از اجزای زیر تشکیل شده است:
- انواع پرایمری و ابتدایی که مقادیر اولیه را طبقه بندی میکنند.
- انواع رکورد که مقادیر رکورد بر اساس نام فیلدها و انواع مقادیر طبقه بندی میشود.
- انواع لیست که با استفاده از یک نوع پایه، آن را طبقه بندی میکنند.
- انواع تابع که مقادیر آن را بر اساس نوع پارامتر و مقادیر بازگشتی آنها طبقه بندی میکنند.
- انواع جدول که مقادیر آن را بر اساس نام ستونها، انواع ستونها و کلیدها طبقه بندی میکنند.
2-1# زمان استفاده از زبان m
از زبان m زمانی استفاده میشود که دادهها از منابع خارجی بارگیری شوند یا نیاز به تبدیل داشته باشند.
پاور کوئری یک ابزار مناسب برای عملیاتی است که نیاز به موارد زیر دارد:
- اتصال به منابع مختلف داده
- پاکسازی کردن دادهها
- شکل دهی به دادهها
- انجام عملیات مدل سازی و آماده سازی داده
3-1# زبان فرمول Power Query M چیست؟
در هر سناریوی تبدیل داده، برخی از انواع تبدیلها وجود دارند که با استفاده از ویرایشگر گرافیکی نمیتوان آنها را به بهترین شکل ممکن انجام داد.
برخی از این تبدیلها ممکن است به تغییرات خاصی نیاز داشته باشد که رابط گرافیکی در حال حاضر از آنها پشتیبانی نمیکند.
موتور پاور کوئری از یک زبان برنامه نویسی در پشت صحنه برای تمامی تبدیلات پاور کوئری استفاده میکند، زبانی با نام زبان m.
زبان m، زبان تبدیل داده پاور کوئری است. هر رخدادی در کوئری در نهایت در زبان m نوشته خواهد شد.
اگر میخواهید با استفاده از موتور پاور کوئری، تبدیلهای پیشرفته انجام دهید، میتوانید از ویرایشگری پیشرفته به منظور دسترسی به اسکریپت کوئری استفاده کنید و آن را همان گونه که میخواهید تغییر دهید.
اگر متوجه شدید که توابع و انتقالات رابط کاربری، تغییرات دقیقی که مورد نیاز شما است را انجام نمیدهند، از ویرایشگر پیشرفته و زبان m، برای تنظیم دقیق توابع و انتقالات مورد نیاز خود استفاده کنید.
2# کارکرد زبان m
زبان Power Query M دارای انواع مختلفی از توابع است که به صورت زیر هستند:
- توابع جایگزین
- توابع شکاف
- توابع داده
- توابع باینری
- توابع رسیدگی به خطا
- توابع بیان
- توابع مقادیر
- توابع جدول
- توابع متن
- توابع لیست
- توابع ترکیب کننده
- توابع خطوط
- توابع مقایسه کننده
- توابع منطقی
- توابع اعداد
3# ویژگیهای زبان m
در ادامه برخی از ویژگیها و جنبههای کلیدی زبان m را بررسی خواهیم کرد.
1-3# قابلیت اتصال به منبع داده
زبان m به کاربران اجازه میدهد به منابع مختلف داده مانند پایگاه داده، فایل و خدمات وب متصل شوند.
این زبان قادر است، طیف گسترده ای از اتصالات و گزینهها را به منظور بازیابی دادهها از منابع مختلف فراهم کند.
2-3# تبدیل دادهها
زبان m، مجموعه ای غنی از توابع و عملیات به منظور تبدیل آسانتر دادهها فراهم کرده است.
کاربران میتوانند فعالیتهایی مانند موارد زیر را انجام دهند:
- فیلتر کردن
- مرتب سازی
- گروه بندی
- محوری
- ادغام
- تقسیم
- جمع آوری
- پشتیبانی از تبدیلهای داده ای پیشرفته، مانند:
- تغییر شکل دادهها
- رسیدگی به خطاها
- تبدیلهای سفارشی
3-3# زبان مبتنی بر فرمول
زبان m، یک زبان مبتنی بر فرمول است که در آن کاربران میتوانند، دنباله ای از مراحل را برای تبدیل دادهها تعریف کنند.
هر مرحله به صورت فرمولی نوشته خواهد شد که روی دادهها اعمال میشود و عملیات مورد نظر را اجرا میکند.
این فرمولها را میتوان ترکیب کرد و مجدداً مرتب کرد تا گردش عملیات پیچیده تبدیل داده به راحتی انجام شود.
4-3# پارادایم برنامه نویسی تابعی
زبان m، از اصول برنامه نویسی تابعی پیروی میکند و بر تغییرناپذیری و استفاده از توابع برای پردازش دادهها تأکید دارد.
این زبان از توابع به عنوان مقادیر درجه یک، بازگشتی و توابع درجه بالاتر نیز پشتیبانی میکند.
5-3# توابع سفارشی
کاربران میتوانند توابع سفارشی خود را تعریف کنند و منطق تبدیل دادههای خاص را محدود کنند.
این توابع سفارشی را میتوان مجدداً در چندین کوئری استفاده کرد یا با دیگران به اشتراک گذاشت.
6-3# Query Folding
زبان m از Query Folding هم پشتیبانی میکند که در صورت امکان، فرآیند انتقال دادهها به منابع داده را انجام میدهد.
این بهینه سازی با کاهش دادههای انتقال یافته بین منبع داده و Power BI عملکرد را بهبود خواهد بخشید.
7-3# ادغام با ویرایشگر Power Query Editor
زبان m در Power Query Editor در Power BI استفاده میشود که در آن کاربران میتوانند به صورت بصری، مراحل تبدیل داده را بسازند و آن را تغییر دهند.
Power Query Editor یک رابط کاربرپسند برای تعامل با کد m و پیش نمایش نتایج تبدیلها ارائه میدهد.
4# مفاهیم کلیدی زبان m پاور کوئری
با مفاهیم کلیدی زبان m در ادامه آشنا خواهیم شد:
- منابع داده و اتصال دهندهها: پاور کوئری m، طیف گسترده ای از منابع داده و رابطها را ارائه میدهد که میتوان از آنها برای اتصال به منابع داده ای مختلف مانند پایگاههای داده، فایلها و سرویسهای وب استفاده کرد.
- پاکسازی و شکل دهی دادهها: این زبان به کاربر این امکان را میدهد که طیف گسترده ای از عملیات پاکسازی و شکل دهی دادهها را انجام دهد؛ مانند حذف ردیفهای تکراری، فیلتر کردن دادهها و تبدیل انواع دادهها.
- حریم خصوصی و امنیت دادهها: پاور کوئری m، همچنین شامل ویژگیهایی برای حفظ حریم خصوصی و امنیت دادهها است؛ همانند توانایی تعریف اعتبار منبع داده و مدیریت سطوح حریم خصوصی دادهها.
5# نحوه استفاده از زبان m در پاور بی آی
در Power BI، پاور کوئری در Power Query Editor ادغام شده و به ابزاری قدرتمند در تبدیل و ایجاد تغییرات در دادهها تبدیل شده است.
Power Query Editor نیز به گونه ای طراحی شده که میتوانید با استفاده از آن به پاکسازی دادهها، مدلسازی آنها و در مجموع عملیاتی که مربوط به آماده سازی داده است بپردازید.
به منظور استفاده از پاور بی آی در پاور کوئری m، ابتدا باید دادهها را در پاور کوئری ادیتور، بارگیری کنید.
پس از این که دادههای مورد نظر بارگیری شد، میتوان از رابط کاربری بصری برای انجام عملیات پاکسازی و شکل دهی به دادهها استفاده کرد.
این موارد شامل کارکردهایی مانند حذف ردیفهای تکراری، فیلتر کردن دادهها و ادغام جدولها با یکدیگر است.
پاور کوئری این امکان را به کاربر میدهد که تمامی این عملیات را بدون نیاز به نوشتن کد انجام دهد و کاربران بتوانند با سطوح مختلف تخصص فنی به آن دسترسی داشته باشند.
با این حال، برای تبدیلهای پیچیده تر میتوان از زبان m که زبان اصلی پاور کوئری است، استفاده کرد.
عبارات زبان m با استفاده از ویرایشگر پیشرفته ای با نام Power Query Editor نوشته میشوند.
با استفاده از زبان m می توان طیف وسیعی از فرآیندها و عملیات را انجام داد.
1-5# بهترین روش استفاده از زبان m در Power BI
بهترین روشها به منظور استفاده از زبان m در پاور بی آی عبارت اند از:
- ترکیب کوئریها: تبدیلهای پیچیده را میتوان به مراحل کوچکتر که قابل مدیریت تر است، تقسیم کرد.
این امر میتواند عملکرد را بهبود ببخشد و درک و نگهداری از کوئریها را آسان تر کند. - استفاده مجدد از کد: هنگامی که کاربر نیاز به تبدیل مداوم داده دارد، ایجاد توابع سفارشی در پاور کوئری برای استفاده مجدد از کد در جستجوهای مختلف باید در نظر گرفته شود.
- بهینهسازی برای عملکرد: در این بخش بهتر است از کارآمدترین تبدیلها استفاده کنید و از گامهای غیرضروری به منظور بهبود عملکرد کوئریها تا حد امکان اجتناب کنید.
- به روز ماندن: به منظور بهره مندی از ویژگیها و پیشرفتهای جدید، کاربران باید مراقب بهروزرسانیها و پیشرفتهای پاور کوئری و زبان m باشند.
- استفاده از نظرات: با استفاده از نظرات دیگران، کاربر میتواند کدهای خود را مستندسازی کند و درک کوئریها را برای دیگران آسان تر خواهد کرد.
6# مهارتهای مورد نیاز برای یادگیری زبان m در Power BI
به منظور یادگیری زبان m در پاور بی آی، شما به ترکیبی از مهارتهای مرتبط با تجزیه و تحلیل دادهها، برنامه نویسی و درک اکوسیستم پاور بی آی نیاز دارید.
در ادامه با مهارتهای کلیدی برای کار با زبان m آشنا خواهیم شد.
1-6# تجزیه و تحلیل داده و مدل سازی
داشتن پایه ای قوی در تجزیه و تحلیل دادهها و مدل سازی در این مورد ضروری خواهد بود.
درک ساختار دادهها، روابط و اصول تحلیل داده به شما کمک میکند تا کوئریهای زبان m را به صورتی مؤثر افزایش دهید.
2-6# دانش SQL و پایگاه داده
آشنایی با SQL (که مخفف عبارت Structured Query Language است) و کار با پایگاه داده میتواند بسیار مفید باشد.
بسیاری از مفاهیم و عملیات موجود در زبان m شباهت زیادی به SQL دارند؛ مانند کوئرینگ (Querying)، فیلتر کردن و جمع آوری داده.
3-6# مفاهیم برنامه نویسی
مفاهیم اولیه برنامه نویسی مانند موارد زیر بسیار ارزشمند هستند:
- متغیرها
- توابع
- حلقهها
- عبارات شرطی
این موضوع به نوشتن محاسبات پیچیده و توابع سفارشی m، هنگام کار با کوئری کمک خواهد کرد.
4-6# Power BI Desktop
آشنایی با این نوع مهارت که ابزار اصلی به منظور ساخت راه حلهایی برای پاور بی آی است، ضروری خواهد بود.
درک موارد زیر استفاده مؤثر از زبان m را تسهیل میکند:
- رابط
- اتصالات داده
- قابلیتهای تبدیل داده
- گزینههای تجسم
5-6# مهارت حل مسئله و تفکر منطقی
توسعه مهارتهای حل مسئله و تفکر منطقی، نیز هنگام کار با زبان m بسیار مهم خواهد بود.
شما باید الزامات داده را تجزیه و تحلیل کنید، محاسبات یا تبدیلهای مناسب مورد نیاز را تعیین و بروز هرگونه مشکلی را عیب یابی کنید.
6-6# تبدیل و پاکسازی دادهها
داشتن تجربه کافی برای تبدیل دادهها و وظایف پاکسازی بسیار مهم است.
پاور کوئری که از زبان m استفاده میکند، ابزاری است به منظور انتقال داده در پاور بی آی.
در این زمینه، داشتن مهارت کافی در پاکسازی دادههای آشفته، مدیریت مقادیر از دست رفته و استانداردسازی قالبها بسیار سودمند خواهد بود.
7# انواع توابع زبان M
انواع توابع Power Query M به صورت زیر هستند.
1-7# نحو یا سینتکس (Syntex)
توابع پاور کوئری m از یک ساختار نحوی سازگار استفاده میکنند.
آنها از نام توابع، پارامترهای محصور در پرانتز و یک نوع بازگشت اختیاری (Optional Return Type) تشکیل شدهاند.
این توابع را میتوان ترکیب یا نست (Nested) کرد تا منطق پیچیده تبدیل داده را ایجاد کند.
2-7# توابع داخلی
پاور کوئری m، طیف گسترده ای از توابع داخلی را برای عملیات معمول استفاده از دادهها فراهم میکند که شامل توابعی برای موارد زیر است:
- استفاده از متن
- عملیات تاریخ و زمان
- محاسبات ریاضی
- منطق شرطی
- و مواردی از این قبیل
3-7# توابع سفارشی
پاور کوئری m، به شما اجازه میدهد تا توابع سفارشی را به منظور کپسوله کردن و استفاده مجدد از مراحل خاص تبدیل داده ایجاد کنید.
توابع سفارشی را میتوان در یک کوئری یا در ماژولهای کد جداگانه تعریف کرد که این موضوع کمک میکند تا سازماندهی و نگهداری از کد راحت تر شود.
4-7# کتابخانههای تابعی
توابع m را میتوان در کتابخانه یا ماژولها برای سازماندهی بهتر کد و قابلیت استفاده مجدد از آن ایجاد کرد.
کتابخانهها شامل مجموعه ای از توابع مرتبط هستند که میتوان آنها را در چندین کوئری یا کتاب کار به اشتراک گذاشت.
5-7# کوئریهای وابسته
توابع پاور کوئری m را میتوان به کوئریهای دیگر و خروجی آنها ارجاع داد.
این موضوع به شما این امکان را میدهد که یک گردش کار تبدیل داده بسازید که در آن کوئریها به نتایج کوئریهای قبلی بستگی دارند.
این امر، فرآیندهای تبدیل دادههای مدولار و مقیاس پذیر را فعال میکند.
6-7# تبدیل دادههای پیشرفته
این نوع تابع از تکنیکهای پیشرفته تبدیل داده مانند موارد زیر پشتیبانی میکند:
- گروه بندی و تجمیع
- چرخش و حذف محور
- ادغام جدولها
- رسیدگی به خطاها و استثناهای موجود
- و مواردی از این قبیل
این قابلیتها شما را قادر میسازند تا دادهها را از منابع مختلف به صورتی مؤثر شکل دهید و پاکسازی کنید.
8# مزایای استفاده از زبان m
مزایای استفاده از زبان m عبارت اند از:
- فرآیند ETL را پیشرفته میکند.
- امکانات لازم برای بهروزرسانی افزایشی و برنامه ریزی با SQL دارد.
- تکنولوژی کد پیشرفته توسط مایکروسافت دارد که میتواند کد هر زبان دیگری را در M -Code جاسازی کند.
- امکان به کار بردن و گردآوری داده در آن وجود دارد.
- یک زبان پس زمینه برای برنامه نویسی و داشبورد Power BI است.
- امکان افزایش کارایی آن با استفاده از Power Shell وجود دارد.
- هیچ محدودیتی در بارگذاری دادهها ندارد.
نظرتون درباره این مقاله چیه؟
ما رو راهنمایی کنید تا اون رو کامل تر کنیم و نواقصش رو رفع کنیم.
توی بخش دیدگاه ها منتظر پیشنهادهای فوق العاده شما هستیم.