خانه / آموزش Power BI / DirectQuery ، Live Connection یا Import Data ؟ تصمیم سخت !

DirectQuery ، Live Connection یا Import Data ؟ تصمیم سخت !

این پست ترجمه و خلاصه شده مقاله ای از استاد رضا راد میباشید که میتوانید نسخه اصلی را از لینک https://radacad.com/directquery-live-connection-or-import-data-tough-decision مطالعه کنید.

سه روش اصلی Power BI برای اتصال به منابع داده :

Power BI، از روش های مختلف برای اتصال داده ها پشتیبانی می کند، به همین دلیل انتخاب روش درست همیشه انتخاب سختی است. شما درباره ی کوعری مستقیم DirectQuery، اتصال زنده (Live Connection) و وارد کردن داده ها (Import Data) شنیده اید. معنی این سه چیز واقعا چیست؟ و در چه موقعیتی باید یکی از آن ها را به جای موارد دیگر انتخاب کنید؟ کدام ‌یک سریع تر است؟ کدام‌یک انعطاف پذیر تر است؟ آیا DirectQuery و Live Connection در واقع یک چیز هستند؟ یا دو روش مجزا؟ و خیلی سوال های دیگر.
همیشه در دوره های آموزشی، بحث های کنفرانس و پست های بلاگ، سوال های زیادی مثل این ها مطرح می شوند. در این فصل جواب تمام سوال های بالا رو می گیرید. این فصل به شما کمک می کند بتوانید روش اتصال داده ها و معماری درست برای Power BI Solution را انتخاب کنید.

چرا این یک تصمیم گیری سخت است؟

اگر Power BI تنها یک روش برای اتصال به منبع داده ها می داشت، در آن صورت همه چیز آسان بود. شما هیچ وقت به انتخاب بین روش ها و پیدا کردن روش درست برای خودتان احتیاج پیدا نمی کردید؛ اما Power BI از سه روش مختلف برای اتصال به داده ها پشتیبانی می کند:
DirectQuery، Live Connection و import data (بعضی ها به آن به روز رسانی برنامه ریزی شده یا scheduled Refresh می گویند).
خیلی از شما ممکن است هنوز فکر کنید که DirectQuery و Live Connection یکسانند، اما آن ها متفاوت هستند. در ادامه ی این فصل تفاوت بین آن ها را متوجه خواهید شد. هر روش معایب و مزایایی دارد. بسته به سناریویی که از Power BI برای آن استفاده می کنید ممکن است یک روش را به روش های دیگر ترجیح دهید. در روند اجرا، تغیر روشی به روشی دیگر، پس از مدتی می تواند عملیات وقت گیری باشد؛ بنابراین انتخاب روش مناسب از ابتدا بهترین کار است.

انتخاب روش مناسب یک قدم مهم برای معماری Power BI Solution است که معمولاً در مراحل اولیه قبل از شروع اجرا باید انتخاب کنید.

در این فصل جواب تمام سوالات زیر و چیستی روش ها را نیز شرح خواهیم داد.

  •  Import Data / scheduled Refresh چیست؟
  • DirectQuery چیست؟
  • Live Connection چیست؟
  • تفاوت بین Live Connection و DirectQuery چیست؟
  • نقاط قوت و ضعف هر روش.
  • کدام روش بهترین و سریع ترین اجرا را دارد؟
  • کدام روش انعطاف پذیری بیشتری دارد؟
  • کدام روش مقیاس پذیرتر است؟
  • سناریوهای معماری برای استفاده از هر روش چیست؟
  • نقش دروازه (getaway role) چیست؟

بررسی روش Import Data یا Schedule Refresh

با این روش اطلاعات داخل Power BI بارگزاری Load میشوند و این یعنی مصرف RAM و HDD برای نگهداری این اطلاعات.
تا زمانی که با Power BI Desktop در حال طراحی گزارش هستید و از این روش استفاده میکنید , از RAM و HDD کامپیوتر شما برای نگهداری اطلاعات مصرف میشود و زمانی که گزارش را بر روی سرور منتشر کردید , از منابع RAM و HDD سرور برای بارگزاری اطلاعات استفاده میشود.

