در دنیای مهندسی داده، برای انتقال دادهها از مبداها و منابع مختلف به انبار داده، دو رویکرد اصلی وجود دارد: ETL و ELT. تفاوت اصلی این دو در ترتیب انجام عملیات تبدیل (Transformation) است.
در مدل ETL، دادهها ابتدا استخراج شده، سپس تبدیل و پاکسازی میشوند و در نهایت برای درج در جداول نهایی (ساختاریافته) در انبار داده لود میگردند.
در این مدل، دادهها پیش از ورود به انبار داده، کاملاً پالایش شدهاند، اما این امر باعث میشود هرگونه تغییر در نیازهای تحلیلی، مستلزم بازبینی و اصلاح مجدد کل فرآیند ETL باشد.
در مدل ELT که رویکردی مدرنتر در مهندسی داده است، دادهها ابتدا استخراج شده و مستقیماً در انبار داده لود میشوند. عملیات تبدیل در مرحله آخر و در داخل انبار داده (با استفاده از قدرت پردازشی بالای دیتابیسهای تحلیلی مدرن) انجام میگیرد.
در این روش عمدتا هر جدول مبدا دارای یک جدول متناظر استیجینگ (Mirror) در انبار داده است. مزیت این رویکرد به دلیل ذخیره دادههای خام این است که میتوان دادههای خام را بارها با منطقهای جدید تبدیل (Transform) به جداول نهایی مختلف کرد بدون آنکه نیاز به مراجعه مجدد به جداول مبدا و ایجاد تبدیل و پایپلاین جدید باشد.
| ویژگی | ETL | ELT |
|---|---|---|
| ترتیب عملیات | استخراج > تبدیل > لود | استخراج > لود > تبدیل |
| محل تبدیل | سرور مبدا و منبع | انبار داده |
| نوع دادههای لود | ساختاریافته | نیمهساختاریافته |
| سرعت لود | کندتر (دادهها در مسیر پردازش میشوند) | بسیار سریع (کپی مستقیم دادههای خام) |
| زمان اجرا و بهرهبرداری | طولانی (نیاز به طراحی دقیق فرآیندها پیش از انتقال) | کوتاه (انتقال سریع دادهها و مدلسازی در زمان نیاز) |
| انعطافپذیری | کمتر (تغییرات نیازمند اجرای مجدد است) | بیشتر (دادههای خام همیشه در دسترس هستند) |
| حجم ذخیرهسازی | بهینهتر (فقط دادههای مفید ذخیره میشوند) | بیشتر (دادههای خام و تبدیل شده هر دو ذخیره میشوند) |
ما در دادهلند، رویکرد ELT را به دلایل زیر پیشنهاد میکنیم:
برای پیادهسازی رویکرد ELT، نوعی از جدول با نام استیجینگ (Staging) در دادهلند در نظر گرفته شده است. دادههای خام در این جدول تحت یک ستون جیسون با نام data به شکل نیمهساختاریافته ذخیره میشوند. جداول استیجینگ نقش Data Lake را جهت نگهداری دادههای خام پیش از تبدیل ایفا میکنند.
برای ایجاد جدول استیجینگ کافی است هنگام ساخت جدول سفارشی گزینه جدول خام را انتخاب کرده و سپس نوع آن را جدول استیجینگ (STG) تعیین کنید.
پس از ذخیرهسازی دادههای خام، میتوانید در جدول نهایی مقصد، نوع لود داده را بر روی Transform تنظیم کرده و با نوشتن SQL، فرآیند تبدیل و لود دادهها را از جدول استجینگ (و سایر جداول) پیاده کنید.