آموزش طراحی انبارداده سازمانی(قسمت دوم)
دربخش دوم آموزش طراحی و پیاده سازی انبارداده سازمانی به چند تعریف و چند نکته کاربردی مهم در طراحی هرچه صحیح تر میپردازم:
Attribute:
در هر Dimension Table برای هر Member یک نام مشخص وجود داشته باشد که به آن Attribute می گوییم.
Groupable:
به مجموعه ای از Attribute ها که از یک Dimaension Tabel باشند و بتوانند با هم تشکیل یک گروه بدهند گفته میشود. مثل(سال و ماه و روز) یا (سال، فصل ماه، هفته روز).
نکته: این گروه بندی میتواند طبیعی یا غیرطبیعی باشد. به عنوان مثالی از غیر طبیعی ها مثل رنگ ها و سایزها.
Hirarchy:
مجموعه Attribute های Groupable میتوانند یک Hirarchy بسازند که Measure ها را از بالا به پایین ریز کند. (Slice & Dice | DrillDown )
نکته یک:
در هنگام طراحی جداول Dimension بهتر است از یک ستون مجزا و Auto Incriment استفاده کنیم. ۲ دلیل مهم برای اینکار وجود دارد:
دلیل یک: در گردآوری اطلاعات از بانک های اطلاعاتی مختلف اگر کلید های آنها متفاوت باشند ما دچار مشکل نخواهیم شد و تنها در ETL یک Mapping نیاز خواهیم داشت.
دلیل دو: برای نگه داشتن تاریخچه تغییرات اطلاعات پایه بسیار مهم است.
مثال: تغییر کد محل زندگی یک شخص در بانک اطلاعات عملیاتی بعد از مدتی یک امر طبیعیست. با این فرض که قبلا این اطلاعات وارد انبار داده ما شده باشد در صورت این تغییر صحیحی نیست که اطلاعات در انبار داده Update شود بلکه باید کد جدیدی Insert شود. همانطور که میدانید این تفکر در OLTP در حالت طبیعی غلط است ولی در OLAP ته تنها صحیح است بلکه لازم است. باید گفت در مجموع ممکن است تغییر اطلاعات بر مبنای کلید اصلی در جدول Source ایجاد شود که نباید در جدول Dimension اعمال شود.
نکته دو:
در Dimension Table ها عملیات Update انجام نمیشود بلکه Insert انجام میشود و اطلاعات هر چند تکراری با ID جدید ایجاد میشوند.(البته برای موارد استثنا باید Tools های مخصوص و جداگانه برای مرحله ETL ایجاد شود )
نکته سه:
کلیدهای اصلی جداول Dim بهتر است از نوع int انتخاب شوند. دلیل اصلی این کار کم حجم تر شدن جداول Fact Table میباشد و افزایش سرعت میباشد.
مدل های طراحی انبا داده:
ü طراحی ستاره ای یا STAR :
ü طراحی دانه برفی یا Snowflake:
نکته یک:
بهتر است تا جایی که ممکن است مدل طراحی ستاره ای باشد. دلیل این توصیه پیش گیری از انفجار اطلاعاتی بواسطه ضرب دکارتی اطلاعات جداول در یکدیگر است.
- یك پایگاه از اطلاعات راهبردی كه ماموریت را تعیین می كند