خانه مهندسی نرم افزار در مورد مخزن داده میانی چه میدانید؟ مهندسی نرم افزار نوشته شده توسط: تیم فنی نیک آموز تاریخ انتشار: ۰۳ آذر ۱۴۰۰ آخرین بروزرسانی: ۱۹ بهمن ۱۴۰۰ زمان مطالعه: 12 دقیقه ۱.۵ (۲) مقدمه هنگام کار با خطوط پردازش داده امکان دارد با مخزن داده میانی در اکثر خطوط پردازش داده مواجه شده باشید. اگر با فضای داده کار می کنید و سوالات زیر ذهن شما را به خود مشغول داشته، باید گفت این مقاله دقیقا مناسب شماست. چرا اصلا مخزن داده میانی باید وجود داشته باشد؟ چرا نمی توانیم مستقیما داده را روی جدول مقصد بارگذاری کنیم؟ چرا ما نیاز داریم داده های پردازش نشده را ذخیره کنیم؟ آیا ذخیره سازی داده هایی که ما قصد نداریم از آنها استفاده کنیم، سربار هزینه ای اضافی ایجاد نمی کند؟ زمانی که داده ها به طور کامل تبدیل یافت آیا مجاز به پاک کردن مخزن داده میانی به طور کامل هستیم؟ تعریف مخزن داده میانی مخزن داده میانی یک مفهوم طراحی مربوط به خطوط پردازش داده است. مخزن داده میانی قسمتی است که داده های پردازش نشده (خام) قبل از انتقال در آن قرار می گیرد. مخزن داده میانی می تواند شامل جداول پایگاه داده، فایل های ذخیره شده ابری و غیره باشد. در واقع مخزن داده میانی، یک مکان داده موقت است که داده ها را تا زمان مشخصی به عنوان مثال یک ماه یا بیشتر نگهداری می کنیم، با این هدف که هرگاه پردازش های تحلیلی برنامه به داده های پایگاه داده نیاز پیدا کرد، از داده های روی مخزن داده میانی استفاده کند. این کار باعث می شود پایگاه داده عملیاتی که بیشتر درگیر کوئری های درج، حذف ویرایش قرار دارد، برای پردازش داده ها مورد مراجعه قرار نگیرد و وجود مخزن داده میانی، نقش کاهش بار روی پایگاه داده عملیاتی را بر عهده دارد. امتیازات داشتن مخزن داده میانی در اکثر خطوط پردازش داده، داده در سیستم منبع دائما در حال تغییر است. ذخیره داده های منبع در یک مخزن داده میانی با هر بار اجرای خط پردازش داده، تصویر لحظه ای سوابق داده منبع را برای ما نگهداری می کند. با یک مثال این موضوع را روشن می کنیم، فرض کنید ما یک خط پردازش داده داریم که هر روز در حال واکشی داده از پایگاه داده یک برنامه است. پایگاه داده برنامه نشان دهنده داده های وضعیت فعلی است. برای مثال در نظر بگیرید ما یک جدول user در برنامه داریم و این جدول شامل ستون zipcode است. اگر کاربر zipcode خود را تغییر دهد، برنامه مقدار zipcode قبلی را بازنویسی می کند و عملا مقدار قبلی zipcode از دست رفته است. این اتفاقی که رقم می خورد یک اتفاق کاملا رایج بوده و جز استانداردهای طراحی پایگاه داده OLTP است. در نظر بگیرید ما در گام تبدیل داده با خطا مواجه شویم، پس مجبور خواهیم شد فرایند پردازش را مجدد از ابتدا روی داده های سه ماه گذشته اجرا کنیم. این در حالی است که ما داده های سه ماه گذشته را مجدد باید از پایگاه داده عملیاتی دریافت کنیم که این کار باعث بار اضافی روی پایگاه داده عملیاتی می شود. در چنین موقعیتی در صورتی که ما یک مخزن داده میانی داشته باشیم میتوانیم مشکل جاری را حل نماییم و با استفاده از مخزن داده میانی به سوابق دادهها دسترسی داشته باشیم. که این کار باعث کاهش با روی پایگاه داده عملیاتی می شود. پس شاهد هستیم تصویر لحظه ای سوابق داده مربوط به داده منبع که در مخزن داده میانی ذخیره شده باعث می شود وابستگی ما را به منبع داده در مورد سوابق داده از بین ببرد. در اینجا چند مورد سناریو مشابه سناریو فوق را مثل می زنیم که در این موارد هم مخزن داده میانی می تواند مفید باشد. مخزن داده میانی برای وب اسکرپینگ ها، تصویر لحظه ای سوابق وب سایت را ذخیره می کند.ذخیره داده میانی در این موارد بسیار حیاتی است زیرا وب سایت ممکن است توسط اسکرپرها مسدود، یا نرخ پاسخ دهی آن محدود گردد. مغایرت داده می تواند از طریق داده های ذخیره شده در مخزن داده میانی پیگیری شود. سوابق داده در هنگام دیباگ این موضوع توسط خط پردازش داده، حیاتی است. اگر داده های دریافتی ستون جدیدی را پس از یک تاریخ خاص اضافه کنند، می توانیم اسکریپت بارگذاری خود را با منطق دیگری مبتنی بر تاریخ تغییر دهیم تا این مورد را در نظر بگیریم. داشتن منطق مبتنی بر تاریخ به ما امکان میدهد تا تکامل شِما را مدیریت کنیم. پر کردن داده های مقصد با منطق تبدیل جدید اعمال شده بر روی داده های مخزن داده میانی. معمولا خطوط پردازش داده شامل ناحیه های raw zone یا base zone یا landing zone هستند، جایی که داده های استخراج شده از سیستم منبع ذخیره شده است. همچنین یک مخزن داده میانی دارند که داده های خام تبدیل یافته بر پایه نام ستون و نوع آن ذخیره شده است. منطق تجاری بر روی مخزن داده میانی اعمال می شود و قبل از درج در جداول نهایی آزمایش می شود. نتیجهگیری امیدواریم این مقاله به شما درک خوبی از چرایی وجود مخزن داده میانی و اهمیت آن در خطوط پردازش داده، داده باشد. از این به بعد هنگام ساخت یک خط پردازش داده، مطمئن شوید که یک مخزن داده میانی در نظر گرفتهاید. در آینده، با پیش آمدن سناریوهای اشاره شده در این مقاله و سایر موارد مشابه، از خودتان به خاطر این دور اندیشی تشکر خواهید کرد. منابع https://www.startdataengineering.com/post/what-and-why-staging/ چه رتبه ای میدهید؟ میانگین ۱.۵ / ۵. از مجموع ۲ اولین نفر باش معرفی نویسنده مقالات 402 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده تیم فنی نیک آموز معرفی محصول مجتبی بنائی دوره آموزش مهندسی داده [Data Engineering] 2.380.000 تومان مقالات مرتبط ۰۷ فروردین مهندسی نرم افزار تفاوت DDD، میکروسرویس (Microservice)، الگوهای طراحی (Design pattern) و معماری تمیز (Clean Architecture) تیم فنی نیک آموز ۰۳ اسفند مهندسی نرم افزار آشنایی با تفاوت Domain Events و Integration Events تیم فنی نیک آموز ۲۶ بهمن مهندسی نرم افزار ۵ راز ساخت سیستم قدرتمند با پیاده سازی معماری میکروسرویس : چالش ها و راه حل ها تیم فنی نیک آموز ۰۵ دی مهندسی نرم افزار راهنمای مسیر شغلی معمار ارشد نرم افزار تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