لینک ابزار: نسخه Power BI دسکتاپ اکتبر 2020
لینک دیتابیس استفاده شده: دیتابیسAdventureWorksDW
مشکل
یکی از مشکلات اساسی و همچنین کند شدن نمایش گزارشات و سنگینی حجم فایل پروژههای PowerBI و عدم پیادهسازی راحت فرمولهای PowerBI مربوط به عدم طراحی دیتا مدل مناسب در این محیط میباشد.
بهترین روش طراحی مدل دادهای در PowerBI مدل ستارهای (Star Schema) میباشد، در این سند به شما آموزش میدهم که چگونه میتوان مدلهای سیستمهای عملیاتی (OLTP) را به این مدل مناسب تغییر داد.
در ابتدا یکسری مفاهیم اولیه را بررسی میکنم.
راه حل
آشنایی با مفاهیم مورد نیاز :
- بعد Dimension: بُعد توضیحی/ مرجعی درباره مقادیر قابل اندازه گیری(Measurable) هستند، در صورتی که بتوان منابع دادهای را در این دستهبندی قرار داد، جدول مورد نظر بُعد میباشد.
- چه کسی(Who): مشتری، کارمند
- چه چیزی(What): محصول
- زمان(When): تاریخ
- کجا(Where): شعبه، منطقه
- قلم آماری Measure: به هریک از ویژگیهای قابل اندازه گیری قلم آماری میگویند. (تعداد، مبلغ و…)
- حقایق Fact: یک واقعیت (Fact) بخشی از دادههای شما هستند که نشان دهنده یک رخداد یا یک تراکنش/ معامله خاص است، مانند فروش محصول در منطقه و زمان خاص به افراد.
در واقع اطلاعاتی که در Fact وجود دارد شامل فیلدهای خارجی (Foreign Key) به ابعاد و همچنین ستونهای قابل اندازهگیری میباشد.
- مدل داده ای Star Schema: در این مدل دادهای سعی بر این است یک جداول Fact به همراه چندین بعد در اطراف آن پیادهسازی شود به صورتی که ابعاد به بعدهای دیگر تجزیه نشوند.
در ادامه تصویری از مدل دادهای به صورت ستارهای را مشاهده میکنید.
در مدل دادهای از نوع Star، ابعاد به صورت غیر نرمال De-Normalization پیادهسازی میشوند. - مزیت طراحی به صورت Star Schema چیست ؟
در این روش رابطه (Relation) کمتری ایجاد میشود پس نوشتن کویری سادهتر و سریعتر است.
اما چگونه میتوان به این شکل مدل دادهای رسید؟ در دیتابیس AdvantureWorkDW جدول محصول (DimProduct) با جدول زیر گروه محصول (DimProductSubCategory) و همچنین این جدول با جدول گروه محصول (DimCategory) در ارتباط است .
در واقع مدل دادهای ما به طور کاملتر این شکلی میباشد. (یا به عبارتی دانه برفی Snow Flake)


در مدل دادهای از نوع دانه برفی Snow Flake جداول به صورت نرمال شده Normalization وارد سیستم میشوند.
- پیاده سازی ساختار بالا به صورت Star Schema در Power BI:
برای پیادهسازی ابتدا به محیط Power Query رجوع میکنیم از منوی Home گزینه Transform Data را انتخاب میکنیم.
در مرحله بعد دو جدول DimSub Category و DimProduct Category را به جدول DimProduct، الحاق (Merge) میکنیم، در هر مرحله فیلدهای مورد نیاز را استخراج میکنیم.
در پنجره باز شده فیلد ProductSub CategoryKey از جدول DimProduct و جدول DimProductSub Category را انتخاب میکنیم، نکتهای که هست باید نوع ارتباط (Join Kind) را از نوع Left Outer انتخاب کنیم چون همهی محصولات زیر گروه ندارند .
وقتی که در این پنجره دکمه OK را کلیک میکنیم. فیلد جدید به جدول DimProduct اضافه میگردد. که از این پنجره میتوان فیلدهای مورد نیاز را استخراج کرد.
در ادامه یک ارتباط دیگر با جدول DimCategory برقرار میکنیم و فیلدهای مورد نیاز را استخراج میکنیم.
این عمل باعث شد فیلدهای مورد نیاز جداول DimProductCategory و DimProductSubCategory به صورت مجتمع داخل جدول DimProduct اضافه گردد، پس دیگر احتیاجی به این دو جدول نیست. آیا میتوان این دو جدول را حذف کرد؟ خیر، به خاطر اینکه جدول محصول با این دو جدول ارتباط (Join) دارد .
در حال حاضر با به روز رسانی داده (Refresh) هم جداول گروه محصول و زیر گروه محصول به روزرسانی میشوند و هم فیلدهایشان در جدول محصول وجود دارد. برای برطرف کردن مشکل بر روی جدول DimProductCategory و DimProductSubCtageory راست کلیک کرده و گزینه Enable Load را غیر فعال میکنیم.
با غیر فعال کردن گزینه Enable Load جداول به مدل دادهای بارگذاری نمیشوند و فضای Ram را اشغال نیز نمیکنند، نکتهای که هست دادهها داخل آن با هر بار رفرش به روزرسانی میشوند
در نهایت به مدل دادهای Star Schema رسیدیم.
دانلود این مقاله آموزشی :
برای آشنایی بیشتر با این مباحث به لینک زیر مراجعه کنید.
0 دیدگاه
روشن بین
بسیار عالی و بهینه