बिग डेटा और इवेंट प्रोसेसिंग पाइपलाइन

पॉल ज्यूलिन, मेवेन ले रिस्टे और गिलाइम वर्नर तीन डेवलपर इंटर्न हैं, जो वेंट-प्रिवी एपेक इनोवेशन लैब में हैं। यह चौराहा एपीटेक पेरिस में उनके कॉलेज के चक्र में योगदान करने के लिए है। उन्होंने एक वेब प्लेटफॉर्म पर एक साथ काम किया जिसका उद्देश्य वेंट-प्रिवे टीमों में परीक्षण की सुविधा प्रदान करना है

बड़ा डेटा शब्द अधिक से अधिक उद्यमों द्वारा उपयोग किया जाता है। उनमें से कई एक कुशल वातावरण बनाने के लिए बुनियादी ढांचे को लागू करना चाहते हैं। जब आप वास्तव में नहीं जानते कि आप क्या कर रहे हैं, तो उन तकनीकों को खोजना बहुत मुश्किल है जो वास्तव में हमारी मांग से मेल खाती हैं। बड़े डेटा की दुनिया अक्सर बहुत अपारदर्शी लग सकती है, हम इस लेख में इसे स्पष्ट करने का प्रयास करेंगे।

बिग डेटा क्या है?

बड़े डेटा शब्द का उपयोग डे 1998 के बाद से किया गया है, "बड़े डेटा ... और इंफ्रास्ट्रेस की अगली लहर" पेपर के साथ, सिलिकॉन ग्राफिक्स के प्रमुख वैज्ञानिक जॉन माशेय के लिए धन्यवाद। बड़ा डेटा तीन बनाम: मात्रा, विविधता और वेग से जुड़ा है। वॉल्यूम डेटा की मात्रा के बारे में है, जिसे गीगाबाइट में yottabyte (1 about बाइट्स) में मापा जाता है। वेग वह समय है जब डेटा का इलाज किया जा सकता है, आज हम वास्तविक समय के बारे में बात करते हैं। अंत में, विविधता संरचना है, यह असंरचित हो सकता है, लेकिन यह फोटो, ऑडियो या वीडियो डेटा भी हो सकता है। विभिन्न प्रकार के डेटा बहुत सारे हैं।

बिग डेटा 3Vs

कुछ आंकड़ों में संक्षेप करने के लिए, हर मिनट, फेसबुक उपयोगकर्ताओं द्वारा 31 मिलियन से अधिक संदेश भेजे जाते हैं, और जो 2 मिलियन से अधिक वीडियो होते हैं। हर दिन 3 बिलियन से अधिक Google खोज होती हैं। 2020 में, बड़े डेटा की संचित मात्रा 44 ट्रिलियन जीबी (न्यूजेनैप्स और डोमो के अनुसार) तक बढ़ जाएगी।

मेरे पास कई टन डेटा है, मैं उनके साथ क्या कर सकता हूं?

उद्यम बड़ी डेटा समस्याग्रस्तता में रुचि रखते हैं क्योंकि उनके पास वास्तविक अर्थशास्त्र हित हैं। उदाहरण के लिए, एक वेब मीडिया के लिए, आप अपने एप्लिकेशन की क्लिक स्ट्रीम पर कुछ एनालिटिक्स कर सकते हैं, कुछ विज्ञापनों को लक्षित कर सकते हैं और एक अवधि के दौरान औसत उपयोगकर्ताओं के बारे में कुछ पूर्वानुमान कर सकते हैं। थमैटिक जैसे कि सीखने की मशीन या डेटा विज्ञान आज आवश्यक हैं। यह एक सरलीकृत घटना प्रसंस्करण पाइपलाइन का एक स्कीमा है:

घटना प्रसंस्करण पाइपलाइन

लक्ष्य विभिन्न भागों में डेटा (घटनाओं) के उपचार का अनुकूलन करना है:

· ब्रोकर: कच्चे डेटा का भंडारण।

· स्ट्रीम: डेटा उपचार।

· डेटाबेस: उपचारित डेटा संग्रहण।

· विज़ुअलाइज़र: विज़ुअल डेटा।

ब्रह्मांड का बड़ा डेटा उन सवालों के जवाब देता है जो कई लोगों ने पहले खुद से पूछे हैं। सब कुछ के बावजूद, बड़े डेटा से संबंधित कुछ समस्याएं हैं। सबसे पहले, लागत कम करने के लिए आपके डेटा के भंडारण को अनुकूलित किया जाना चाहिए। फिर, डेटा गोपनीयता आवश्यक है, जैसा कि हम देख सकते हैं, फेसबुक या Google जैसी प्रमुख सोसायटी गोपनीयता समस्याओं से घिरी हुई हैं (देखें कैम्ब्रिज एनालिटिका मामला)। हम जिस समस्या का अध्ययन करने जा रहे हैं वह प्रौद्योगिकी की पसंद से संबंधित है।

सही तकनीकों का चयन कैसे करें?

बिग डेटा की तकनीकें कई हैं, कभी-कभी अपना रास्ता खोजना मुश्किल होता है। बड़े डेटा का एक प्रमुख अभिनेता अपाचे है, उनकी सबसे प्रसिद्ध प्रौद्योगिकियों में काफ्का, हडोप या स्पार्क हैं। कुछ लोगों के लिए, वे अपने क्षेत्र में उत्कृष्टता प्राप्त करते हैं, उदाहरण के लिए Hadoop जो Google द्वारा कार्यान्वित एक उन्नत एल्गोरिदम के साथ अनुकूलित भंडारण की अनुमति देता है: MapReduce, या Kafka, जो एक संदेश दलाल के रूप में उपयोग किया जाता है, यह बहुत शक्तिशाली है जब आप बहुत सारे डेटा वितरित करना चाहते हैं विभिन्न धाराएँ।