اگر بانک اطلاعاتی شامل ۱۰۰ جدول باشد اما فقط ۱۰ تای آن را import کنید , فقط به اندازه همان ۱۰ جدول از ram و hdd فضا گرفته میشود و نه ۱۰۰ جدول.
در اصل به همان اندازه که اطلاعات وارد power bi میکنید (import) , از ram و hdd مصرف میشود.

موتور فشرده سازی اطلاعات xVelocity

در روش import اولین چیزی که به ذهنتان میرسد این است که اگر اطلاعات یک دیتابیس ۱۰۰ گیگابایتی را وارد power bi کنید , باید سایز فایل power bi هم ۱۰۰ گیگ شود. اما این اشتباه است!
power bi از یک موتور فشرده سازی اطلاعات بنام xVelocity استفاده میکند که مبتنی بر تکنولوژی Column store in-memory میباشد.
شاید اگر شما اطلاعات یک فایل اکسل ۱ گیگابایتی را وارد power bi کنید , فایل power bi شما ۱۰ مگابایت شود ! و این بخاطر فشرده سازی اطلاعات توسط xVelocity است.
البته فشرده سازی نرخ ثابتی ندارد مثلا همیشه ۱۰ برابر فشرده نمیکند و میزان فشرده سازی به عوامل مختلفی مانند نوع داده ای ستونها , میزان تنوع داده های داخل ستون دارد.

بطور خلاصه میتوان گفت در روش import data اطلاعات داخل power bi بارگزاری و فشرده میشوند .

مزایا و معایب روش Import data

مزایا
– در این روش میتوانید از تمام امکانات و بخش های Power BI Desktop بدون هیچ محدودیت استفاده کنید.
– میتوانید اطلاعات از منابع مختلفی با هم بخوانید مثلا بخشی از اطلاعات را از فایل اکسل بخوانید و بخشی دیگر را از وب سرویس یا فایل متنی وارد power bi کنید.
– میتوانید با power query اطلاعات را دستکاری کنید تا فرمت و قالب مدنظرتان را داشته باشند.
– میتوانید به کمک زبان DAX , انواع میژر , ستون محاسباتی و جدول محاسباتی بسازید.
– import اطلاعات, سریعترین روش هست چرا که تمام اطلاعات داخل RAM بارگزاری میشود و تمام محاسبات در سریعترین زمان ممکن انجام میشود

معایب :
محدودیت حجم فایل, بزرگترین ایراد این روش این هست.
در این روش حجم نهایی دیتا مدل یا همان فایل power bi بایستی ۱ گیگابایت باشد. البته دقت کنید که این ۱ گیگ بعد از فشرده سازی اطلاعات هست و شاید حجم اطلاعات در منابع اطلاعاتی هنگام import بیشتر از چند گیگ باشد.
اگر در power bi service اکانت دارید به شما ۱۰ گیگ فضای رایگان داده شده است که میتوانید ۱۰ فایل power bi با حجم حداکثر ۱ گیگ در آن آپلود کنید.
البته اگر اکانت premium داشته باشید این میزان بیشتر از ۱۰ گیگابایت خواهد بود.
اگر از power bi report server استفاده میکند فضای سرور بستگی به سخت افزار آن دارد اما همچنان سایز فایل power bi باید حداکثر ۱گیگابایت باشد.

اگر از چند منبع متفاوت اطلاعات را میخوانید , یا منبع اطلاعاتی شما فایلهای اکسل هستند و یا حجم اطلاعاتتان کم هست (در حد چند گیگ ) , روش import را انتخاب کنید

بررسی روش DirectQuery

در این روش power bi بطور مستقیم به منبع داده ای متصل میشود و مانند روش قبلی اطلاعات داخل power bi بارگزاری نمیشوند.
در این روش Power bi بیشتر نقش بصری سازی visualization را دارد و هر وقت نیازی به اطلاعات داشت , به منبع اطلاعاتی وصل میشود , اطلاعات را میخواند و نمایش میدهد.
برای همین در این روش سایز فایل power bi بسیار ناچیز است.
منابع اطلاعاتی که بصورت direct query میتوان به آنها متصل شد:

  • SQL Server
  • Oracle Database (version 12 and above)
  • Amazon Redshift
  • Azure HDInsight Spark (Beta)
  • Azure SQL Database
  • Azure SQL Data Warehouse
  • IBM Netezza (Beta)
  • Impala (version 2.x)
  • SAP Business Warehouse (Beta)
  • SAP HANA
  • Snowflake
  • Spark (Beta) (version 0.9 and above)
  • Teradata Database

