ETL فرآیند جمع آوری داده از منابع داده ای مختلف،  سازماندهی آن ها در کنار یکدیگر و بارگذاری در یک انبار داده واحد است.

 

در بسیاری از شرکت ها حجم زیادی از داده های مهم غیر قابل دسترس و در نتیجه بلا استفاده هستند. نتایج تحقیقات نشان می دهد، دو سوم کسب و کار ها یا به ندرت از داده ها استفاده می کنند یا هیچ استفاده ای نمی کنند. تحقیقات دیگری نشان می دهد که ۵۰ درصد مدیران اعتقاد دارند که سازمان آن ها بر اساس داده و تحلیل رقابت نمی کنند، که دلیل عمده آن حبس شدن داده در سیستم های قدیمی و بلا استفاده است.

ETL در واقع به جریان انداختن این داده ها با استخراج داده از منابع داده ای مختلف در سازمان یا خارج از آن، پاکسازی و تبدیل به فرمت مورد نیاز و نهایتا ایجاد ساختار مناسب برای پیاده سازی هوش تجاری است. ETL معمولا یک فرآیند تکراری و خودکار است که به صورت روزانه، هفتگی یا ماهانه تکرار می شود.

 

چرا سازمان ها به ETL نیاز دارند؟

دلایل مختلفی برای نیاز به ETL وجود دارد که برخی از آن ها به شرح زیر است:

ETL

ETL به سازمان ها کمک می کند که داده های خود را در یک انبار داده واحد جمع آوری کنند و بر اساس تحلیل تمام داده های خود تصمیمات کلیدی و داده محور اتخاذ کنند. در واقع تحلیل بدون استفاده از تمامی داده های موجود در سازمان به نتایج مناسب منجر نخواهد شد. داده هایی که در سیستم های قدیمی یا کم استفاده گرفتار شده اند با فرآیند ETL به جریان می افتند و وارد فرآیند تحلیل می شوند.

پایگاه داده تراکنشی نمی تواند سوال های پیچیده کسب و کار را پاسخ دهد ضمن اینکه این نوع از پایگاه داده برای تحلیل و گزارش گیری مناسب و بهینه نیستند. این در حالیست که فرآیند ETL در نهایت به یک انبار داده که برای مقاصد تحلیلی مناسب و بهینه است منجر می شود. پایگاه داده تراکنشی، هر لحظه در حال به روز رسانی است. فرآیند ETL به صورت خودکار در انتهای هر روز (هفته یا ماه) این تغییرات را در انبار داده نیز اعمال می کند.

در طی فرآیند ETL بسیاری از تغییرات، تبدیلات و محاسبات مورد نیاز تحلیل انجام پذیرفته و داده آماده ی تحلیل در انبار داده ذخیره می شود. در واقع داده به شکل اولیه خود ممکن است تحلیل را با بسیاری از چالش ها مواجه کند. داده هایی که در فرمت نامناسب ذخیره شده اند یا به درستی ذخیره نشده اند طی این فرآیند به شکل مناسب برای تحلیل تبدیل می شوند. فرض کنید جنسیت افراد مختلف را که به گونه های مختلف ذخیره شده است (مرد، مذکر، آقا، زن، مونث، خانم) طی این فرآیند به یک شکل واحد تبدیل می شود. پس از آن تمام این تبدیلات و تغییرات و اعمال پاکسازی به صورت خودکار بر روی داده های جدید نیز اعمال می شود.

فرآیند ETL

فرآِیند ETL دارای ۳ مرحله Extraction، Transform و Load است.

قدم اول: Extraction

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

داده ها از منابع مختلف مثل csv، اکسل، اکسس، اوراکل، SQL Server، صفحات وب، سیستم های قدیمی سازمان، CRM، ERP و همچنین اطلاعات فروشنده ها یا شرکای تجاری و بسیاری از منابع داده ای دیگر در یک انبار داده واحد گردآوری می شوند. در واقع قبل از استخراج و بارگذاری داده به صورت فیزیکی یک نقشه منطقی (Logical Data Map) به منظور توصیف روابط بین داده ها و منابع مختلف داده ای و مقصد آن ها مورد نیاز است.

در این مرحله داده های غیر ضروری حذف می شوند، تکرار ها شناسایی و حذف می شوند. همچنین نوع دیتا (Data Type) مورد بررسی و اصلاح قرار می گیرند.

قدم دوم: Transformation

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

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

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

در دنیای واقعی بسیار پیش می آید که به طور مثال اپلیکیشن های متفاوت عدد های متفاوتی را برای کد مشتری ایجاد می کنند. این کد ها برای ارتباط با یکدیگر باید یکسان سازی شوند.

ممکن است داده ها دارای مقادیر Blank باشند یا برای برخی از داده ها مقادیر غیر منطقی درج شده باشد (به طور مثال عدد ۷ رقمی برای کد ملی مشتری) که در این صورت می توان برای مدیریت آن ها تدابیری اندیشید.

در این مرحله باید ستون های مورد نیاز برای بارگذاری مشخص شوند. در واقع باید از بارگذاری ستون های غیر لازم مانند شماره تلفن، ایمیل و ویژگی هایی که تاثیری در تحلیل ندارند پرهیز نمود.

در این مرحله باید قوانین و جداول کمکی (Lookup Tables) جهت استاندارد سازی مقادیر بهره گرفت. همچنین در این مرحله تبدیل واحد ها به یکدیگر صورت می پذیرد. به طور مثال ممکن است در جایی فروش به صورت دلاری ذخیره شده باشد و در جای دیگر به صورت ریالی که باید در این مرحله استاندارد سازی صورت پذیرد.

همچنین بررسی صحت و اعتبار سنجی داده ها در این مرحله نیز صورت می پذیرد. به طور مثال سن نباید بیشتر از ۲ عدد باشد یا کد ملی نمی تواند کمتر یا بیشتر از ۱۰ رقم باشد.

اگر نیاز به ادغام ستون ها یا جدا سازی ستون ها و تبدیل آن ها به چندین ستون باشد در این مرحله صورت می پذیرد. همچنین عمل چرخاندن جداول (Pivot OR Unpivot) در این مرحله صورت می پذیرد.

قدم سوم: Loading

بارگذاری داده در انبار داده آخرین قدم در فرآیند ETL است. معمولا حجم زیادی از داده باید در یک مدت زمان کوتاه (شبانه) در انبار داده بارگذاری شوند لذا توجه به بهینه سازی عملکرد (Performance) بسیار ضروری به نظر می رسد.

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

انواع Loading

Full Load

در این نوع بارگذاری کلیه داده ها از انبار داده حذف و دوباره عمل بارگذاری از ابتدا صورت می گیرد. این عمل معمولا برای بارگذاری اولیه جداول انبار داده مورد استفاده قرار می گیرد.

Incremental Load

در این نوع از بارگذاری تنها تغییرات اعمال شده در پایگاه داده به انبار داده منتقل می شود. در واقع هنگامی که فرآیند ETL به صورت شبانه اجرا می شود داده های جدید و تغییر یافته وارد انبار داده می شود.

ابزارهای ETL

ابزارهای بسیاری در زمینه ETL و ساخت انبار داده وجود دارد که مهمترین آن ها عبارتند از:

Informatica – PowerCenter

IBM – Infosphere Information Server

Oracle Data Integrator(ODI)

Microsoft – SQL Server Integration Services (SSIS)

Talend – Talend Open Studio for Data Integration

Pentaho Data Integration

SAS – Data Integration Studio

SAP – BusinessObjects Data Integrator