[{"data":1,"prerenderedAt":476},["ShallowReactive",2],{"navigation":3,"/intro/etl-vs-elt":161},[4,22,39,52,89,98,115,128,141],{"title":5,"path":6,"stem":7,"children":8,"page":21},"آشنایی و مبانی","/intro","1.intro",[9,13,17],{"title":10,"path":11,"stem":12},"معماری داده‌ها","/intro/architecture","1.intro/1.architecture",{"title":14,"path":15,"stem":16},"الگوهای پیشنهادی","/intro/best-practices","1.intro/2.best-practices",{"title":18,"path":19,"stem":20},"مقایسه ETL و ELT","/intro/etl-vs-elt","1.intro/3.etl-vs-elt",false,{"title":23,"path":24,"stem":25,"children":26,"page":21},"ساخت و مدیریت فضا","/space","2.space",[27,31,35],{"title":28,"path":29,"stem":30},"ساختار فضا و پروژه","/space/structure","2.space/1.structure",{"title":32,"path":33,"stem":34},"آموزش ساخت فضا","/space/create-space","2.space/2.create-space",{"title":36,"path":37,"stem":38},"طرح فضا","/space/plan","2.space/3.plan",{"title":40,"path":41,"stem":42,"children":43,"page":21},"مدیریت کاربران","/user-management","3.user-management",[44,48],{"title":45,"path":46,"stem":47},"آشنایی با نقش‌ها","/user-management/roles","3.user-management/1.roles",{"title":49,"path":50,"stem":51},"اعطای دسترسی","/user-management/access","3.user-management/2.access",{"title":53,"path":54,"stem":55,"children":56,"page":21},"ایجاد و مدیریت دیتاست","/dataset","4.dataset",[57,61,65,69,73,77,81,85],{"title":58,"path":59,"stem":60},"جدول سفارشی و ماژول","/dataset/custom-table-vs-module","4.dataset/1.custom-table-vs-module",{"title":62,"path":63,"stem":64},"الگوی نام‌گذاری جداول","/dataset/table-naming-conventions","4.dataset/2.table-naming-conventions",{"title":66,"path":67,"stem":68},"تفاوت درج با ورژن و آپدیت","/dataset/write-modes","4.dataset/3.write-modes",{"title":70,"path":71,"stem":72},"انواع ستون و نوع مقدار","/dataset/column-types","4.dataset/4.column-types",{"title":74,"path":75,"stem":76},"متادیتا و ویژگی‌های ستون","/dataset/column-settings","4.dataset/5.column-settings",{"title":78,"path":79,"stem":80},"قوانین امنیتی جدول","/dataset/table-settings","4.dataset/6.table-settings",{"title":82,"path":83,"stem":84},"ویرایش اسکیما","/dataset/schema-evolution","4.dataset/7.schema-evolution",{"title":86,"path":87,"stem":88},"آموزش ایجاد جدول سفارشی","/dataset/create-custom-table","4.dataset/8.create-custom-table",{"title":90,"path":91,"stem":92,"children":93,"page":21},"لود داده","/data-load","5.data-load",[94],{"title":95,"path":96,"stem":97},"روش‌های لود مستقیم","/data-load/methods","5.data-load/1.methods",{"title":99,"path":100,"stem":101,"children":102,"page":21},"داشبورد","/dashboard","6.dashboard",[103,107,111],{"title":104,"path":105,"stem":106},"ساختار و دسترسی","/dashboard/structure","6.dashboard/1.structure",{"title":108,"path":109,"stem":110},"فیلترهای استوری","/dashboard/story-filters","6.dashboard/2.story-filters",{"title":112,"path":113,"stem":114},"آموزش ساخت استوری","/dashboard/create-story","6.dashboard/3.create-story",{"title":116,"path":117,"stem":118,"children":119,"page":21},"کوئری","/query","7.query",[120,124],{"title":121,"path":122,"stem":123},"نکات نوشتن کوئری","/query/query-notes","7.query/1.query-notes",{"title":125,"path":126,"stem":127},"توابع اختصاصی داده‌لند","/query/dadeland-sql","7.query/dadeland-sql",{"title":129,"path":130,"stem":131,"children":132,"page":21},"فانل","/funnel","8.funnel",[133,137],{"title":134,"path":135,"stem":136},"آموزش ایجاد فانل","/funnel/create-funnel","8.funnel/1.create-funnel",{"title":138,"path":139,"stem":140},"شیوه کار فانل","/funnel/how-funnel-works","8.funnel/2.how-funnel-works",{"title":142,"path":143,"stem":144,"children":145,"page":21},"ماژول کلاینت","/client-module","9.client-module",[146,150,153,157],{"title":147,"path":148,"stem":149},"آموزش راه‌اندازی","/client-module/up-and-running","9.client-module/1.up-and-running",{"title":14,"path":151,"stem":152},"/client-module/best-practices","9.client-module/2.best-practices",{"title":154,"path":155,"stem":156},"جمع‌آوری داده (لندر وب)","/client-module/lander-web","9.client-module/3.lander-web",{"title":158,"path":159,"stem":160},"رویدادهای پیش‌فرض","/client-module/default-events","9.client-module/4.default-events",{"id":162,"title":18,"body":163,"description":469,"extension":470,"links":471,"meta":472,"navigation":473,"path":19,"seo":474,"stem":20,"__hash__":475},"docs/1.intro/3.etl-vs-elt.md",{"type":164,"value":165,"toc":458},"minimark",[166,183,186,191,194,216,219,221,225,228,244,247,253,255,259,371,373,377,380,418,420,424,436,447,452],[167,168,169,170,174,175,178,179,182],"p",{},"در دنیای مهندسی داده، برای انتقال داده‌ها از مبدا‌ها و منابع مختلف به انبار داده، دو رویکرد اصلی وجود دارد: ",[171,172,173],"strong",{},"ETL"," و ",[171,176,177],{},"ELT",". تفاوت اصلی این دو در ترتیب انجام عملیات ",[171,180,181],{},"تبدیل (Transformation)"," است.",[184,185],"hr",{},[187,188,190],"h3",{"id":189},"رویکرد-etl","رویکرد ETL",[167,192,193],{},"در مدل ETL، داده‌ها ابتدا استخراج شده، سپس تبدیل و پاک‌سازی می‌شوند و در نهایت برای درج در جداول نهایی (ساختاریافته) در انبار داده لود می‌گردند.",[195,196,197,204,210],"ul",{},[198,199,200,203],"li",{},[171,201,202],{},"Extract",": استخراج داده‌ها از مبدا‌ها و منابع مختلف.",[198,205,206,209],{},[171,207,208],{},"Transform",": تبدیل داده‌ها به فرمت مورد نیاز، پاک‌سازی، حذف داده‌های تکراری و اعمال قوانین کسب‌وکار.",[198,211,212,215],{},[171,213,214],{},"Load",": لود داده‌های تبدیل شده و ساختاریافته در انبار داده.",[167,217,218],{},"در این مدل، داده‌ها پیش از ورود به انبار داده، کاملاً پالایش شده‌اند، اما این امر باعث می‌شود هرگونه تغییر در نیازهای تحلیلی، مستلزم بازبینی و اصلاح مجدد کل فرآیند ETL باشد.",[184,220],{},[187,222,224],{"id":223},"رویکرد-elt","رویکرد ELT",[167,226,227],{},"در مدل ELT که رویکردی مدرن‌تر در مهندسی داده است، داده‌ها ابتدا استخراج شده و مستقیماً در انبار داده لود می‌شوند. عملیات تبدیل در مرحله آخر و در داخل انبار داده (با استفاده از قدرت پردازشی بالای دیتابیس‌های تحلیلی مدرن) انجام می‌گیرد.",[195,229,230,234,239],{},[198,231,232,203],{},[171,233,202],{},[198,235,236,238],{},[171,237,214],{},": لود سریع داده‌های خام در جداول استیجینگ انبار داده (داده‌‌های نیمه‌ساختاریافته).",[198,240,241,243],{},[171,242,208],{},": تبدیل داده‌ها به فرمت ساختاریافته در انبار داده و لود آن‌ها در جداول نهایی (Fact و Dimension).",[167,245,246],{},"در این روش عمدتا هر جدول مبدا دارای یک جدول متناظر استیجینگ (Mirror) در انبار داده است. مزیت این رویکرد به دلیل ذخیره داده‌های خام این است که می‌توان داده‌‌های خام را بارها با منطق‌های جدید تبدیل (Transform) به جداول نهایی مختلف کرد بدون آنکه نیاز به مراجعه مجدد به جداول مبدا و ایجاد تبدیل و پایپ‌لاین جدید باشد.",[248,249,250],"note",{},[167,251,252],{},"در فرایند ELT مقصد لود داده‌ها می‌تواند Data Lake باشد و فرایند تبدیل از لایه Data Lake به انبار داده انجام شود. به دلیل هزینه استقرار و نگهداری فنی Data Lake به شکل عمومی توصیه می‌شود که اگر داده‌های خام حجمی کمتر از ۱۰ ترابایت دارند، مستقیم در انبار داده ذخیره شوند.",[184,254],{},[187,256,258],{"id":257},"جدول-مقایسه-etl-و-elt","جدول مقایسه ETL و ELT",[260,261,262,276],"table",{},[263,264,265],"thead",{},[266,267,268,272,274],"tr",{},[269,270,271],"th",{},"ویژگی",[269,273,173],{},[269,275,177],{},[277,278,279,293,306,319,332,345,358],"tbody",{},[266,280,281,287,290],{},[282,283,284],"td",{},[171,285,286],{},"ترتیب عملیات",[282,288,289],{},"استخراج > تبدیل > لود",[282,291,292],{},"استخراج > لود > تبدیل",[266,294,295,300,303],{},[282,296,297],{},[171,298,299],{},"محل تبدیل",[282,301,302],{},"سرور مبدا و منبع",[282,304,305],{},"انبار داده",[266,307,308,313,316],{},[282,309,310],{},[171,311,312],{},"نوع داده‌‌های لود",[282,314,315],{},"ساختاریافته",[282,317,318],{},"نیمه‌ساختاریافته",[266,320,321,326,329],{},[282,322,323],{},[171,324,325],{},"سرعت لود",[282,327,328],{},"کندتر (داده‌ها در مسیر پردازش می‌شوند)",[282,330,331],{},"بسیار سریع (کپی مستقیم داده‌های خام)",[266,333,334,339,342],{},[282,335,336],{},[171,337,338],{},"زمان اجرا و بهره‌برداری",[282,340,341],{},"طولانی (نیاز به طراحی دقیق فرآیندها پیش از انتقال)",[282,343,344],{},"کوتاه (انتقال سریع داده‌ها و مدل‌سازی در زمان نیاز)",[266,346,347,352,355],{},[282,348,349],{},[171,350,351],{},"انعطاف‌پذیری",[282,353,354],{},"کمتر (تغییرات نیازمند اجرای مجدد است)",[282,356,357],{},"بیشتر (داده‌های خام همیشه در دسترس هستند)",[266,359,360,365,368],{},[282,361,362],{},[171,363,364],{},"حجم ذخیره‌سازی",[282,366,367],{},"بهینه‌تر (فقط داده‌های مفید ذخیره می‌شوند)",[282,369,370],{},"بیشتر (داده‌های خام و تبدیل شده هر دو ذخیره می‌شوند)",[184,372],{},[187,374,376],{"id":375},"دلایل-برتری-رویکرد-elt","دلایل برتری رویکرد ELT",[167,378,379],{},"ما در داده‌لند، رویکرد ELT را به دلایل زیر پیشنهاد می‌کنیم:",[195,381,382,388,394,400,406,412],{},[198,383,384,387],{},[171,385,386],{},"انعطاف‌پذیری حداکثری",": به دلیل ذخیره داده‌های خام در لایه استیجینگ، هر زمان که نیاز به تغییر در منطق تبدیل یا اضافه کردن فیلدهای جدید باشد، نیازی به استخراج مجدد داده‌ها از منبع نیست و تنها با تغییر کوئری‌های تبدیل، خروجی جدید حاصل می‌شود.",[198,389,390,393],{},[171,391,392],{},"بهره‌برداری سریع‌تر (Time to Value)",": داده‌ها سریع‌تر به مقصد می‌رسند و تحلیل‌گران می‌توانند بدون انتظار برای تکمیل فرآیندهای پیچیده تبدیل، داده‌های خام را بررسی کرده و شروع به مدل‌سازی و ساخت داشبوردهای مورد نیاز نمایند.",[198,395,396,399],{},[171,397,398],{},"حفظ تاریخچه داده‌ها",": با داشتن لایه استیجینگ، داده‌ها در حالت اولیه خود حفظ می‌شوند که برای بازبینی‌های آتی یا بازسازی مدل‌های داده‌ای بسیار حیاتی است.",[198,401,402,405],{},[171,403,404],{},"بهره‌گیری از قدرت پردازشی مقصد",": با انتقال پردازش‌های Transformation به داخل انبار داده، از قدرت پردازش دیتابیس‌های مدرن تحلیلی برای تبدیل‌های حجیم و پیچیده استفاده می‌شود.",[198,407,408,411],{},[171,409,410],{},"کاهش فشار روی منابع مبدا",": به دلیل حذف عملیات تبدیل در مسیر انتقال، فشار پردازشی روی سرور و دیتابیس مبدا کاهش یافته و عملیات استخراج داده‌ها با کمترین اثر بر روی عملکرد سیستم‌های عملیاتی انجام می‌شود.",[198,413,414,417],{},[171,415,416],{},"کاهش وابستگی",": وابستگی تیم داده به تیم توسعه و دیتابیس اپلیکیشن کاهش خواهد یافت و رفت و برگشت کمتری برای اصلاح تبدیل‌ها مورد نیاز است.",[184,419],{},[187,421,423],{"id":422},"اجرای-elt-در-دادهلند","اجرای ELT در داده‌لند",[167,425,426,427,430,431,435],{},"برای پیاده‌سازی رویکرد ELT، نوعی از جدول با نام ",[171,428,429],{},"استیجینگ (Staging)"," در داده‌لند در نظر گرفته شده است. داده‌های خام در این جدول تحت یک ستون جیسون با نام ",[432,433,434],"code",{},"data"," به شکل نیمه‌ساختاریافته ذخیره می‌شوند. جداول استیجینگ نقش Data Lake را جهت نگهداری داده‌های خام پیش از تبدیل ایفا می‌کنند.",[167,437,438,439,442,443,446],{},"برای ایجاد جدول استیجینگ کافی است هنگام ساخت جدول سفارشی گزینه ",[432,440,441],{},"جدول خام"," را انتخاب کرده و سپس نوع آن را ",[432,444,445],{},"جدول استیجینگ (STG)"," تعیین کنید.",[448,449],"prose-video",{"alt":450,"src":451},"ساخت جدول استیجینگ","/images/stg-table.mp4",[167,453,454,455,457],{},"پس از ذخیره‌سازی داده‌های خام، می‌توانید در جدول نهایی مقصد، نوع لود داده را بر روی ",[432,456,208],{}," تنظیم کرده و با نوشتن SQL، فرآیند تبدیل و لود داده‌ها را از جدول استجینگ (و سایر جداول) پیاده کنید.",{"title":459,"searchDepth":460,"depth":461,"links":462},"",1,2,[463,465,466,467,468],{"id":189,"depth":464,"text":190},3,{"id":223,"depth":464,"text":224},{"id":257,"depth":464,"text":258},{"id":375,"depth":464,"text":376},{"id":422,"depth":464,"text":423},"این صفحه به بررسی تفاوت‌های بین دو رویکرد انتقال داده ETL و ELT می‌پردازد.","md",null,{},true,{"title":18,"description":469},"OP1GZmjdlXVfJwRJPwAwsbvPavE9LrSRN0DzprGqq6s",1784541759470]