برای اطلاعات بیشتر در مورد انواع منابع اطلاعاتی و روشهای اتصال به آنها حتما به لینک
https://docs.microsoft.com/en-us/power-bi/power-bi-data-sources
مراجعه کنید.

مزایا و معایب روش Direct Query :

۱- مقیاس پذیری “مزیت اصلی” :
این روش محدودیت سایز ندارد چرا که واقعا هیچ دیتایی در Power BI بارگزاری نمیشود. برای همین هرگز با مشکل محدودیت سایز مواجه نمی‌شوید. به کمک این روش میتوانید به منابع اطلاعاتی مانند SQL Server , Oracle و … با سایزی در حد چند پتابایت متصل شوید. ( ۱ پتابایت, ۱۰۰۰ ترابایت میشود)

۲- محدودیت در عملکرد :
در این روش به نسبت مدل import کمتر از امکانات power query میتوانید استفاده کنید.
در این روش فقط دو نوار Report View و Model View فعال هستند و نوار Data View مشاهده نمیشود.
در نوارد Model View میتوانید در صورت لزوم رابطه بین موجودیتها و جداول را تغییر دهید.

2017-09-13_10h22_06


اگر منبع اطلاعاتی که میخواهید به آن متصل شوید از روش Direct Query پشتیبانی نکند, صفحه ای نمایش داده میشود که بتوانید به مدل اتصال Import تغییر روش دهید.

2017-09-13_10h24_42

۳- محدودیت در زبان DAX:
در این روش نمیتوانید از انواع عبارتهای DAX استفاده کنید . مثلا توابع کار با تاریخ
Time Intelligence functions are not supported
Calculated Table are not supported

2017-09-13_10h25_59

با این حال در این روش تمام امکانات Visualization بدون محدودیت در دسترس هستند.

۴- اتصال کند Slow Connection
بزرگترین ایراد این روش کندی اتصال به منبع داده نسبت به روش import است.
در این روش هر ویژوال ابتدا یک کوئری به سمت منبع اطلاعاتی ارسال میکند و دیتایی که در جواب میگیرد را بصورت گرافیکی نمایش میدهد.
از آنجایی که در یک صفحه چندین Visual وجود دارد و هر کدام در حال ارسال کوئری و دریافت اطلاعات هستند حتما بایستی اقداماتی برای افزایش کارایی در این روش انجام دهید.
Performance Considering is a MUST DO in the data source for this model

یک مثال از افزیش کارایی Performance

در اینجا یک کوئری بر روی جدولی با ۴۸ میلیون رکورد که از ایندکس معمولی normal index   استفاده میکند, اجرا شده است و میبینید که ۴ دقیقه زمان برد.

2016-04-10_15h34_02

حالا اگر بر روی همین جدول Clustered Column Store index را ایجاد کنیم و دوباره همان کوئری را اجرا کنیم زمان اجرا تقریبا صفر میشود.

Performance Boost with Clustered Column Store Index
برای افزایش کارایی دیتابیس Performance tuning  , کتابها و فایلهای آموزشی زیادی وجود دارد که اگر میخواهید از روش Direct Query استفاده کنید حتما باید مطالعه بفرمایید.
توجه داشته باشید که روشهای افزایش کارایی در هر نوع دیتابیس مانند SQL Server, Oracle و .. با یکدیگر متفاوت هستند.

 

روش اتصال Composite Model

در نسخه های جدید Power BI Desktop بجز نسخه RS این امکان وجود دارد که همزمان به دوصورت Direct Query و Import به منابع داده ای متصل شوید که به این روش  Composite Model میگویند .
برای آشنایی بیشتر لطفا این لینک را مطالعه بفرمایید
https://radacad.com/composite-model-directquery-and-import-data-
combined-evolution-begins-in-power-bi

بررسی روش اتصال زنده Live Connection

این روش خیلی شبیه مدل Direct Query هست یعنی اطلاعات داخل Power BI بارگزاری نمیشوند و هر بار کوئری به سمت منبع اطلاعاتی ارسال و اطلاعات دریافتی در ویژوال نمایش داده میشود.
اما این روش فقط برای سه منبع زیر قابل استفاده است:

  • SQL Server Analysis Services (SSAS) Tabular
  • SQL Server Analysis Services (SSAS) Multi-Dimensional
  • Power BI Service

