DirectQuery در Power BI: راهنمای کامل برای تحلیل دادههای پویا
یکی از قابلیتهای کلیدی Power BI، امکان اتصال به دادهها از طریق DirectQuery است، که به شما این امکان را میدهد تا بدون نیاز به وارد کردن دادهها، به منبع اصلی متصل شوید.در Power BI Desktop یا Power BI Service، شما میتوانید به منابع داده مختلف به روشهای گوناگون متصل شوید. وارد کردن دادهها (Import) رایجترین روش برای دریافت داده در Power BI است. اما شما همچنین میتوانید به برخی دادهها بهصورت مستقیم در مخزن اصلی آن متصل شوید، که به این روش DirectQuery گفته میشود.
DirectQuery چیست؟
DirectQuery در Power BI یک روش اتصال داده است که به کاربران اجازه میدهد به دادههای منبع اصلی مستقیماً متصل شوند. برخلاف روش Import Data که دادهها را در حافظه کش Power BI ذخیره میکند، DirectQuery دادهها را هنگام درخواست در لحظه بازیابی میکند.
این ویژگی زمانی مفید است که:
- دادهها بهصورت مداوم تغییر میکنند و گزارشها باید همیشه آخرین دادهها را نمایش دهند
- حجم دادهها بسیار زیاد است و وارد کردن آنها در Power BI امکانپذیر نیست
- نیاز به رعایت قوانین امنیتی روی دادههای منبع اصلی وجود دارد
نکته: DirectQuery همچنین یک قابلیت در SQL Server Analysis Services است. این قابلیت جزئیات زیادی با DirectQuery در Power BI مشترک دارد، اما تفاوتهای مهمی نیز وجود دارد. این مقاله عمدتاً DirectQuery در Power BI را پوشش میدهد، نه SQL Server Analysis Services.
حالتهای اتصال داده در Power BI
Power BI میتواند به طیف گستردهای از منابع داده مختلف متصل شود، مانند:
- سرویسهای آنلاین مانند Salesforce و Dynamics 365
- پایگاههای داده مانند SQL Server، Access، و Amazon Redshift
- فایلهای ساده مانند Excel، JSON و سایر فرمتها
- سایر منابع داده مانند Spark، وبسایتها و Microsoft Exchange
شما میتوانید دادهها را از این منابع وارد Power BI کنید. برای برخی منابع، اتصال از طریق DirectQuery نیز امکانپذیر است. منابع فعالشده برای DirectQuery معمولاً منابعی هستند که عملکرد خوبی در اجرای پرسوجوهای تعاملی دارند.
همیشه تا حد امکان دادهها را وارد Power BI کنید. وارد کردن دادهها از موتور پرسوجوی قدرتمند Power BI استفاده کرده و یک تجربه تعاملی کامل ارائه میدهد.
اگر وارد کردن دادهها نیازهای شما را برآورده نمیکند، مثلاً اگر دادهها مکرراً تغییر میکنند و گزارشها باید آخرین دادهها را نمایش دهند، استفاده از DirectQuery را در نظر بگیرید.
DirectQuery زمانی امکانپذیر است که منبع داده بتواند:
- نتایج پرسوجوهای تعاملی را در کمتر از 5 ثانیه ارائه دهد
- بار ایجاد شده توسط پرسوجوها را مدیریت کند
محدودیتها و تأثیرات استفاده از DirectQuery را با دقت در نظر بگیرید. قابلیتهای وارد کردن دادهها و DirectQuery در Power BI بهمرور زمان پیشرفت میکنند. تغییراتی که انعطافپذیری بیشتری برای وارد کردن دادهها فراهم میکنند، اجازه میدهند که دادهها را بیشتر وارد کنید و برخی معایب استفاده از DirectQuery را برطرف کنند.
با وجود بهبودها، عملکرد منبع داده همیشه یک عامل اساسی در استفاده از DirectQuery است. اگر منبع داده کند باشد، استفاده از DirectQuery برای آن منبع همچنان غیرممکن خواهد بود.
تفاوت بین DirectQuery و Import Mode
جدول زیر تفاوتهای DirectQuery و Import Mode در Power BI را نشان میدهد:
ویژگی | DirectQuery | Import Mode |
---|---|---|
نحوه ذخیره داده | مستقیم از منبع | وارد شده در حافظه کش |
عملکرد پرسوجو | وابسته به منبع داده | سریع و بهینه |
تعاملپذیری گزارشها | بسته به سرعت منبع داده | تعاملی و فوری |
حجم داده | بینهایت (بهصورت مستقیم) | محدود به ظرفیت حافظه |
امنیت دادهها | وابسته به منبع اصلی | ذخیرهشده در Power BI |
تازهسازی دادهها | هنگام درخواست | نیاز به بارگذاری مجدد |
اگر عملکرد سریع و تعاملپذیری بالا برای شما اولویت دارد، Import Mode مناسبتر است. اگر نیاز به دادههای لحظهای و حجم بسیار بالا دارید، DirectQuery گزینه مناسبتری خواهد بود.
سه گزینه برای اتصال دادهها در Power BI:
- وارد کردن داده (Import)
- DirectQuery
- اتصال زنده (Live Connection)
اتصال از طریق وارد کردن داده (Import)
هنگامی که به یک منبع داده مانند SQL Server متصل میشوید و دادهها را وارد Power BI Desktop میکنید، شرایط زیر برقرار است:
هنگام استفاده از Get Data، مجموعهای از جداول را انتخاب میکنید که یک پرسوجو تعریف کرده و مجموعهای از دادهها را برمیگرداند. شما میتوانید قبل از بارگذاری دادهها، پرسوجوها را ویرایش کنید اعمال فیلترها، تجمیع دادهها، یا پیوستن جداول مختلف
پس از بارگذاری، تمام دادههای تعریفشده توسط پرسوجوها وارد حافظه کش Power BI میشوند. ساخت ویژوال در Power BI Desktop دادههای ذخیرهشده را پرسوجو میکند. موتور Power BI تضمین میکند که پرسوجو سریع باشد و تمام تغییرات فوراً منعکس شوند.
ویژوالها تغییرات دادههای موجود در پایگاه داده را بهصورت زنده نشان نمیدهند. شما باید دوباره دادهها را وارد کنید تا دادهها بهروز شوند.
انتشار گزارش به Power BI Service یک مدل معنایی شامل دادههای واردشده ایجاد و آپلود میکند. شما سپس میتوانید برنامهریزی کنید که دادهها روزانه دوباره وارد شوند. بسته به موقعیت منبع داده اصلی، ممکن است نیاز به پیکربندی درگاه داده داخلی (On-premises data gateway) باشد.
دادههای واردشده در Power BI Service بازخوانی میشوند تا تعاملپذیری تضمین شود.
شما میتوانید ویژوالها یا صفحات کامل گزارش را بهعنوان کاشیهای داشبورد سنجاق کنید. کاشیها بهطور خودکار هر بار که مدل معنایی زیرین تازهسازی شود، بهروز میشوند.
اتصالات DirectQuery در Power BI
هنگامی که از DirectQuery برای اتصال به یک منبع داده در Power BI Desktop استفاده میکنید، شرایط اتصال داده به شرح زیر خواهد بود:
انتخاب منبع داده از طریق گزینه Get Data انجام میشود. برای منابع رابطهای، میتوان مجموعهای از جداول را انتخاب کرد که یک پرسوجو منطقی را تعریف کرده و دادهها را برمیگرداند. برای منابع چندبعدی مانند SAP Business Warehouse (SAP BW) فقط امکان انتخاب منبع داده وجود دارد.
پس از بارگذاری، هیچ دادهای وارد حافظه Power BI نمیشود. هنگامی که یک ویژوال میسازید، Power BI Desktop پرسوجوهایی را به منبع داده ارسال میکند تا دادههای موردنیاز را بازیابی کند. زمان تازهسازی ویژوال وابسته به عملکرد منبع داده زیرین است.
تغییرات دادههای زیرین بهصورت فوری در ویژوالهای موجود نمایش داده نمیشود؛ برای مشاهده تغییرات، باید عمل تازهسازی انجام شود. Power BI Desktop پرسوجوهای لازم را مجدداً ارسال کرده و ویژوال را بهروزرسانی میکند.
انتشار گزارش به Power BI Service، مدل معنایی را ایجاد و آپلود میکند، مشابه روش وارد کردن دادهها. اما این مدل معنایی شامل هیچ دادهای نیست.
هنگام باز کردن یک گزارش موجود یا ایجاد یک گزارش جدید در Power BI Service، دادههای موردنیاز از منبع داده زیرین بازیابی میشوند. بسته به موقعیت منبع داده، ممکن است نیاز به پیکربندی درگاه داده داخلی (On-premises data gateway) باشد.
میتوانید ویژوالها یا صفحات گزارش را بهعنوان کاشیهای داشبورد سنجاق کنید. برای سرعت بخشیدن به بارگذاری داشبورد، کاشیها بهصورت برنامهریزیشده تازهسازی میشوند، مثلاً هر ساعت. فرکانس تازهسازی را میتوان بر اساس میزان تغییرات دادهها تنظیم کرد.
هنگام باز کردن داشبورد، کاشیها دادههای آخرین تازهسازی را منعکس میکنند، نه تغییرات لحظهای. برای اطمینان از بهروز بودن دادهها، داشبورد را دستی تازهسازی کنید.
اتصالات زنده (Live Connections)
هنگام اتصال به SQL Server Analysis Services، میتوان دادهها را وارد کرد یا از اتصال زنده به مدل داده منتخب استفاده کرد. اتصال زنده مشابه DirectQuery است: هیچ دادهای وارد نمیشود، و منبع داده زیرین برای تازهسازی ویژوالها پرسوجو میشود.
🔹 مثال: اگر هنگام اتصال از طریق Import به SQL Server Analysis Services، یک پرسوجو علیه منبع تعریف کرده و دادهها را وارد میکنید، اما اگر اتصال زنده برقرار کنید، پرسوجویی تعریف نمیشود و کل مدل خارجی در لیست فیلدها نمایش داده میشود.
این وضعیت برای برخی منابع دیگر نیز صدق میکند، اما گزینه وارد کردن داده وجود ندارد: مدلهای معنایی Power BI (مثلاً اتصال به یک مدل معنایی منتشرشده در سرویس برای ایجاد یک گزارش جدید روی آن) Microsoft Dataverse
عملکرد اتصالات زنده در Power BI Service
هنگام انتشار گزارشهای SQL Server Analysis Services که از اتصال زنده استفاده میکنند، عملکرد مشابه گزارشهای DirectQuery خواهد بود:
- باز کردن یک گزارش موجود یا ایجاد یک گزارش جدید در Power BI Service، منبع داده SQL Server Analysis Services را پرسوجو میکند.
- این فرآیند ممکن است نیاز به پیکربندی درگاه داده داخلی داشته باشد.
- کاشیهای داشبورد بهطور خودکار طبق برنامهریزی مثلاً هر ساعت تازهسازی میشوند.
اما اتصال زنده با DirectQuery تفاوتهایی دارد: در اتصالات زنده، هویت کاربری که گزارش را باز میکند همیشه به منبع SQL Server Analysis Services ارسال میشود.
مزایای استفاده از DirectQuery در Power BI
- بهروز بودن دادهها – گزارشها همیشه دادههای لحظهای را نشان میدهند.
- عدم نیاز به ذخیره دادهها – دادهها در حافظه Power BI ذخیره نمیشوند، بلکه مستقیماً از منبع بازیابی میشوند.
- امکان کار با حجم دادههای بزرگ – مناسب برای پایگاههای داده کلانداده (Big Data) که وارد کردن دادهها به Power BI ممکن نیست.
- رعایت امنیت دادهها – دادهها در منبع اصلی باقی میمانند و طبق سیاستهای امنیتی پایگاه داده مدیریت میشوند.
محدودیتهای DirectQuery
- محدودیت در عملکرد – پرسوجوها وابسته به سرعت منبع داده هستند، و ممکن است کندی در بارگذاری گزارشها مشاهده شود.
- عدم امکان استفاده از تمام قابلیتهای Power BI – برخی ویژگیهای Power BI Desktop، مانند Quick Insights و برخی توابع DAX، با DirectQuery سازگار نیستند.
- محدودیت در تغییر دادهها – کاربران نمیتوانند دادههای اصلی را تغییر دهند؛ تنها امکان مشاهده و تجزیهوتحلیل دادهها وجود دارد.
راهکار: برای بهبود عملکرد DirectQuery، شاخصهای جستوجوی بهینه ایجاد کنید و از منابع دادهای قدرتمند استفاده کنید.
راهنمای بهینهسازی DirectQuery در Power BI
🔹 برای افزایش کارایی، موارد زیر را رعایت کنید:
- استفاده از پایگاه دادههای بهینه – منابع داده مانند SQL Server یا Azure Synapse Analytics عملکرد بهتری برای DirectQuery دارند.
- کاهش تعداد پرسوجوها – سعی کنید گزارشها را ساده طراحی کنید تا از ارسال پرسوجوهای پیچیده جلوگیری شود.
- استفاده از Indexing در پایگاه داده – اجرای شاخصهای مناسب (Indexes) در پایگاه داده باعث افزایش سرعت پاسخدهی میشود.
- محدود کردن فیلترها و Aggregation – استفاده از فیلترهای مؤثر و Aggregation مناسب در پرسوجوها میتواند عملکرد را بهینه کند.
چگونگی تشخیص مشکلات عملکردی DirectQuery
اگر گزارشها در Power BI کند بارگذاری میشوند، موارد زیر را بررسی کنید:
- بررسی عملکرد پایگاه داده – زمان پاسخدهی به پرسوجوهای SQL را تست کنید.
- بررسی میزان استفاده از منابع پردازشی – بررسی کنید که پایگاه داده دچار اضافهبار (Overload) نشده باشد.
- بررسی تنظیمات فیلترها – آیا پرسوجوها بهینه اجرا میشوند یا دادههای زیادی بدون نیاز بازیابی میشوند؟
- آزمایش با نمونه دادههای کوچکتر – بررسی کنید آیا کاهش حجم دادهها باعث افزایش عملکرد میشود؟
استفاده از ابزار Profiler در SQL Server میتواند به شناسایی مشکلات عملکردی پرسوجوها کمک کند.
جمعبندی و نتیجهگیری
DirectQuery در Power BI یک روش قدرتمند برای اتصال به دادههای لحظهای بدون نیاز به وارد کردن دادهها است. این روش مناسب برای پایگاههای داده کلان، تحلیلهای زنده، و گزارشهای پویا است. محدودیتهایی مانند وابستگی به عملکرد پایگاه داده و عدم سازگاری با برخی ویژگیهای Power BI دارد. بهینهسازی پایگاه داده، کاهش پیچیدگی پرسوجوها، و استفاده از Indexing میتواند عملکرد DirectQuery را بهبود بخشد.
اگر قصد دارید گزارشهای پیشرفتهای با دادههای لحظهای ایجاد کنید، DirectQuery یک انتخاب مطمئن و قدرتمند در Power BI خواهد بود!
برای خرید لایسنس نرم افزار Power BI ، میتوانید از خدمات ما استفاده نموده و درخواست خود را از طریق فرم زیر ثبت نمایید.
میتوانید پاور بی آی دسکتاپ رایگان را دانلود کنید : Power BI desktop download