بازگشت به کتابخانهکتابخانه4.3Batch و Stream: کی باید بدانی؟
طراحی سیستم نرم‌افزاریSYSTEM DESIGNاز صفر تا تسلط
v1.0.0
01مبانی و تصویر بزرگ
02Scalability و ظرفیت
03لایه داده
04Cache، Queue و جریان
05معماری نرم‌افزار
06قابلیت اطمینان و عملیات
07متد طراحی
08Case Study های واقعی
09سیستم‌های توزیع‌شده عمیق
10مهندسی تولید: داده، امنیت و کارایی
11تمرین پیشرفته و کیس‌استادی‌های مکمل
12زیر کاپوت دیتابیس و معماری داده
13وب بلادرنگ و پروتکل‌های مدرن
14سیستم‌های توزیع‌شده پیشرفته
15SaaS ،SRE ،امنیت و شبکه پیشرفته
16طراحی سیستم در عصر AI
17Case Study های تکمیلی
LESSON 4.3فصل ۴Cache، Queue و جریان

Batch و Stream: کی باید بدانی؟

  • ~۹ دقیقه
  • ۳ پرسش
  • متن را انتخاب کن تا هایلایت شود

فرض کن صاحب بانکی. شب، حسابدار همه تراکنش‌های روز را روی میز می‌چیند و جمع می‌زند — گزارش فردا صبح آماده است. اما اگر کسی همین حالا از کارت دزدی بکشد، نمی‌توانی تا فردا صبر کنی. یکی باید همان لحظه ببیند و کارت را قفل کند. اولی Batch است؛ دومی Stream.

انتخاب تابعِ «چقدر زود باید بدانی؟» است، نه مد روز ابزار. اگر عدد یک ساعت دیر برسد هیچ‌کس آسیب نمی‌بیند، Batch بساز — ساده‌تر و ارزان‌تر است. اگر تصمیم باید همان لحظه گرفته شود، Stream.

بانک: شمارش شبانه و هشدار لحظه‌ای
چپ: حسابدار کل پرونده روز را یک‌جا جمع می‌زند — Batch. راست: باجه همان لحظه تراکنش مشکوک را می‌بیند و کارت را قفل می‌کند — Stream.
BatchStream
ورودیکل داده یک بازه — مثلاً دیروزرویدادها همان لحظه ورود
Latencyدقیقه تا ساعتمیلی‌ثانیه تا ثانیه
نمونه ابزارSpark ،HadoopFlink ،Kafka Streams
کاربردگزارش روزانه، آموزش مدل، صورتحسابتشخیص تقلب، داشبورد زنده، هشدار

جریان بی‌پایان را چطور می‌شماری؟

استریم ته ندارد. برای اینکه بگویی «چند کلیک در این دقیقه»، باید یک قاب دورش بکشی. اسم آن قاب Window است. و ساعتِ رویداد با ساعتِ رسیدنش یکی نیست.

Windowing
استریم بی‌پایان را پنجره‌پنجره می‌کنی: «تعداد کلیک هر ۱ دقیقه». Tumbling پشت‌سرهم و بدون هم‌پوشانی است؛ Sliding لغزان است و رویداد را در چند پنجره می‌شمارد.
Event Time
زمان وقوع رویداد. کلیک ساعت ۹ که ساعت ۱۰ رسیده، باید در آمار ساعت ۹ بنشیند — موبایل آفلاین بود.
Processing Time
زمان رسیدن به سرور تو. ساده‌تر است؛ اگر رویداد دیر برسد، در بازه غلط شمرده می‌شود.
Watermark
خطی که سیستم می‌کشد: «دیگر از این لحظه عقب‌تر چیزی انتظار ندارم». بعد از آن، پنجره بسته می‌شود و نتیجه اعلام می‌گردد.
ETL / ELT
خط لوله کلاسیک به انبار داده — Data Warehouse. ETL اول تبدیل می‌کند بعد بار می‌گذارد؛ ELT اول بار می‌گذارد، تبدیل را به انبار می‌سپارد.

الگوی رایج معماری داده: همه رویدادها به Kafka. از آنجا هم مصرف استریمی — هشدار تقلب در لحظه — هم رسوب به Data Lake برای Batch شبانه. یک منبع حقیقت، دو سرعت مصرف.

به زبان ساده

شب همه تراکنش روز را یک‌جا جمع می‌زنی — Batch. دزدی کارت را همان لحظه می‌بینی — Stream.

مثال واقعی

گزارش فروش دیروز را شبانه بساز؛ تراکنش مشکوک را از روی جریان Kafka همان لحظه قفل کن.

دانش‌سنجی

آزمون درس

۳ Q
01
تشخیص تراکنش مشکوک بانکی باید در لحظه جلوی پرداخت را بگیرد. کدام پردازش؟
02
«جمع فروش هر فروشگاه در هر ۵ دقیقه» نمونه چیست؟
03
چرا Event Time مهم است؟