برقراری رابطه با استفاده از کلید ترکیبی در Power BI

در Power BI و اکثر نرم افزار های هوش تجاری امکان برقراری رابطه بین جداول وجود دارد. روابط به منظور ایجاد گزارش ها با استفاده از چندین جدول استفاده می شوند و معمولا ایجاد گزارش ها را بسیار کارا می کنند و تعامل میان گزارشات را ممکن می سازند به نحوی که انتخاب عناصری از یک گزارش باعث فیلتر شدن دیگر گزارشات می شود. اما محدودیتی که برای ما در Power BI وجود دارد عدم امکان ایجاد کلید ترکیبی برای یک جدول است. در واقع ایجاد کلید ترکیبی با استفاده از چندین ستون که معمولا در پایگاه داده های رابطه ای امکان پذیر است در Power BI امکان پذیر نمی باشد. در این مطلب نمونه ای از ایجاد کلید ترکیبی را با هم خواهیم آموخت.

چالش

فرض کنید جدولی داریم که در آن میزان بودجه و سال و ماه ذخیره شده است. جدول بودجه را در شکل زیر مشاهده می نمایید.

3 13 - برقراری رابطه با استفاده از کلید ترکیبی در Power BI

همان طور که می دانید بُعد زمان (Date Dimension) یکی از مهمترین موارد مورد نیاز در اجرای یک پروژه هوش تجاری است. لذا یک Date Dimension نیز به پروژه اضافه می کنیم. تصویری از DimDate را مشاهده می کنید.

 DimDate حاوی اطلاعات تمامی روزها از چندین سال است. در واقع هر ردیف از جدول حاوی اطلاعات ۱ روز از یک سال خاص می باشد. به طور مثال ردیف اول با کلید ۲۰۱۰۰۷۰۱ نمایانگر سه شنبه، اول ماه july در سال ۲۰۱۰ می باشد. که اطلاعاتی از قبیل نام ماه، شماره ماه، شماره فصل، نیم سال، سال و … از آن در قالب ستون های مختلف استخراج شده است. 

2 16 - برقراری رابطه با استفاده از کلید ترکیبی در Power BI

آیا می توانید بین این دو جدول رابطه برقرار کنید؟ قطعا خیر! چرا که ستون های سال و ماه در هیچ کدام از جداول یکتا نیست. حتما می دانید برای ایجاد رابطه در Power BI باید حتما یکی از طرفین رابطه یکتا باشد. به طور مثال برای ایجاد رابطه بر اساس ستون سال باید ستون سال در یکی از جداول مقادیر یکتا داشته باشد. در حالی که هیچ کدام از ستون های روز، ماه و سال در هیچ کدام از ۲ جدول یکتا نیستند و مقادیر تکراری دارند.

برای این منظور فرض می کنیم بودجه ها همگی در اول ماه تعیین می شوند. لذا عدد یک را به عنوان یک ستون به تمامی ردیف های جدول بودجه به عنوان چندمین روز ماه اضافه می کنیم.

برای این منظور به Edit Queries می رویم.

4 14 - برقراری رابطه با استفاده از کلید ترکیبی در Power BI

از سربرگ Add Column گزینه Custom Column را انتخاب می کنیم.

5 13 - برقراری رابطه با استفاده از کلید ترکیبی در Power BI

در پنجره باز شده عدد یک را وارد کرده تا عدد  به کلیه ردیف ها اضافه شود.

6 12 - برقراری رابطه با استفاده از کلید ترکیبی در Power BI

جدول نهایی به شکل زیر در خواهد آمد.

7 14 - برقراری رابطه با استفاده از کلید ترکیبی در Power BI

در حال حاضر دو جدول ۳ ستون مشترک دارند. سال، ماه و روز در هر دو جدول مشترک است. حال اگر قصد داشته باشیم بین هر یک ازاین ۳ ستون مشترک رابطه برقرار کنیم با اخطاری مواجه می شویم که این ستون ها در هیچ کدام از جداول یکتا نیستند و در صورت برقراری رابطه، رفتار چند به چند (Many to Many) خواهند داشت که مد نظر ما نیست.

مطالعه نمایید.

راه دوم استفاده از هر ۳ ستون به عنوان کلید ترکیبی است. این عمل در Power BI امکان پذیر نمی باشد، این در حالیست که در پایگاه داده رابطه ای این امکان وجود دارد. به طور مثال فرض کنید شماره شناسنامه افراد یکتا نباشد و در هر سال تکرار می شود. می توان از دو ستون سال و شماره شناسنامه به عنوان کلید استفاده کرد. در واقع در این روش ۲ ستون به عنوان کلید معرفی می شود، که در Power BI امکان پذیر نیست.

راه حل

مشکل ما انتخاب چندین ستون به عنوان کلید و برقرای رابطه بین آن هاست، کاری که در Power BI امکان پذیر نمی باشد. اما راه حل چیست؟ درست است که ما امکان برقراری رابطه بین چند ستون را نداریم، اما امکان Join کردن جداول بر اساس چندین ستون وجود دارد.

مطالعه نمایید.

پس مطابق تصویر زیر به Edit Queries می رویم، و روی جدول Budget کلیک کرده و گزینه Merge را انتخاب می کنیم.

Screenshot 696 - برقراری رابطه با استفاده از کلید ترکیبی در Power BI

محیطی مشابه تصویر زیر برای ما باز می شود و  از ما می خواهد تعیین کنیم که عمل Merge بر اساس چه ستون هایی صورت پذیرد. ستون های مورد نظرمان را به ترتیب انتخاب می کنیم (اینکار با کمک کلید Ctrl انجام می شود). ستون های مورد نظر ما به ترتیب سال، ماه و روز است. مطابق تصویر زیر عمل Merge را انجام می دهیم.

Screenshot 694 - برقراری رابطه با استفاده از کلید ترکیبی در Power BI

پس از انجام عمل Join یا همان Merge ستونی به جدول Budget اضافه می شود و از ما می خواهد تعیین کنیم چه ستون هایی به این جدول اضافه شود. ما از تمامی انتخاب های موجود تنها ستون DateKey را انتخاب می کنیم چرا که می خواهیم رابطه را بر اساس این ستون برقرار کنیم. پس مطابق تصویر زیر عمل می کنیم.

Screenshot 695 - برقراری رابطه با استفاده از کلید ترکیبی در Power BI

در نهایت ستون دلخواه ما مطابق تصویر به جدول اضافه می شود.

Screenshot 697 - برقراری رابطه با استفاده از کلید ترکیبی در Power BI

حال به راحتی می توانیم بر اساس ستون DateKey بین دو جدول رابطه برقرار می کنیم. در تصویر زیر این عمل را مشاهده می کنید.

Screenshot 698 - برقراری رابطه با استفاده از کلید ترکیبی در Power BI




6b77990865d588b48d7f55a013cdd7ec?s=300&d=mm&r=g - برقراری رابطه با استفاده از کلید ترکیبی در Power BI

حسین وثوقی

دانش آموخته مهندسی صنایع و مدیریت فناوری اطلاعات دانشگاه تهران، علاقه مند به تحلیل و ارائه راه حل برای مسائل و بهینه سازی راه حل ها هستم ...

دیدگاه بگذارید

avatar
  عضویت  
به دوستتان خبر دهید.