Professional Documents
Culture Documents
DW ...
DW ...
جلسه اول
جلسه دوم
جلسه سوم
جلسه چهارم
جلسه 5
جلسه 2
بیل اینمون
Integrated …. Time variant … non volatile … subject orient
فرم نرمالسازی
عالوه افزونگی ،مشکل update insert deleteرا حل میکند.
اگرنرمال نکنیم مثال اگر چیزی رو دیل کنیم یهو کل اطالعات اون رکورد پریده یا اپدیت
کنیم باید کل حداول بگردیم پیداش کنیم اپدیت کنیم درحالی ک با نرمالسازی براحتی انجام
میدهیم.
الگوی star
اگر جداول دایمنشن مستقیم و بی واسطه ب جدول فکت متصل شن بوسیله دایمنشن کی البته
دیقه 39دیاگرام
باید در ساخت dwحواسمان باشد که ممکن است برای بعضی از دسته ها مقداری هنو
نباشد و وقتی کوئری میزنیم یا داشبورد میسازیم دیگر ان نال هارا از دست میدهیم لرا
همین درست باید طراحی کنیم و درواقع در این حالت نمیتوان همه را یک جا دریک جدول
اورد و در واقع الگویمان اسنو فلیک میشود.
همچنین باید حواسمان باشد جدولی باشد که جامع باشد! صرفا نیایم بهم بچسبانیم بریم چرا
ک اگر وقتی دشبوردی میسازیم وقتی فیلتر میکنیم ممکن است ان وقت همه ی جدولمان را
فیلتر نکند ک این مربوط ب ان است ک اطالعات بعضی از جداول فقط در اسالیسر است
ک همه را فیلتر نمیکند پس در این صورت باید جدولی بسازی همه ی اون اطالعات ان تا
جدول را در بر گیرد.
دوطرفه ببین...یک مشتری چند ادرس هر ادرس ب چند مشتری؟
جلسه 3
Time variant
جدول دیم دیت فقط و فقط به جداول فکت متصل هست(برای جلوگیری از لوپ)
مهم
باید حواسمان به ارتباط جدول فکت و دیم باشد ک چند به چند نباشد ...اگر چند به چند بود
باید جدول واسط درست کرد ک کلید طرفین را در ان اورده ...ک ب این فکت لس فکت
گوییم ...فکت لس فقط بین جدول دیم و فکت ک بدلیل رفع چن ب چن درست شده
ایدی ندهیم برای پرایمری کی
... Shared dim … conformed dimکانفورد در واقع متحدالشمل و درست ترش
ابتدا شیر را درست را میکردیم و سپس کانفورد
جدولی ک بین دو فکت میاید ک تاریخ است باید اتریبیوت های هرجدول را شامل شود
فقط بین جداول فکت مفهوم دارد
Data profile
از پیش نیازهای ساخت انبارداده میباشد
برای هرجدولی ک نیاز داریم از OPDدی پی را تهیه کرده
در ssisدر تب کنترل فلو باید ایجادش کرد.
ابتدا رو کلیک کرده بهش مسیر تولید داده ...سپس در کوییک پروفایل کانکشنش را باید
مشخص کرد ک ب کدام دیتابیس وصل شود =...حال جدولی ک میخواهیم ببینیم چی ب چیه
انتخاب کرد ...در همون جا کلید یونیک هم میدهد ک میتوان ازش حواس کامپوزیت کی ای
بدهد
اکزکیوت باال کل پکیج ...اگز خودش تسک فقط همون اجرا میشه
در ویو با دبل کلیک میبینیم گزارش را
دیستبریوشن ...توزیع دیتا مینیمم و مکس ،طول
ترفند
کامپوننت multi task
ابتدا قبل وصل کردن مبدا به مقصد این را استفاده کرده ببینیم چی داریم میاریم
ابتدای مسیر وصلش= کرده و روی مسیرش زده و فعال کرده
Nتا ازین میتوان گذاشت مثال هر کاری کردیم چک کنیم کصشر درست نکرده باشیم
هدف :پیش نمایشی از دیتا
اگر data flowها بهم وصل بودند مرحله ای اجرا میشدند ولی اگر از هم جدا بودند وصل
نبوند موازی اجرا میشدند
ادامه ساخت DW
نکته ...جدول فکت نباید ب جزئیات و..تقسیم شود ...باید یدونه باشد ...اگر چنتا بود یکی
کرده با جوین
نکته
در جدول فکت دیتاورهوس ستون تفسیر شدنی به هیچ وجه نباید داشته باشیم
ینی مثال در ستونی 1ینی این اینترنتیه 0ینی این حضوری =...اینجوری نباید باشد
پس اینو باید به دو جدول فکت در دیتاورهوس تبدیل کرده
جوین در ssis
مهم
برای گرفتن فایل xmlدر سورس کامپوننت جدا داریم باید با اون بگیری فایل را
??In line schema
Xsdرا خودت درست کن ن با جنریت
Conditional split
شرط گذاشتن رو جدولی برحسب چیزی میخوایمش ...مثال فالن ستون یک بود میخوایم یا
فالن ستون نال هارا نمیخواهیم دیقه 19مهم
توجه !
کامپوننت aggهم داریم مثال جمع بزنیم گروپ بایش کنی اینا
خب توجه مهم
با همین SSISهم میتوان اگری گیت کرد هم سرت کرد!
ب این صورت ک ابتدا باید فایل را حتما از سورس بگیریم ...سپس اگر خواستیم برحسب
ی سری شرط ها فایلمان را بگیریم از کاندیشمال اسپلیت ساتفاده کرده سپس اگری گیت
سپس اگر خواستیم سرت ! این پایان کار نیست در نهایت باید حتما ان را ب مقصدی تحویل
دهیم
مهم
بیایم فرض کنیم از چنتا دیتابیس مختلف بخوایم داده بگیریم چیکار کنیم حاال؟!
میتوان سنتی کار کرد کلی DFگذاشت
یه راه دیگ هم هست ک ی جدول درست کنیم دیتا بیس ها و جداولی ک میخواهیم را در ان
جدول نوشته +اکتیو یا غیراکتیو بودنش
سپس با for each containerلوپ adoزده روش
برای استفاده ازین کانتینر باید ابتدا یک اگزتسک هم بنویسیم (در اس کیو ال تسک) ک بگیم
سلکت کن این جدولو با ایز اکیتوش و این اگز تسک را باید در متغیر ابجکت انداخت
در قسمت ریزالت ست تنظیمات اسمو انواع متغیرش را باید مشخص کنی
اگر دوتا ایکس تا سلکت داشتیم باید برای تک تکشون متغیر تعریف کرد
این اگزتسک خروجی اش یک جدول است پس باید result setفول باشه
ریزالت ست مجموعه ای از جداول یا جدول است
از انجایی ک این جداول در سرور و دیتابیس های مختلف است باید در پراپرتیع سورس
Intial va server nameرا تغییر دهیم =...دیقه 35
هم چنین در همون سورس باید قسمت جدول را متغیر کرده حتما ...مقدار دهی اولیه حتما
انجام شود
حواست به تغییر کدپیج حین خواندن فایلی و ریختن ب جدولی باشد که باید یکی باشد چراکه
عوض میشود مقدار اشغال فضا و دیتاتایپش
این کدپیج در پراپرتیز سمت مقصد و مبدا است ک باید بسته ب شرایط یکیش را تغییر دهی
(دیقه )70-60
کامپوننت comversionبرای تغییر دیتاتایپ
توجه
پارامتر
دیقه 70
تمرین دیقه 90جالب
Incremental load
SCD
سه نوع دارد
: 0بعضی از ستون ها هنگام بروزرسانی ب هیچ وجه نباید تغییر کند!میشه فیکسد
اتریبیوت ک تایپ یک
: 1هرتغییری داشته باشیم تغییر میدهد هیستیکال نداریم
: 2قبلی را نگه میدارد و یک سطر جدید با همون ایدی ویژگی ها میدهد البته ساروگیت
متفاوته
با اینکار هیستریکال رعایت شده
برای بروزروسانی
برای جداول دایم از scdاستفاده میشود
Update insertاک ولی دیل نه
Changing attributes
برای وقتی است ک اتریبیوتی را تغییر میدهیم و هیستریکال گرفته ایمش و حاال میپرسد
مقدار اتریبیوت در تاریخ قبل هم تغیییر کند یا خیر =...بستگی ب اون بیزنس و اتریبیوت
داره
Intramded memer
برای وقتی ک مشتری چیزی جدیدی در جدول دیم باید بیاید ولی هنو وقت اپدیتش نشده پس
نمیاید حال اون مشتری ی تراکنشی انجام داده در فکت میخواهیم بیاید.
وقتی اینو بزنیم دیگ مشکلی نداریم
تیکشو حواست باشه بزنی پس
این ویژگی برای لحظه ی آنی است!
وقتی جدولی هیستریکال داریم بقیه رو چنج باید بگیریم چرا ک اینفرد داشته باشیم و فیکس
باشه دیگ نال میده و چنج نمیکنید!!
مهم
در جدول فکت ستون تفسیر شدنی نداریم
ینی مثال بگیم 0ایناس 1ایناس ...پس باید جدا کنیم اگر اینجوری بودن
توجه
وقتی ک داریم در سورس دیتا مشخص میکنیم اگر ازون جدول ی سری ستونش مدنظرمون
بود ن همه اش از build queryاستفاده کرد ...از بخش کالم بری کیر میشی
در کامپوننت sortعامل اتصالو باید درش مشخص کنی
Conditional split
انشعاب دادن یک جریان(ورودیش در اصل باید یک جدول باشد مثل مرج)
میتوان رو متغیرها ستون اعمالش کرد یا nتا خروجی داشته باشد
توجه
وقتی مرج میکنی در ssisباید یا سرتش کنی با کامپوننت یا دستی تو همون سورس در
ادونس سرتش کنیم بعد بدیمش مرج
کامپوننت lookup
چرایی استفاده؟!