स्ट्रीम प्रोसेसिंग के लिए, बहुत सारी प्रौद्योगिकियां हैं, यदि आप विभिन्न मौजूदा उपयोग के मामले का अध्ययन करते हैं, तो अपना रास्ता खोजना आसान है। चलो डेटा स्ट्रीम प्रोसेसिंग का उदाहरण लेते हैं, आज इस क्षेत्र में कई प्रौद्योगिकियां हैं और उन सभी में पेशेवरों और विपक्ष हैं। Google (क्लाउड डेटाफ़्लो जो अपाचे बीम बन गए हैं) या Spotify (SCIO) जैसी कंपनियों ने अपनी समस्या को हल करने के लिए अपनी तकनीक बनाई। यदि हम Vente-Privee के उपयोग के मामले को लेते हैं, तो कई डेटा एक एपीआई के साथ एकत्र किए जाते हैं जो उन्हें काफ्का में धकेल देते हैं। समस्याग्रस्त वास्तविक समय में या इतिहास के साथ डेटा को एकत्र करना था, उसी तकनीक के साथ लागू करना जितना सरल हो सके। यहाँ सरलीकृत उपयोग मामला है जो हमने बनाया है।

त्वरित उपयोग मामला

मामला बहुत सरल है: कफका में हमारे पास बहुत सारे डेटा (कुछ ईवेंट) हैं, हमें KPI (मुख्य प्रदर्शन संकेतक) उत्पन्न करने और एकत्रित डेटा को डेटाबेस में धकेलने की आवश्यकता है। स्ट्रीम प्रोसेसिंग को लागू करने के लिए हमें पहले सही तकनीकों को खोजने की जरूरत है। उसके लिए, हमारे निपटान में कुछ प्रौद्योगिकियाँ हैं:

ये ऐसे ढांचे हैं जो डेटा एकत्रीकरण की सुविधा प्रदान करेंगे, उनमें से अधिकांश जावा भाषा का उपयोग करते हैं।

हमने अपनी पसंद को आसान बनाने के लिए एक त्वरित बेंचमार्क बनाया, आवश्यकताएं सरल थीं:

· प्रलेखन: समर्थन की गुणवत्ता।

· संगतता: यह कार्यान्वित प्रौद्योगिकियों के साथ संगत है।

· शुरुआत करना: अवधारणा का प्रमाण देने का समय।

· परिनियोजन: डोकर के साथ चलने योग्य और तैनाती योग्य।

· अनुकूलन: जब आप गहराई में जाते हैं तो प्रौद्योगिकी की गुणवत्ता।

मानदंड निर्धारित करने की पद्धति सरल थी, हम एक बिंदु का परीक्षण कर रहे थे, अगर यह नकारात्मक और अवरुद्ध नहीं था, तो हमने अगली तकनीक पर स्विच किया।

इस मामले में, बीम सबसे उपयुक्त है। विस्तार से, इसमें कई बड़ी डेटा प्रौद्योगिकियां शामिल हैं जैसे काफ्का पढ़ना, कैसेंड्रा इनपुट / आउटपुट और कई अन्य। पाइपलाइनों की एक प्रणाली के साथ डेटा प्रवाह को प्रबंधित करने का तरीका बहुत अनुकूलित है। यह चलने का तरीका भी बहुत आसान है, आपके पास "प्रथम-हाथ" या स्पार्क या फ़िंक जैसे विशिष्ट धावक के साथ चलने का विकल्प है। जो अपाचे बीम के बड़े सकारात्मक बिंदु को लाता है, मापनीयता। जब आपके पास संसाधित होने के लिए बड़ी मात्रा में डेटा होता है, तो आपको एक ही समय में कई एग्रीगेटर चलाने की आवश्यकता होती है, अड़चन से बचने के लिए आपको बीम जैसी स्केलेबल तकनीक की आवश्यकता होगी। कुछ नकारात्मक बिंदु हैं, लेकिन ब्लॉकिंग नहीं, टाइम सीरीज़ डेटाबेस आउटपुट की तरह, हमारे मामले में हम बस अपने आधिकारिक डेटा विज़ुअलाइज़र, अपाचे ज़ेपेलिन के साथ, सिलेला डेटाबेस (सी ++ कैसेंड्रा ओवरलेयर) को समय श्रृंखला के रूप में उपयोग करते हैं। इसके अलावा, अपाचे बीम एक युवा तकनीक है, इसलिए समुदाय की एक बड़ी कमी है, और यह बहुत जटिल है, अगर आप जावा भाषा के साथ सुविधाजनक नहीं हैं, तो यह समझने के लिए कि यह कैसे काम करता है।

प्रौद्योगिकियों का एक सेट चुनने के बाद, आपको उन्हें लागू करने, तैनात करने और परीक्षण करने की आवश्यकता होगी। एक बड़ा डेटा वातावरण बहुत तेज़ी से बढ़ता है और उस पर हाथ रखना महत्वपूर्ण है। सुनिश्चित करें कि सभी तकनीकों का परीक्षण और तैनाती की जा सकती है (Gitlab CI इसके लिए बहुत सुविधाजनक है)। कई डेवलपर बड़े डेटा पर काम करते हैं, लेकिन समुदाय अभी भी बहुत कमजोर है, इसमें योगदान देना भी बहुत महत्वपूर्ण है।

आगे जाने के लिए यहां कुछ लिंक दिए गए हैं:

https://www.mongodb.com/big-data-explained

https://data-artisans.com/what-is-stream-processing

https://kafka.apache.org/

https://beam.apache.org/

https://www.scylladb.com/

https://zeppelin.apache.org/

लेखक: पॉल जुलिएन, गिलियूम वर्नर, मेवेन ले रिस्टे