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

| Batch | Stream | |
|---|---|---|
| ورودی | کل داده یک بازه — مثلاً دیروز | رویدادها همان لحظه ورود |
| Latency | دقیقه تا ساعت | میلیثانیه تا ثانیه |
| نمونه ابزار | Spark ،Hadoop | Flink ،Kafka Streams |
| کاربرد | گزارش روزانه، آموزش مدل، صورتحساب | تشخیص تقلب، داشبورد زنده، هشدار |
جریان بیپایان را چطور میشماری؟
استریم ته ندارد. برای اینکه بگویی «چند کلیک در این دقیقه»، باید یک قاب دورش بکشی. اسم آن قاب Window است. و ساعتِ رویداد با ساعتِ رسیدنش یکی نیست.
الگوی رایج معماری داده: همه رویدادها به Kafka. از آنجا هم مصرف استریمی — هشدار تقلب در لحظه — هم رسوب به Data Lake برای Batch شبانه. یک منبع حقیقت، دو سرعت مصرف.
به زبان ساده
شب همه تراکنش روز را یکجا جمع میزنی — Batch. دزدی کارت را همان لحظه میبینی — Stream.
مثال واقعی
گزارش فروش دیروز را شبانه بساز؛ تراکنش مشکوک را از روی جریان Kafka همان لحظه قفل کن.