می 13, 2020

آشنایی با ETL

دوره آموزشی کامل ویدیویی آموزش ETL در اوراکل

ETL و هوش تجاری

ETL بخش مهمی از فرایندها و سیستم های هوش تجاری (BI) امروزی است. این فرایند فناوری اطلاعات است که از آن می توان داده های منابع مختلف را در یک مکان قرار داد تا به طور برنامه ای تجزیه و تحلیل و کشف بینشهای تجاری شود.

انبار داده

انبار داده و ارتباطش با هوش تجاری

در یک سازمان نرم‌افزارهای مختلفی قرار دارد که هر کدام داده‌هایی را تولید می‌کنند و در فرآیند هوش تجاری بایستی از آن‌ها جهت ایجاد ارزش استفاده کنیم اگر بخواهیم برای هر پرس و جو (Query) که به تحلیل ما کمک کند، به این نرم‌افزارها درخواستی دهیم، احتمالا وقت و زمان خود را هدر داده‌ایم. پس بهتر است داده‌ها را با توجه به موضوعی که می‌خواهیم تحلیل کنیم در یک مکان انبار کنیم. به این مکان انبار داده (Data Warehouse) می‌گویند.

انبار داده قلب هوش تجاری است. بدون انبار داده، جریان اطلاعات در سیستمهای عملیاتی متوقف میشود. در این شرایط کسب و کار فقط نوک بینی خود را میتواند ببیند.

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

ETL چیست؟

پروسه استخراج داده‌ها از سامانه‌های منبع و آوردن آن‌ها به انبارداده ETL خوانده می‌شود. ETL مخفف Extract Transform  and Load است که به معنای استخراج، پالایش و بارگذاری اطلاعات می‌باشد.

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

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

براي انجام ETL نياز به تخصص هاي مختلفي چون تجزيه و تحليل تجاري، طراحي پايگاه داده و برنامه نويسي وجود دارد.

فعالیت‌های ETL شامل مجموعه‌ای از فعالیت‌های زیر است:

استخراج داده از سیستم‌های منبع

تغییر شکل و پاکسازی داده‌ها

ایندکس‌گذاری داده

خلاصه‌سازی داده‌ها

بارگذای داده در انبار داده

دنبال کردن تغییرات اتفاق افتاده در داده‌های منبع که نیاز به انتقال به انبار داده دارند.

نگهداری اطلاعات پایه (Matadata)

ساختاربندی مجدد کیلدها

به روزرسانی انبار داده با داده‌های به روز شده

ETL

مرحله اول Extraction

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

در سیستم های قدیمی، روش متداول برای استخراج اطلاعات، تولید فایل های متنی از روی اطلاعات میباشد. در سیستم های جدیدتر از امکاناتی مانند API، OLE DB وODBC ها برای این امر استفاده میشود.

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

مرحله دوم Transform

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

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

  • بررسی کیفیت داده‌ها (Verify data quality): کیفیت داده‌ها به وسیله پرسش‌هایی از قبیل سوالات زیر مورد بررسی قرار می‌گیرند:
  • آیا داده‌ها کامل هستند (مواردی مورد نیازمان را پوشش می‌دهند)؟
  • داده‌ها صحیح هستند یا اشتباهاتی دارند؟ اگر اشتباه هستند علت اشتباهات چیست؟
  • آیا ارزش‌های گم شده در داده وجود دارد؟ اگر اینگونه است آن‌ها چگونه نمایش داده می‌شود؟ عموماً در کجا اتفاق افتاده است؟
  • پاک‌سازی داده‌ها (Clean data): بالا بردن کیفیت داده‌ها نیازمند انتخاب تکنیک آنالیز می‌باشد. این انتخاب شامل پاک کردن زیر مجموعه‌ای از داده‌های نامناسب و درج پیش‌فرض‌های مناسب می‌باشد.
  • شکل دادن داده‌ها (Construct data): این قسمت شامل عملیات ویژه‌ای مانند تولید خصوصیت‌های مشتق شده، تولید رکوردهای جدید و کامل یا مقادیر تبدیل شده از خصوصیات موجود می‌باشد.
  • ادغام داده‌ها (Integrate data): روش‌هایی وجود دارد که به وسیله آن اطلاعات از چند جدول ترکیب شده و رکوردهای جدید یا مقادیری جدیدی ایجاد می‌شود.
  • قالب بندی داده‌ها (Format data): منظور از قالب بندی داده‌ها، تغییر و تبدیل قواعد اولیه داده موردنیاز ابزار مدل سازی می‌باشد.

این مرحله در واقع، پیچیده ترین مرحله در فرآیند ETL است.

مرحله سوم Load

دراين مرحله اطلاعات مطابق با نيازمنديهاي سازمان ، درون Data Warehouse بارگذاري مي شود. آخرین کاری که در ETL انجام می‌گیرد بارگذاری داده‌های استخراج و پالایش شده از منابع مختلف در انبار داده‌ها است. معمولا در زمان بارگذاری در انبار داده تغییرات خاصی روی داده‌ها انجام نمی‌گیرد و آن‌ها بدون هیچ تغییری از محیط واسط در انبار داده‌ها بارگذاری می‌شوند. . داده ¬ها معمولا به دلیل حجم بالا، به صورت دوره¬ای در انبار داده بارگذاری می شوند نه پیوسته.

یکی از بهترین و قویترین ابزارها برای عملیات ETL، ابزار SSIS است که استفاده از آن سرعت و دقت در عملیات را بالا می‌برد.

ETL

انواع Loading

Full Load

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

Incremental Load

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

ابزارهای ETL

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

  1. Improvado
  2. MarkLogic
  3. Oracle
  4. Amazon RedShift

چرا ETL مهم است؟

  1. هنگامی که با انبار داده‌های سازمانی (اطلاعات در حالت استراحت) استفاده می‌شود ETL زمینه‌های تاریخی عمیقی برای کسب و کار فراهم می‌آورد.
  2. با ارائه یک نمایه تلفیقی، ETL باعث می‌شود که تجزیه و تحلیل و گزارش داده‌ها و ابتکارات در ارتباط با آن‌ها، برای کاربران کسب و کار آسان‌تر شود.
  3. ETL می‌تواند بهره‌وری حرفه‌ای داده‌ها را بهبود ببخشد؛ زیرا این پروتکل‌ها رمزهای پردازش شده را مجددا مورد استفاده قرار می‌دهد که این امر باعث می‌شود داده‌ها را بدون نیاز به مهارت‌های فنی برای نوشتن کد یا اسکریپت انتقال داد.
  4. ETL در طول زمان تکامل یافته است تا از نیازهایی که در ارتباط با یکپارچگی برای مواردی مانند جریان داده‌ای بروز می‌کنند، پشتیبانی کند.
  5. سازمان‌ها به ETL نیاز دارند تا داده‌ها را با هم تجمیع کنند، از دقت داده‌ها اطمینان حاصل کنند و حسابرسی مورد نیاز برای انباره داده‌ها، گزارش‌دهی و تجزیه و تحلیل را فراهم آورند.
etl

ETL چگونه کار می کند؟

ETL درارتباط نزدیکی با برخی مفاهیم دیگری از قبیل توابع، فرآیندها و تکنیک‌های یکپارچه‌سازی اطلاعات است. درک این مفاهیم، دیدگاه واضحتری از نحوه عملکرد ETL فراهم می‌کند.

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

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

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

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

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