
تعریف فرایند ETL و مفهوم ETL در ایجاد انبار داده
تعریف فرایند ETL و مفهوم ETL در ایجاد انبار داده
ETL فرایندی است که دادهها را از سیستمهای مختلف منبع داده استخراج میکند، سپس آنها را تغییر میدهد (مانند اعمال محاسبات، الحاق ها و غیره) و در نهایت دادهها را در سیستم انبار دادهها (Data Warehouse) جهت استفاده دانشمندان داده بارگذاری میکند. روند کامل این فرایند را ETL مینامند که مخفف سه کلمه استخراج (Extract)، تبدیل (Transform) و بارگذاری (Load) است.
این باور کاملا دور از ذهن است اگر فکر کنید ایجاد یک انبار داده صرفاً استخراج اطلاعات از چندین منبع و بارگیری در پایگاه داده یک انبار داده است. این نوع تفکر به طور کامل به دور از حقیقت بوده و اصل ماجرا به یک فرآیند پیچیده ETL نیاز دارد. این روند به ورودیهای فعال ذینفعان مختلف از جمله توسعهدهندگان، تحلیلگران، آزمایشگران، مدیران ارشد نیاز دارد و از نظر فنی بسیار چالش برانگیز است.
برای اینکه این روند ارزش خود را به عنوان ابزاری برای تصمیم گیرندگان حفظ کند، در سیستم انبار داده، باید همواره با تغییرات مکرر کسب و کار پیش برود. به بیان دیگر ETL فعالیت تکراری (روزانه، هفتگی، ماهانه) یک سیستم انبار داده است و باید چابک، خودکار و مستند باشد.
چرا به ETL نیاز دارید؟
دلایل زیادی برای پذیرش ETL در سازمان وجود دارد:
- این مهم به شرکتها کمک میکند تا دادههای خود را برای تصمیمگیری مهم در مورد کسب و کار تجزیه و تحلیل کنند
- پایگاه دادههای معاملاتی نمیتوانند به سوالات پیچیده کسب و کار پاسخ دهند اما آنها توسط ETL پاسخ داده میشوند
- انبار داده یک مخزن مشترک داده را فراهم میکند
- ETL روشی را برای انتقال دادهها از منابع مختلف به انبار داده فراهم میکند
- با تغییر منابع داده، انبار داده نیز به طور خودکار به روز میشود
- سیستم ETL به خوبی طراحی شده و برای موفقیت مستند یک پروژه در انبار داده بسیار ضروری است
- تأیید قوانین تغییر داده، تجمیع و محاسبات را مجاز میکند
- فرآیند ETL امکان مقایسه نمونه دادهها بین منبع و سیستم هدف را فراهم میکند
- فرآیند ETL می تواند تحولات پیچیدهای را انجام دهد و به منطقه اضافی برای ذخیره دادهها نیاز دارد
- ETL به مهاجرت دادهها به انبار داده کمک میکند. به قالبها و انواع مختلف تبدیل میشود تا به یک سیستم سازگار پایبند باشد
- این روند یک فرایند از پیش تعیین شده برای دستیابی و دستکاری دادههای منبع به پایگاه داده هدف است
- ETL زمینه تاریخی عمیقی برای کسب و کار فراهم میکند
- به بهبود بهرهوری کمک میکند زیرا بدون نیاز به مهارتهای فنی کدگذاری و استفاده مجدد کار میکند
فرآیند ETL در انبارهای داده
ETL یک فرآیند ۳ مرحلهای است.
مرحله اول: استخراج
در این مرحله، دادهها از سیستم منبع به منطقه مرحلهبندی استخراج میشوند. در صورت وجود تغییراتی در منطقه مرحلهبندی، تغییرات انجام میشوند تا عملکرد سیستم منبع تخریب نشود. همچنین، اگر دادههای خراب مستقیماً از منبع در پایگاه داده انبار داده کپی شود، بازگشت مجدد آنها یک چالش خواهد بود. منطقه صحنهسازی، فرصتی برای اعتبارسنجی دادههای استخراج شده قبل از انتقال به انبار داده میدهد.
انبار دادهها نیاز به تلفیق سیستمهایی دارند که متفاوت هستند. مانند:
DBMS، سخت افزار، سیستم عامل و پروتکلهای ارتباطی. این منابع میتوانند شامل برنامههای قدیمی مانند Mainframes، برنامههای سفارشی، دستگاههای نقطه تماس مانند ATM، سوئیچهای تماس، پروندههای متنی، صفحات گسترده، ERP، دادههای فروشندگان و شرکای دیگر نیز باشند.
از این رو قبل از استخراج و بارگیری فیزیکی دادهها، به یک نقشه داده منطقی نیاز است. این نقشه داده رابطه بین منابع و دادههای هدف را توصیف میکند.
سه روش استخراج داده:
- استخراج کامل
- استخراج جزئی: بدون اطلاع رسانی و به روزرسانی
- استخراج جزئی: با اطلاع رسانی و به روز رسانی
صرف نظر از روش استفاده شده، استخراج نباید بر عملکرد و زمان پاسخ سیستمهای منبع تأثیر بگذارد. این سیستمهای منبع و پایگاه تولید مستقیم دادهها هستند. تاثیر منفی آن میتواند کاهش سرعت یا قفل شدن برنامه و تاخیر در نتیجه کار شرکت باشد.
برای جلوگیری از عملکرد نادرست، برخی از اعتبار سنجیها را در حین استخراج انجام دهید. به عنوان مثال:
- سوابق را با دادههای منبع ارتباط دهید
- اطمینان حاصل کنید که هیچ اطلاعات هرزنامه / ناخواسته بارگیری نشده است
- نوع داده را حتما بررسی کنید
- انواع دادههای تکراری / قطعه قطعه شده را حذف کنید
- بررسی کنید که آیا همه کلیدها در جای خود قرار دارند یا نه
مرحله دوم: تبدیل
دادههای استخراج شده از سرور منبع، خام هستند و به شکل اصلی قابل استفاده نیست. بنابراین باید تمیز، نقشه برداری و تغییر شکل یابد. در واقع، این مرحله کلیدی است که در آن فرآیند اصلی، ارزش افزوده و دادهها را تغییر میدهد به طوری که میتوان گزارشهای هوش تجاری (Business Intelligence) ایجاد میشوند.
در این مرحله، شما مجموعهای از توابع را روی دادههای استخراج شده اعمال میکنید. دادههایی که به هیچگونه تغییر و تحولی احتیاج ندارند، حرکت مستقیم یا عبور از دادهها نامیده میشوند.
در مرحله تحول، میتوانید عملیات سفارشی را روی دادهها انجام دهید. به عنوان مثال، اگر کاربر درآمد مجموع فروش خود را در بانک اطلاعاتی بخواهد. یا اگر نام و نام خانوادگی در جدول در ستونهای مختلف باشد. قبل از بارگیری میتوان آنها را بهم پیوست.
برخی از مشکلات یکپارچگی دادهها عبارتند از:
- هجیهای مختلف همان شخص مانند جون، جان و …
- چندین روش برای نشان دادن نام شرکت مانند Google، Google Inc وجود دارد
- استفاده از نامهای مختلف مانند کِلیولند، کلِولند.
- ممکن است موردی ایجاد شود که شمارههای مختلف حساب توسط برنامههای مختلف برای همان مشتری ایجاد میشود
- در برخی از دادهها، پروندههای مورد نیاز خالی هستند
- محصول نامعتبر جمع آوری شده در پایانه فروش (POS) به عنوان ورود دستی میتواند منجر به اشتباه شود
اعتبارسنجیهای مورد نظر در این مرحله
_ فیلتر کرده و فقط ستونهای خاصی را برای بارگیری انتخاب کنید
_ استفاده از قوانین و جداول جستجو برای استاندارد سازی دادهها
_ کاراکتر تنظیم، تبدیل و کدگذاری شود
_ تبدیل واحدهای اندازهگیری مانند تبدیل زمان تاریخ، تبدیل ارز، تبدیل عددی و غیره
_ بررسی اعتبار آستانه داده به عنوان مثال، سن نمیتواند بیش از دو رقم باشد
_ اعتبار سنجی جریان داده از منطقه مرحلهبندی به جداول میانی
_ قسمتهای مورد نیاز نباید خالی بمانند.
_ تمیز کردن (به عنوان مثال، نگاشت NULL به ۰ یا جنسیت مرد به “M” و زن به “F” و غیره)
_ یک ستون را به چند برابر تقسیم کنید و چندین ستون را در یک ستون ادغام کنید
_ جابجایی ردیفها و ستونها
_ برای ادغام دادهها از جستجوها استفاده کنید
_ با استفاده از اعتبار سنجی پیچیده دادهها (به عنوان مثال، اگر دو ستون اول یک ردیف خالی باشد، پردازش ردیف به طور خودکار رد میشود)