هنگام اتصال Live Connection با Power BI فقط میتوانید عملیات Visualization را انجام دهید و عملیات Data Modeling مانند ساخت هایراکی یا مدیریت رابطه ها بایستی در سمت منبع اطلاعاتی انجام شود .

مزایا و معایب مهم روش Live Connection

۱- Big Size Model with OLAP or Tabular Engine
در این روش هم مانند مدل Direct Query , محدودیت سایز وجود ندارد
اگر منبع اطلاعاتی SSAS Tabular باشد میتوانید از زبان DAX و اگر منبع اطلاعاتی Multi-Dimensional باشد میتوانید از زبان MDX استفاده کنید.
به کمک زبان DAX یا MDX میتوانید تمام محاسبات یا مدلسازی های موردنیاز را انجام دهید.

مزیت Live Connection نسبت به Direct Query

در روش Live Connection میتوانید از زبان DAX یا MDX برای برخی تحلیلهای پیچیده استفاده کنید که در روش Direct Query قابل استفاده نیستند.
انجام برخی تحلیل ها با زبان TSQL گاهی نشدنی یا خیلی زمانبر است درحالی که همان تحلیلها به زبان DAX یا MDX براحتی پیاده سازی میشود.

۲-No Power Query. Just Visualization
بزگترین ایراد این روش این است که اصلا از Power Query نمیتوانید استفاده کنید و فقط نوار Report View برای مصورسازی Visualization در دسترس است.

2017-09-13_10h39_56

۴- Report Level Measures

فقط اگر بصورت Live Connection به SSAS Tabular متصل شوید , میتوانید به زبان Dax, سنجه آماری یا Measure در سطح گزارش یا همان داخل Power BI Desktop بسازید.
البته توصیه میشود انواع محاسبات DAX را در منبع اطلاعاتی SSAS Tabular پیاده سازی کنید و از Power BI جهت بصری سازی Visualization استفاده کنید و فقط زمانی از این امکان استفاده کنید که دسترسی به SSAS Tabular را ندارید.
فعلا تا هنگام نوشتن این پست امکان اضافه کردن Calculated Memberبرای SSAS Multi-Dimensional وجود ندارد.

2017-09-13_10h44_36

بررسی اجمالی روش Import Data or Schedule Refresh

مزایا :
  • سریعترین روش برای اتصال
  • استفاده کامل از تمام امکانات Power BI
  • ترکیب اطلاعات از منابع مختلف داده ای
  • استفاده کامل از عبارات و انواع محاسبات DAX
  • امکان استفاده کامل از Power Query
معایب :
  • محدودیت سایز ۱ گیگابایت برای فایل گزارش Power BI

بررسی اجمالی روش Direct Query

مزایا:

  • بدون محدودیت سایز . No size limitation

معایب :

  • سرعت اتصال کند در صورت عدم رعایت اصول Performance Tuning در منبع اطلاعاتی
  • عملکرد محدود Power Query
  • استفاده محدود از زبان DAX

بررسی اجمالی روش Live Connection

مزایا :
  • Large Scale data sources supported. No size limitation as far as SSAS Supports.
  • Report Level Measures
  • امکان استفاده از زبانهای تحلیل MDX or DAX 
معایب :
  • عدم امکان استفاده از Power Qury
  • فقط به یک منبع اطلاعاتی میتوان متصل شد
  • سرعت اتصال کند در صورت عدم رعایت اصول Performance Tuning در منبع اطلاعاتی

درباره‌ی حمیدرضا بابازاده

کارشناس ارشد هوش تجاری در اتریش با بیش از ده سال سابقه فعالیت در زمینه تحلیل دیتا و تدریس SQL SERVER و Power BI

همچنین ببینید

درس پنجاه و یکم – ایجاد فضاهای کاری در Power BI

فضاهای کاری (Workplaces) مکان هایی هستند برای همکاری با همکاران برای ایجاد و اصلاح مجموعه ای از داشبورد ها ، گزارش ها و گزارش های صفحه بندی شده در Power BI دو نوع گروه وجود داد:

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

معادله امنیتی (فقط عدد بنویسید) *