स्ट्रीम प्रोसेसिंग डेटा के आते ही उसे लगातार प्रोसेस करती है। डेटा को बैचों में इकट्ठा करके अंतराल पर प्रोसेस करने के बजाय, स्ट्रीम प्रोसेसर सिस्टम से गुजरते समय हर इवेंट का विश्लेषण करते हैं। क्रेडिट कार्ड लेनदेन में धोखाधड़ी की जांच मिलीसेकंड में की जाती है। सेंसर रीडिंग एक निश्चित सीमा को पार करने पर अलर्ट जारी करती है। क्लिकस्ट्रीम एक रिकमेंडेशन मॉडल को रियल टाइम में अपडेट करती है। प्रोसेसिंग गति में होती है, स्थिर अवस्था में नहीं।
इसका आर्किटेक्चर बैच प्रोसेसिंग से अलग है। डेटा Kafka या Kinesis जैसी मैसेज क्यू के माध्यम से आता है। Flink, Spark Streaming या Kafka Streams जैसे स्ट्रीम प्रोसेसर इवेंट्स को प्रोसेस करते हैं, उन पर ट्रांसफॉर्मेशन लागू करते हैं और परिणाम देते हैं। सिस्टम को देर से आने वाले इवेंट्स, अव्यवस्थित डेटा और एक्जेक्टली-वन्स (Exactly-once) सिमेंटिक्स को संभालना होता है। ये जटिल समस्याएं हैं। देर से आने वाले इवेंट्स के लिए वॉटरमार्क की आवश्यकता होती है ताकि यह निर्धारित किया जा सके कि समय सीमा कब पूरी हुई। अव्यवस्थित इवेंट्स के लिए बफरिंग और रीऑर्डरिंग की आवश्यकता होती है। एक्जेक्टली-वन्स प्रोसेसिंग के लिए सोर्स, प्रोसेसर और सिंक के बीच समन्वय की आवश्यकता होती है। इन सभी को सही ढंग से करना जटिल है। जब ये गलत होते हैं, तो परिणाम असंगत या डुप्लिकेट हो जाते हैं। स्ट्रीम प्रोसेसिंग उन उपयोग मामलों के लिए शक्तिशाली है जिन्हें तत्काल जानकारी की आवश्यकता होती है। यह रात की रिपोर्टों के लिए अनावश्यक है। बैच और स्ट्रीम के बीच चुनाव लेटेंसी की आवश्यकता पर निर्भर करता है। यदि मिनट या घंटे स्वीकार्य हैं, तो बैच सरल और सस्ता है। यदि सेकंड मायने रखते हैं, तो स्ट्रीम ही एकमात्र विकल्प है।
स्ट्रीम प्रोसेसिंग विशेषताएँ
- निरंतर — घटनाओं के घटित होते ही उन्हें संसाधित करता है
- कम विलंबता — मिलीसेकंड से सेकंड तक
- स्टेटफुल — विभिन्न आयोजनों में स्टेट को बनाए रखता है
- जटिल — विलंबित और अव्यवस्थित डेटा को संभालता है
- स्केलेबल — कई नोड्स में वितरित होता है
स्ट्रीम प्रोसेसिंग, बैच प्रोसेसिंग का ही उल्टा रूप है। डेटा के इकट्ठा होने का इंतज़ार करने के बजाय, यह हर घटना के घटित होते ही उस पर कार्रवाई करता है।
Comments
No comments yet. Be the first to share a thought.
Leave a comment