مقایسه نحوه اتصال Import و DirectQuery در Power BI
در Power BI روش های اتصال مختلفی به منابع داده وجود دارد. در این مطلب به مقایسه نحوه اتصال Import و DirectQuery در Power BI پرداخته شده است. انتخاب بین این روش های اتصال از اهمیت بالایی برخوردار است. ما باید بدانیم از هر کدام از روش ها در چه مواقعی استفاده کنیم و از نقاط ضعف و قوت هر یک از این روش ها آگاه باشیم.
هنگامی که از طریق Get Data قصد اتصال به پایگاه داده مانند SQL Server دارید از شما سوال می شود که کدام روش را برای اتصال انتخاب می کنید؟ DirectQuery یا Import؟ کدام یک عملکرد بهتری را ارائه می کند؟ اگر یکی از روش ها بهتر از دیگری بود پس چرا توسعه دهندگان اقدام به ارائه 2 گزینه مختلف نمودند؟ واقعیت این است که پاسخ بستگی به مساله شما خواهد داشت.
حال بیایید به مقایسه روش های مختلف اتصال بپردازیم.
اتصال به روش Import
اگر اتصال به روش Import را انتخاب کنید، داده ها در Power BI بارگذاری می شوند. این روش به معنای مصرف فضا و مموری خواهد بود. در واقع اگر در منبع داده خود 1 میلیون رکورد دارید و آن را در Power BI ایمپورت می کنید، به این معنیست که همین مقدار رکورد را وارد Power BI کرده اید، اما آیا این به این مفهوم است که شما اگر 100 گیگا بایت داده در منبع داده خود دارید، اکنون 100 گیگا بایت داده در فایل Power BI خود خواهید داشت؟ قطعا خیر!
بسیاری از افراد گمان می کنند روش Import به این معنی است که داده با همان حجم خود از مبدا وارد Power BI می شود و همان مقدار فضا اشغال می کند که کاملا اشتباه می باشد. Power BI از موتور فشرده سازی X-Velocity بهره می برد. این موتور داده ها را به طرز باور نکردنی فشرده نموده و ذخیره می کنند. گاهی اوقات میزان داده حجیمی را در Power BI ایمپورت می کنید و تا 10 برابر با کاهش حجم در Power BI روبرو خواهید بود.
البته میزان فشرده سازی به موارد زیادی بستگی دارد. به همین دلیل است که بارها تاکید کرده ایم از آوردن ستون ها یا جداول اضافی اکیدا خودداری کنید. همین طور بارها و بارها از لزوم حذف ستون هایی مانند شماره تلفن، آدرس، کد ملی و ایمیل در صورتی که به آن ها نیاز ندارید گفتیم.
با روش Import به مزایای بسیاری دست پیدا خواهید کرد. شما به تمام امکانات Power BI و Power Query دسترسی خواهید داشت. می توایند از منابع داده مختلف استفاده نموده، داده ها را ترکیب کنید، از قدرت توابع Time Intelligence نهایت استفاده را برده و از تمام توان Power BI بهره برداری کنید.
با این روش شما معمولا نمی توانید فایلی با بیش از 1 گیگ حجم داشته باشید. اما به خاطر داشته باشید 1 گیگابایت به معنای 1 گیگابایت داده نیست و منظور از این مقدار حجم فایل توسعه داده شده توسط شماست.
مهمترین مزیت این روش سرعت بالای شما خواهد بود، چرا که داده در RAM بارگذاری شده و اطلاعات را به سرعت به شما نمایش خواهد داد. با تنظیم بارگذاری خودکار (Schedule Refresh) داده ها در زمان های معینی به روز رسانی خواهند شد و گزارشات شما آپدیت می شوند.
در ادامه مقایسه نحوه اتصال Import و DirectQuery در Power BI به نحوه اتصال Direct Query می رسیم.
اتصال به روش DirectQuery
این روش همان طور که از اسم آن مشخص است اتصال مستقیم به منبع داده است. در این روش داده ها در Power BI ذخیره نمی شوند و از Power BI به عنوان لایه مصور سازی استفاده می شود. در واقع Power BI تنها ساختاری از جداول را در خود ذخیره می کند ولی داده ای در این ساختار ذخیره نمی شود. بدیهی است که با این روش حجم فایل شما بسیار پایین خواهد بود.
محدودیت این روش این است که شما با این روش قادر به اتصال به تعداد کمتری از انواع منابع داده خواهید بود. به طور مثال با این روش قادر به اتصال به فایل هایی نظیر Excel یا واکشی داده از فولدر و همین طور پایگاه داده MySQL و همچنین کد های R به منظور فراخوانی داده نخواهید بود. نکته غم انگیز ماجرا این جاست که شما نمی توانید هم زمان از هر دو روش اتصال استفاده کنید!
مهمترین مزیت این روش این است که محدودیتی در حجم فایل وجود ندارد چرا که داده ای در Power BI ذخیره نمی شود و احتمال بالا بودن حجم فایل بسیار پایین است.
یکی از محدودیت های این روش عدم دسترسی به تمامی امکانات Power BI و Power Query است. همچنین با این روش، به تمامی توابع DAX دسترسی نخواهید داشت. به طور مثال توابع Time Intelligence برای شما غیر فعال خواهد بود.
اما مهمترین نقطه ضعف این روش سرعت پایین آن است. هر ویژوال باید یک کوئری به منبع داده ارسال و پاسخ آن را برگرداند. تصور کنید مدیری در حال کار با داشبوردی است که کوئری ارسالی آن به منبع داده به 4 دقیقه زمان نیاز خواهد داشت. حتی تصور چنین فاجعه ای نیز دردناک است!
توجه کنید تمامی موارد مربوط به بهبود عملکرد باید در منبع داده صورت گیرد. به طور مثال اگر کوئری شما در SQL Server چهار دقیقه به طول می انجامد شما باید بهینه سازی مربوط به آن را در SQL Server انجام دهید.
جمع بندی
در این مطلب به مقایسه نحوه اتصال Import و DirectQuery در Power BI پرداختیم. متوجه شدیم که بالاترین سرعت مربوط به نحوه اتصال به روش Import است. همچنین این روش امکان برخورداری از تمام امکانات Power BI از جمله Power Query و DAX را در اختیار ما قرار می دهد و محدودیت آن محدودیت حجم است.
مهمترین مزیت روش DirectQuery عدم وجود محدودیت برای سایز فایل هاست، چرا که داده ای در مدل ذخیره نمی شود. محدودیت این روش عدم امکان استفاده از تمامی امکانات Power BI و همچنین عدم امکان اتصال به منابع داده ای گوناگون است. شاید تنها کاربرد این روش در داشبورد های کم حجم که نیاز است داده های آن ها به طور لحظه ای به روز شوند کاربرد داشته باشد. در این روش موارد بهینه سازی باید در منبع داده اعمال شود.
درباره حسین وثوقی
دانش آموخته مهندسی صنایع و مدیریت فناوری اطلاعات دانشگاه تهران، علاقه مند به تحلیل و ارائه راه حل برای مسائل و بهینه سازی راه حل ها هستم ...
نوشته های بیشتر از حسین وثوقیمطالب زیر را حتما بخوانید
-
نمونه پروژه داده های اقتصادی با Power BI
387 بازدید
-
نمونه پروژه قند مواد غذایی با Power BI
505 بازدید
-
اولین مسابقه طراحی داشبورد با Power BI
988 بازدید
-
همه چیز در باره اسلایسر Slicer در Power BI
576 بازدید
-
دوره رایگان آموزش Power BI پاوربی آی
2.06k بازدید
-
پروژه مدیریت مواد اولیه و تولید با Power BI
5.71k بازدید
سلام استاد من فایل اکسل م رو get data میکنم از sql و اینکه حجمش بالاست چه دستوری بنویسم که مثلا از تاریخ فلان روز به بعد رو لودکنه
سلام متوجه نشدم
یه راهی که می تونید انجام بدید اینه که یک کوئری برای مثلا سال های قبل بزنید
و یک کوئری برای امسال
که قبلی ها دوباره لود نشن و فقط دیتای امسال لود بشه
WHERE OrderDate >=’1398-01-01′
با سلام
من یک داشبور ساختم که از دیت از sql وارد power bi میشود ( به روش import)
چه راهی برای refresh شدن خودکار دیتاها وجود دارد؟ مثلا ایا می توان هر 10 دقیقه دیتا ها یکبار بروز شوند و از روش دستی استفاده نشود؟
سلام
منظورتون از دیت چیه؟
وقتی از SQL دیتا رو ایمپورت می کنی می تونی اسکژول تعریف کنی تا سر زمان مشخصی رفرش خودکار انجام بشه
معمولا یک یا دو بار در 24 ساعت این کار رو انجام میدیم
چه دیتایی دارید که لازمه هر از 10 دقیقه به روز رسانی بشه؟
سلام ممنون از توضیحات عالیتون
برای حجم بالا اطلاعات (بالای مثلا 3 گیگ) از کدوم روش استفاده کنیم و این که راهی داره برای حجم بالا هم از import استفاده کنیم؟؟
ممنون
حالت دایرکت محدودیت های خودش را داره و من شخصا حالت Import را نرجیح می دهم.
و سوال بعدی این هست که اگر بخوام از Power BI Premium برای import حجم بالا استفاده کنم ، آیا باید لایسنسش رو بخرم؟ یا با لایسنس های رایگان میشه این کا رو انجام داد؟یا از روش Composite mode استفاده کنم ؟؟ممنون
با احتساب دلار 25 هزار تومان نسخه Premium ماهانه 130 میلیون تومان هزینه دارد. ولی تمام قابلیت های Power BI بدون هزینه در ایران قابل استفاده هستند.