نشان دیپکدهدیپکده
مهندسی نرم افزار

۴ - پردازش داده در مقیاس

دوره پیش نیاز: معماری داده‌های توزیع‌شده

دوره متنی و تعاملی
سیدمهدی حسین زاده
سیدمهدی حسین زاده
۴ - پردازش داده در مقیاس

درباره دوره

معرفی دوره

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

در این دوره بر اساس بخش سوم کتاب مرجع Designing Data-Intensive Applications اثر مارتین کلپمن، به بالاترین سطح معماری سیستم‌های داده صعود می‌کنید. از کالبدشکافی فلسفه تغییرناپذیری ورودی‌ها در یونیکس و مپ‌ردیوس تا موتورهای جریان داده مدرن (Spark و Flink)، بروکرهای لاگ‌محور (Kafka)، تکنیک جذب داده‌های تغییریافته (Change Data Capture - CDC)، محاسبات پنجره‌بندی زمانی، پیوندهای جریانی و اصل بنیادین تجزیه پایگاه داده‌ها (Unbundling Databases)، کل مباحث را با سناریوهای ملموس و چالش‌های تعاملی پلتفرم دیپ یار فرا خواهید گرفت.

سرفصل‌های دوره:
  • فصل ۱ — فلسفه پردازش دسته‌ای و موتورهای جریان داده: از پایپ‌های یونیکس تا MapReduce و موتورهای گراف محاسباتی مدرن نظیر Spark و Flink.
  • فصل ۲ — جریان رویدادها، پیام‌رسانی و تکنیک CDC: بروکرهای مبتنی بر لاگ، اصل تغییرناپذیری و Event Sourcing، و حذف Dual-Writes با Debezium و Kafka.
  • فصل ۳ — پنجره‌بندی جریانی و پیوندهای داده‌ای: پنجره‌های Tumbling/Sliding/Session، زمان رویداد در برابر زمان پردازش، واترمارک‌ها و پیوندهای سه‌گانه جریانی.
  • فصل ۴ — تجزیه پایگاه داده‌ها و صحت انتها به انتها: همگام‌سازی بدون Down-time پایگاه‌های داده ناهمگن، معماری کاپا (Kappa)، و تضمین Exactly-Once.
  • فصل ۵ — پروژه نهایی و ارزیابی جامع: طراحی گام‌به‌گام پلتفرم بلادرنگ تشخیص تقلب و تحلیل‌های مالی کلان با ۴ گیت تصمیم معماری + آزمون جامع پایانی.
اهداف و دستاوردهای یادگیری:
  • تمایز فلسفی و فنی میان پردازش داده‌های کران‌دار (Batch) و بی‌کران (Stream) و تحلیل تریدآف‌های تاخیر در برابر توان پردازشی
  • پیاده‌سازی تکنیک جذب داده‌های تغییریافته (CDC) برای حذف قطعی باگ‌های Dual-Writes و همگام‌سازی نماهای اشتقاقی
  • به کارگیری تکنیک‌های پنجره‌بندی زمانی (Tumbling, Sliding, Session Windows)، مدیریت واترمارک‌ها و حل مسئله پیام‌های دیرهنگام
  • پیاده‌سازی الگوهای پیوند جریانی (Stream-Stream, Stream-Table, Table-Table Joins) و کنترل وضعیت‌های پردازشی با Checkpoint
  • طراحی معماری بر پایه اصل «تجزیه پایگاه داده‌ها» (Unbundling Databases) و گذر از معماری لامبدا به کاپا
  • تضمین پردازش دقیقاً یک‌بار (Exactly-Once Semantics) و صحت انتها به انتها (End-to-End Correctness) در خطوط لوله رویدادمحور

سرفصل‌ها و درس‌ها

ساختار دوره را فصل به فصل مرور کن و هر ویدیو را پخش کن.

5 فصل
فلسفه پردازش دسته‌ای و موتورهای جریان داده4 درس
01معرفی و اهداف فصل: فلسفه پردازش دسته‌ای و موتورهای جریان داده
02از خط لوله‌های یونیکس تا مپ‌ردیوس
03موتورهای جریان داده: از دیسک تا حافظه
04آزمون فصل ۱: پردازش دسته‌ای
جریان‌های رویداد، پیام‌رسانی و استخراج داده‌های تغییر یافته4 درس
01معرفی و اهداف فصل: جریان‌های رویداد، پیام‌رسانی و استخراج داده‌های تغییر یافته
02بروکرهای پیام مبتنی بر لاگ و منبع‌گرایی رویداد
03استخراج داده‌های تغییر یافته و تله نوشتن دوگانه
04آزمون فصل ۲: جریان‌های رویداد، پیام‌رسانی و استخراج داده‌های تغییر یافته
پنجره‌بندی و اتصال در پردازش جریانی4 درس
01معرفی و اهداف فصل: پنجره‌بندی و اتصال در پردازش جریانی
02پنجره‌بندی و معناشناسی زمان در جریان‌ها
03اتصال جریانی و پردازش استیت‌فول
04آزمون فصل ۳: پنجره‌بندی و اتصال در پردازش جریانی
فصل ۴: تجزیه پایگاه‌های داده و صحت انتها‌به‌انتها در خطوط لوله4 درس
01معرفی و اهداف فصل: فصل ۴: تجزیه پایگاه‌های داده و صحت انتها‌به‌انتها در خطوط لوله
02تجزیه پایگاه‌های داده برای داده‌های مشتق‌شده
03صحت انتها‌به‌انتها در خطوط لوله داده
04آزمون فصل ۴: تجزیه پایگاه‌های داده و صحت انتها‌به‌انتها در خطوط لوله
پروژه پایانی: معماری جامع پردازش جریان و دسته‌ای3 درس
01معرفی و اهداف فصل: پروژه پایانی: معماری جامع پردازش جریان و دسته‌ای
02پروژه پایانی: معماری پلتفرم کشف تقلب و تحلیل بلادرنگ
03آزمون جامع پایانی: پردازش داده در مقیاس