به نام خدا ارائه دهنده : امین امیدوار استاد درس : دکتر عبدهللا زاده درس هوش تجاری http://ceit.aut.ac.ir/islab )source data transformation( تغییرشکل داده های منبع )reconciliation( تلفیق )peer.
Download ReportTranscript به نام خدا ارائه دهنده : امین امیدوار استاد درس : دکتر عبدهللا زاده درس هوش تجاری http://ceit.aut.ac.ir/islab )source data transformation( تغییرشکل داده های منبع )reconciliation( تلفیق )peer.
Slide 1
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 2
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 3
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 4
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 5
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 6
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 7
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 8
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 9
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 10
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 11
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 12
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 13
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 14
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 15
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 16
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 17
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 18
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 19
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 20
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 21
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 22
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 23
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 24
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 25
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 26
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 27
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 2
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 3
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 4
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 5
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 6
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 7
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 8
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 9
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 10
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 11
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 12
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 13
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 14
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 15
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 16
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 17
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 18
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 19
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 20
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 21
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 22
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 23
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 24
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 25
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 26
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27
Slide 27
به نام خدا
ارائه دهنده :امین امیدوار
استاد درس :دکتر عبدهللا زاده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
)source data transformation( تغییرشکل داده های منبع
)reconciliation( تلفیق
)peer reviews( بررس ی زوجی
ETL تست
)formal test plan( برنامه ی تستهای رسمی
ETL development ٍ( ETL فعالیت های توسعه ی
)activities
خروجی مراحل باال
2
درس هوش تجاری
http://ceit.aut.ac.ir/islab
.1
.2
.3
.4
.5
.6
.7
3
درس هوش تجاری
http://ceit.aut.ac.ir/islab
4
درس هوش تجاری
http://ceit.aut.ac.ir/islab
Customer
Accounting
Inventory
Orders
5
E
E
X
T
R
A
C
T
E
E
E
T
T
R
A
N
S
F
O
R
M
T
T
T
درس هوش تجاری
http://ceit.aut.ac.ir/islab
L
O
A
D
BI Target
Database
در رابطه با استخراج داده های منابع
چه کس ی باید برنامه ی ETLرا بنویسد؟ آیا قبال توسعه دهندگان برنامه
های ETLنوشته اند؟ آیا آنها پروسه ی ETLرا می فهمند؟
آیا ابزارهای ETLاز پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به
تغییر دارند؟
آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا
خودمان باید داده ها را استخراج کنیم؟
قبل از اینکه داده ها را بگیریم ،تا چه میزان از سیستم عملیاتی سازمان
اطالع داریم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
6
در رابطه با ابزار ETL
آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید
بودن تا چه میزان با آن آشنایی داریم؟
آیا تیم ETLبه اندازه ی کافی برای کار با ابزار ETLآموزش دیده اند؟
آیا ابزار ETLمورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور
هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد
نویس ی استفاده کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
7
در رابطه با وابستگی های پروسه ی ETL
چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول
های برنامه ی ETLباید به چه صورت باشد ؟
چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟
چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل
از جدول های دیگر لود شوند؟
چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
8
در رابطه با تست
آیا باید بررس ی زوجی ( )peer reviewsصورت گیرد؟ آیا از تکنیک های
XPاستفاده می کنیم؟
چند نفر تست کننده برای پروژه در اختیار داریم؟
هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست
logتهیه می کند و آنها را نگاهداری می کند؟
چه نوع از تستها را باید انجام دهیم؟
چه افرادی در انجام acceptance testingشرکت خواهند کرد؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
9
فعالیت های تغییرشکل داده ()data transformation activities
ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
10
Integration
aggregation
Derivation
summarization
cleansing
Cleansing
پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند
را تغییر داده تا از قوانین تبعیت کنند.
Summarization
در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ،
مجموع) نسبت به داده ها داشته باشیم.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
11
Derivation
در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند .برای مثال
فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود .و یا اینکه از روی
تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم
Aggregation
تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود .برای مثال
تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا
نوشته می شوند
Integration
در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ...به
یک فرمت و شکل در می آوریم
درس هوش تجاری
http://ceit.aut.ac.ir/islab
12
پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است.
برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش ،تالش مورد
نیاز برای تغییر شکل داده ها برابر با %80کار پروژه است.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
13
در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های
ورودی به ETLبه خروجی تبدیل شده باشند .برای این منظور از تکنیک های
زیر استفاده می کنیم
شمار رکوردها ()record counts
شمار دامینها ()domain counts
شمار مقدار ))Amount counts
درس هوش تجاری
http://ceit.aut.ac.ir/islab
14
رکوردهای
خروجی
ماژول فرآیند
رکوردهای ورودی
رکوردهای
ردشده
باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای
ورودی باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
15
در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و
همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می
شوند .در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای
نشان داده شده در سمت راست شکل زیر برابر باشند
تعداد رکوردهای کد خروجی
برای دامین اول
تعداد رکوردهای کد خروجی
برای دامین دوم
ماژول فرآیند
تعداد رکوردهای کد خروجی
برای دامین سوم
تعداد
رکوردها برای
کد ورودی
تعداد رکوردهای رد شده
درس هوش تجاری
http://ceit.aut.ac.ir/islab
16
17
درس هوش تجاری
http://ceit.aut.ac.ir/islab
شبیه به برنامه نویس ی xpاست با این تفاوت که عالوه برآنکه برای کدنویس ی
نیاز به دو نفر است ،برای مالقات ها نیز به دو نفر نیاز می باشد.
در مالقات ها با استفاده از طوفان فکری ،نیازها در آورده می شوند و ایده هایی
برای حل مشکالت خلق می شوند.
زمان جلسات برگزار شده باید کوتاه باشد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
18
Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing
19
درس هوش تجاری
http://ceit.aut.ac.ir/islab
در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با
ارتباط میان ماژول ها نداریم.
کامپایل کردن :بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می
شود یا خیر.
عملکرد :هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته
شده است را به درستی انجام دهد.
تصحیح کردن :هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته
به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد
درس هوش تجاری
http://ceit.aut.ac.ir/islab
20
در این جا اجزای سیستم باهم تست می شوند
تعامالت :در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به
خوبی رابطه دارند یا خیر .آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا
داده های صحیحی به یکدیگر می دهند؟
جریان :در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی
در نظر گرفته ایم اجرا می شوند یا خیر
درس هوش تجاری
http://ceit.aut.ac.ir/islab
21
این نوع تست شبیه به stress testاست و برخی از ماژولهای برنامه که حیاتی و
مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده ،محاسبات
پیچیده )...،تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار
می کند
برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می
دهد؟
Thresholdکارایی سیستم کجاست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
22
آیا داده های مناسب و مورد نظر استخراج شده اند؟
چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم،
آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟
آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟
آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟
آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟
آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟
درس هوش تجاری
http://ceit.aut.ac.ir/islab
23
زمان بندی
کیس های تست گیری
Logهای گرفته شده از تستها
درس هوش تجاری
http://ceit.aut.ac.ir/islab
24
1.Build & unit test
ETL process
2. Integration or
regression test ETL
process
3. Performance test
ETL process
4. Quality assurance
ETL process
25
5. Acceptance test
ETL process
درس هوش تجاری
http://ceit.aut.ac.ir/islab
برنامه ی تست :ETLدر این قسمت هدف از انجام تست و زمان آن نوشته می
شود.
برنامه های :ETLتمامی دستورالعمل های مربوط به ماژولها و برنامه های
مورد استفاده در ETLباید آورده شوند.
کتابخانه ی برنامه ی :ETLتمامی ماژول ها در کتابخانه ای گردآوری میشوند.
درس هوش تجاری
http://ceit.aut.ac.ir/islab
26
27