لوگوی سایت
پشتیبانی
آشنایی و مبانی

مقایسه ETL و ELT

این صفحه به بررسی تفاوت‌های بین دو رویکرد انتقال داده ETL و ELT می‌پردازد.

در دنیای مهندسی داده، برای انتقال داده‌ها از مبدا‌ها و منابع مختلف به انبار داده، دو رویکرد اصلی وجود دارد: ETL و ELT. تفاوت اصلی این دو در ترتیب انجام عملیات تبدیل (Transformation) است.


رویکرد ETL

در مدل ETL، داده‌ها ابتدا استخراج شده، سپس تبدیل و پاک‌سازی می‌شوند و در نهایت برای درج در جداول نهایی (ساختاریافته) در انبار داده لود می‌گردند.

  • Extract: استخراج داده‌ها از مبدا‌ها و منابع مختلف.
  • Transform: تبدیل داده‌ها به فرمت مورد نیاز، پاک‌سازی، حذف داده‌های تکراری و اعمال قوانین کسب‌وکار.
  • Load: لود داده‌های تبدیل شده و ساختاریافته در انبار داده.

در این مدل، داده‌ها پیش از ورود به انبار داده، کاملاً پالایش شده‌اند، اما این امر باعث می‌شود هرگونه تغییر در نیازهای تحلیلی، مستلزم بازبینی و اصلاح مجدد کل فرآیند ETL باشد.


رویکرد ELT

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

  • Extract: استخراج داده‌ها از مبدا‌ها و منابع مختلف.
  • Load: لود سریع داده‌های خام در جداول استیجینگ انبار داده (داده‌‌های نیمه‌ساختاریافته).
  • Transform: تبدیل داده‌ها به فرمت ساختاریافته در انبار داده و لود آن‌ها در جداول نهایی (Fact و Dimension).

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

در فرایند ELT مقصد لود داده‌ها می‌تواند Data Lake باشد و فرایند تبدیل از لایه Data Lake به انبار داده انجام شود. به دلیل هزینه استقرار و نگهداری فنی Data Lake به شکل عمومی توصیه می‌شود که اگر داده‌های خام حجمی کمتر از ۱۰ ترابایت دارند، مستقیم در انبار داده ذخیره شوند.

جدول مقایسه ETL و ELT

ویژگیETLELT
ترتیب عملیاتاستخراج > تبدیل > لوداستخراج > لود > تبدیل
محل تبدیلسرور مبدا و منبعانبار داده
نوع داده‌‌های لودساختاریافتهنیمه‌ساختاریافته
سرعت لودکندتر (داده‌ها در مسیر پردازش می‌شوند)بسیار سریع (کپی مستقیم داده‌های خام)
زمان اجرا و بهره‌برداریطولانی (نیاز به طراحی دقیق فرآیندها پیش از انتقال)کوتاه (انتقال سریع داده‌ها و مدل‌سازی در زمان نیاز)
انعطاف‌پذیریکمتر (تغییرات نیازمند اجرای مجدد است)بیشتر (داده‌های خام همیشه در دسترس هستند)
حجم ذخیره‌سازیبهینه‌تر (فقط داده‌های مفید ذخیره می‌شوند)بیشتر (داده‌های خام و تبدیل شده هر دو ذخیره می‌شوند)

دلایل برتری رویکرد ELT

ما در داده‌لند، رویکرد ELT را به دلایل زیر پیشنهاد می‌کنیم:

  • انعطاف‌پذیری حداکثری: به دلیل ذخیره داده‌های خام در لایه استیجینگ، هر زمان که نیاز به تغییر در منطق تبدیل یا اضافه کردن فیلدهای جدید باشد، نیازی به استخراج مجدد داده‌ها از منبع نیست و تنها با تغییر کوئری‌های تبدیل، خروجی جدید حاصل می‌شود.
  • بهره‌برداری سریع‌تر (Time to Value): داده‌ها سریع‌تر به مقصد می‌رسند و تحلیل‌گران می‌توانند بدون انتظار برای تکمیل فرآیندهای پیچیده تبدیل، داده‌های خام را بررسی کرده و شروع به مدل‌سازی و ساخت داشبوردهای مورد نیاز نمایند.
  • حفظ تاریخچه داده‌ها: با داشتن لایه استیجینگ، داده‌ها در حالت اولیه خود حفظ می‌شوند که برای بازبینی‌های آتی یا بازسازی مدل‌های داده‌ای بسیار حیاتی است.
  • بهره‌گیری از قدرت پردازشی مقصد: با انتقال پردازش‌های Transformation به داخل انبار داده، از قدرت پردازش دیتابیس‌های مدرن تحلیلی برای تبدیل‌های حجیم و پیچیده استفاده می‌شود.
  • کاهش فشار روی منابع مبدا: به دلیل حذف عملیات تبدیل در مسیر انتقال، فشار پردازشی روی سرور و دیتابیس مبدا کاهش یافته و عملیات استخراج داده‌ها با کمترین اثر بر روی عملکرد سیستم‌های عملیاتی انجام می‌شود.
  • کاهش وابستگی: وابستگی تیم داده به تیم توسعه و دیتابیس اپلیکیشن کاهش خواهد یافت و رفت و برگشت کمتری برای اصلاح تبدیل‌ها مورد نیاز است.

اجرای ELT در داده‌لند

برای پیاده‌سازی رویکرد ELT، نوعی از جدول با نام استیجینگ (Staging) در داده‌لند در نظر گرفته شده است. داده‌های خام در این جدول تحت یک ستون جیسون با نام data به شکل نیمه‌ساختاریافته ذخیره می‌شوند. جداول استیجینگ نقش Data Lake را جهت نگهداری داده‌های خام پیش از تبدیل ایفا می‌کنند.

برای ایجاد جدول استیجینگ کافی است هنگام ساخت جدول سفارشی گزینه جدول خام را انتخاب کرده و سپس نوع آن را جدول استیجینگ (STG) تعیین کنید.

پس از ذخیره‌سازی داده‌های خام، می‌توانید در جدول نهایی مقصد، نوع لود داده را بر روی Transform تنظیم کرده و با نوشتن SQL، فرآیند تبدیل و لود داده‌ها را از جدول استجینگ (و سایر جداول) پیاده کنید.