برخی مواقع سازمانها در حین اجرای گزارشات نیاز پیدا میکنند که مشکلات عملکردی ایجاد شده را شناسایی کنند. به همین دلیل پاور بی آی Performance Analyzer را ارائه کرده است تا بمنظور رفع مشکلات و ساده سازی پروسه مورد استفاده قرار بگیرد.
اگر حجم دیتای شما کم است یا کوئری های پیچیده بر روی دیتا اعمال نمی کنید می توانید از این مطلب عبور کنید و مطالب بعدی را مطالعه کنید. (رفع خطاهای مربوط به وارد کردن دیتا به پاور بی آی)
وضعیتی را در نظر بگیرید که شما مسئول تهیه گزارش برای تیم فروش سازمان هستید. همچنین شما از طریق ایجاد یک ارتباط داده ای با دیتابیس از طریق DirectQuery دیتای خودتان (که شامل جداول مربوط به دیتابیس SQL تیم فروش میباشد) را وارد می کنید. زمانی که شما تصاویر و فیلترهای اولیه را ایجاد میکنید، متوجه میشوید که برخی از جدولها زودتر جستجو میشوند و انجام شدن برخی از فیلترها بیشتر از سایر فیلترها طول میکشد.
برای دیدن تمام آموزش های پاور بی آی به لینک زیر مراجعه کنید:
بهینه سازی عملکرد در پاور کوئری (Power Query)
عملکرد موجود در Power Query بستگی به عملکرد موجود در سطح منبع دادهای دارد. تنوع منابع دیتایی که در Power Query وجود دارد بسیار گسترده میباشد و تکنیکهای تنظیم عملکرد برای هر منبعی دارای گستردگی یکسانی میباشد. برای مثال در صورتیکه شما دیتای خودتان را از Microsoft SQL Server استخراج کنید، باید راهنماهای مربوط به تنظیم عملکرد آن را دنبال کنید. یک سری از تکنیکهای منابع تنظیم عملکرد SQL Server شامل ایجاد فهرست، ارتقاء سخت افزار، تنظیم برنامه اجرایی و ترکیب کردن دیتا میباشد. این موضوعات خارج از حوصله این مقاله میباشد و در اینجا صرفا یک مثال بمنظور آشنایی شما با منبع دادهای و مزایای استفاده از پاور بی آی و Power Query ارائه شده است.
Power Query بدلیل استفاده از یک تکنیکی که Query Folding یا چین زدن کوئری نام دارد، در منبع داده ای دارای عملکرد مناسب و قابل قبولی است.
Query Folding
Query Folding موجود در Power Query Editor به شما کمک میکند تا کارایی گزارشات پاور بی آی خودتان را افزایش دهید. Query Folding عبارت از فرآیندی میباشد که باعث میشود تبدیلها، ویرایشها و تغییرات صورت گرفته در Power Query Editor بصورت آنی به عنوان کوئریهای بومی یا جملههای Select مربوط به SQL نشانه گذاری شود. هدف از اینکار عبارت از مطمئن شدن در مورد اعمال این تغییرات در دادههای اصلی و تحت تأثیر قرار نگرفتن منابع محاسباتی پاور بی آی میباشد.
Power Query میتواند به منظور بارگزاری دیتا در پاور بی آی مورد استفاده قرار بگیرد. بعد از این مرحله با استفاده از این ویژگی می توانید تغییرات مد نظرتان را در دیتا اعمال کنید. این تغییرات میتواند شامل موارد زیر باشد:
- حذف کردن یا تغییر عناوین ستونها،
- اضافه کردن،
- تجزیه کردن،
- فیلتر کردن
- و یا گروه بندی
فرض کنید که شما عناوین برخی از ستونهای موجود در دیتای فروش را تغییر داده باشید و ستون شهر و ایالت را در یک ستونی با فرم “شهر ایالت” ادغام کرده باشید. در حین انجام این کار ویژگی چین زدن کوئری این تغییرات را در کوئری های بومی نشانه گذاری خواهد کرد. بعد از آن و در حین بارگزاری دیتا این تغییرات به صورت مستقل در منبع اصلی صورت خواهند گرفت؛ این مورد منجر به حصول اطمینان در خصوص بهینه بودن عملکرد در پاور بی آی میشود. به عبارت دیگر ایجاد ستون جدید در پاور کوئری انجام نمی شود و ایجاد یک ستون جدید در موتور دیتابیس محاسبه و توسط پاور بی آی فراخوانی می شود.
برخی از مزیتهای چین زدن کوئری (Query Folding)
- کارایی بیشتر در بازیابی دادهها و بازیابیهای افزایشی. زمانیکه شما با استفاده از query folding دیتا وارد میکنید، پاور بی آی به دلیل عدم اجرای هر یک از تبدیلها به صورت محلی، توانایی بیشتری بمنظور تخصیص منابع و بازیابی سریعتر دادهها خواهد داشت.
- سازگاری اتوماتیک وار با حالتهای ذخیره DirectQuery و Dual. تمامی منابع دادهای حالت ذخیره DirectQuery و Dual دارند که بمنظور ایجاد یک ارتباط مستقیم باید دارای قابلیت پردازش سرور پشتیبانی باشند؛ در واقع چین زدن کوئری یک قابلیت اتوماتیکوار میباشد که میتوانید مورد استفاده قرار دهید. در صورتیکه تمامی تبدیلها به یک جمله Select کاهش یابند، چین زدن کوئری میتواند اتفاق بیافتد.
سناریو چین زدن کوئری
سناریوی پایین چین زدن کوئری را به صورت عملی نشان میدهد. در این سناریو شما یک سری از کوئریها را در جداول چندگانه اعمال میکنید. بعد از اضافه کردن منبع دادهای جدید با استفاده از Power Query و هدایت شدن به Power Query Editor وارد صفحه Query Settings شوید و همانند شکل زیر راست کلیک کنید.ور
در صورتیکه گزینه View Native Query در دسترس نباشد (به صورت بُلد نشان داده نشود)، قابلیت چین زدن کوئری برای این مرحله وجود نخواهد داشت و تا زماینکه View Native Query در دسترس قرار بگیرد (به صورت بُلد نمایش داده شود)، باید در بخش Applied Steps بمانید. به عبارت دیگر تغییرات اعمال شده در این مراحل توسط پاور کوئری انجام می شود و برای انجام به محاسبات دیتابیس نیازی نیست. در صورتی که برای تبدیل دیتاست از مرحله ای استفاده کرده باشید، در آن مرحله کوئری بومی نمایش داده خواهد شد (مثل ادغام کردن دو ستون در یک ستون). برای مثال در زیر مشاهده می کنید در صورتی که سه ستون نام، نام میانی و نام خانوادگی را با هم ادغام کنید، این فرایند به صورت یک کوئری به سمت دیتابیس ارسال خواهد شد. در این حالت دیگر ستون های نام، نام میانی و نام خانوادگی به مدل داده منتقل نخواهد شد و حجم فایل کاهش می یابد.
کوئری های بومی برای تبدیلهای زیر امکانپذیر نمیباشند:
- اضافه کردن یک ستون index
- ادغام یا ضمیمه کردن ستون های مربوط به جداول مختلف که دارای دو منبع متفاوت میباشند. (به دلیل مختلف بودن منابع نمی توان از یک کوئری برای فراخوانی داده ها استفاده نمود.)
- تغییر نوع دیتای مربوط به یک ستون
- اجرای توابع DAX پیچیده
موردی که همواره باید به یاد داشته باشید این است که در صورت امکانپذیر بودن ترجمه یک تبدیل به عبارت Select SQL (که شامل عملیات ها و بندهایی همانند GROUP BY، SORT BY، WHERE، UNION ALL و JOIN می باشد)، میتوانید از چین زدن کوئری استفاده نمایید.
همچنین بمنظور بهینه سازی عملکرد در حین بازیابی، وارد کردن و آماده سازی دیتا علاوه بر چین زدن کوئری میتوانید از گزینه عیب یابی کوئری (Query diagnostics) هم استفاده نمایید.
عیب یابی کوئری
یک ابزار دیگری که برای مطالعه عملکرد کوئری وجود دارد، عبارت از عیب یابی کوئری یا query diagnostics می باشد. این ویژگی باعث میشود که نواقص موجود (در صورت وجود داشتن نقص) را در حین بارگزاری و تبدیل دیتا، بازیابی دیتا در Power Query، اجرای عبارتهای SQL در Query Editor و سایر موارد شناسایی کنید.
به منظور استفاده از عیب یابی کوئری Power Query Editor باید به بخش Tools در زبانه Home بروید. در زمانیکه میخواهید دیتای خودتان را تبدیل کنید یا یک سری ویرایشها و تغییرات دیگری را در Power Query Editor انجام دهید، باید Start Diagnostics را در زبانه Session Diagnostics انتخاب کنید. بعد از اینکه مرحله شما به پایان رسید، باید Stop Diagnostics را انتخاب نمایید.
همانطور که در شکل زیر هم نشان داده شده است، با انتخاب Diagnose Step مدت زمان مربوط به اجرای این مرحله نشان داده میشود. این انتخاب طولانیتر بودن تکمیل این مرحله نسبت به مراحل دیگر را نشان میدهد و می تواند به عنوان نقطه شروعی برای بررسی بعدی مورد استفاده قرار گیرد.
این ابزار برای مواقعی کاربرد دارد که بخواهیم عملکرد Power Query را در حین بارگزاری مجموعه دیتاها، اجرای به روز رسانی دیتا یا اجرای سایر وظایف تبدیلی مورد بررسی قرار دهیم.
سایر روش های مربوط به بهینه سازی عملکرد
سایر روشهایی که به منظور بهینه سازی عملکرد کوئری در پاور بی آی وجود دارند عبارتند از:
- پردازش مقداری از دیتا که در منبع دیتای اصلی امکانپذیر است. Power Query و Power Query Editor این امکان را به شما میدهد تا دیتا را پردازش کنید؛ با این وجود قدرت پردازشی که برای انجام این کار مورد نیاز است، ممکن است در سایر بخشهای گزارش شما عملکرد ضعیف تری داشته باشد. معمولاً بهترین روش موجود عبارت از پردازش در منبع دیتای بومی تا حد ممکن میباشد. مثلا در صورتی که نیاز دارید نام و نام خانوادگی در یک ستون موجود باشد، در صورتی که حجم دیتا شما زیاد است، بهتر است در انبار داده خود این ستون را ایجاد کنید و در هر بار به روز رسانی کوئری ها، نیاز به ساخت این ستون نباشد.
- استفاده از کوئری های SQL بومی. در حین استفاده از DirectQuery برای دیتابیسهای SQL (همانند مورد مطرح شده در سناریوی بالا) اطلاعات شما به هیچ وجه نباید از رویه های ذخیره شده (stored procedures) یا عبارات جدول عام (CTEs یا Common table expressions) باشد.
- در صورت ترکیب شدن زمان و تاریخ، آنها را جدا کنید. در صورتیکه ستونهای جدول شما به صورت ترکیبی از زمان و تاریخ باشد، قبل از وارد کردن دیتا به پاور بی آی باید آنها را در ستونهای مجزا قرار دهید. این مورد منجر به افزایش توانایی مقایسه ای خواهد شد.
ممنون که این مطلب رو مطالعه کردید. در قسمت بعد رفع خطاهای مربوط به وارد کردن دیتا را خواهیم آموخت.