कू का डेटा प्लेटफ़ॉर्म – भाग 1: Apache Kafka और NiFi

By Koo App

फनीश गुरुराज द्वारा, 3 जनवरी, 2022 को

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

इस ब्लॉग श्रृंखला के भाग 1 में, हम निफ़ी और काफ्का को कवर करेंगे।

स्केलेबल अंतर्ग्रहण पाइपलाइन
  • कम लागत वाला डेटा संग्रहण।
  • आवश्यकता के अनुसार क्वेरी करना और बाहरी डेटा लाना आसान है।
  • ओपन सोर्स।
  • पहुंच नियंत्रण।< /li>
  • संसाधित डेटा के स्नैपशॉट संग्रहीत करें।

हमने कुछ सामान्य पैटर्न का मूल्यांकन किया जो अपाचे स्टैक के शीर्ष पर बने हैं - काफ्का, निफ़ी, हुडी, लकड़ी की छत, स्पार्क

यहां हमारे डेटा के आकार के बारे में कुछ आंकड़े दिए गए हैं

  • > 500 जीबी एप्लिकेशन प्रतिदिन लॉग करता है।
  • > उपयोगकर्ताओं का 20 जीबी संरचित महत्वपूर्ण डेटा — प्रोफ़ाइल, यात्रा, प्रति दिन महत्वपूर्ण कार्य।
  • > प्रति दिन 3M इंप्रेशन।
Kafka

हमें एक युद्ध परीक्षण संदेश कतार प्रणाली की आवश्यकता थी और काफ्का आदर्श विकल्प था। हमारे पैमाने के लिए, हमें कुछ ऐसा चाहिए था जो क्षैतिज रूप से स्केलेबल और दोष सहिष्णु हो।

काफ्का में विषयों की अवधारणा ने हमें अपने अंतर्ग्रहण वास्तुकला को कुशलतापूर्वक स्तरित करने में मदद की क्योंकि घटनाओं के कई निर्माता हैं। मोटे तौर पर, हम कब्जा

  • [उपयोगकर्ताओं द्वारा पढ़े गए कूज़ → इंप्रेशन]
  • [कूस पसंद किए गए, फिर से कूए गए → प्रतिक्रियाएं]
  • [लोग फ़ॉलो / अनफ़ॉलो करें → नेटवर्क]
  • [विज़िट → प्रोफ़ाइल, इमेज, कू-विवरण, स्क्रीन]
NiFi

उत्पादकों से विभिन्न ईटीएल को व्यवस्थित करने और डेटा पाइपलाइन की श्रृंखला बनाने के लिए, NiFi एक अच्छा उम्मीदवार है। विभिन्न बिल्ट-इन कनेक्टर ट्रांसफॉर्मेशन और पाइपलाइनों को सिलाई करते समय काफी काम आते हैं।

NiFi की कुछ महत्वपूर्ण विशेषताएं, जो अत्यंत महत्वपूर्ण हैं

    • रनटाइम प्रवाह प्रबंधन संभव है।

प्रोसेसर।

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

नीचे दिया गया ग्राफ हमारे छापों के लिए चार्ट दिखाता है (एक महत्वपूर्ण विश्लेषणात्मक डेटा जो हमारी कई एमएल पाइपलाइनों को शक्ति देता है)। जैसे ही डेटा काफ्का से होकर बहता है और अंत में S3 में बस जाता है, a

  • रूपांतरणों का समूह लागू किया जाता है
  • डेटा कभी-कभी त्वरित संदर्भ के लिए अन्य स्रोतों से लिया जाता है
  • डेटा कुछ शर्तों के आधार पर पाइपलाइन में अगले प्रोसेसर को भेजा जाता है< /li>

हमारे NiFi उपयोग के मामले में बहुत अधिक विलय की आवश्यकता है → अधिक विवरण यहाँ। जैसा कि आप ऊपर दिए गए ग्राफ से देख सकते हैं। विलय का आरपीएम काफी अधिक है। कभी-कभी, हम स्थिर स्थिति की तुलना में कुछ अनुरोधों के लिए अधिक संसाधनों का प्रावधान करके पाइपलाइनों में तेजी लाने के लिए कुछ प्रवाह को ट्रिगर करते हैं जो आमतौर पर होता है। यह एक बड़ा फायदा है जो हमें इंफ्रा को परेशान किए बिना संसाधनों का प्रबंधन करने में मदद करता है।

डेटा पाइपलाइनों को कुशलतापूर्वक स्थापित करने के लिए काफ्का और निफ़ी एक शक्तिशाली संयोजन बनाते हैं। दोनों प्रौद्योगिकियों की क्षैतिज मापनीय प्रकृति भी एक बहुत ही महत्वपूर्ण पहलू है। NiFi को बेहतर ढंग से समझने के लिए FlowFiles और प्रोसेसर को थोड़ा और गहराई से समझने की जरूरत है।

FlowFiles — फ्लोफाइल Apache NiFi में एक बुनियादी संसाधन इकाई है। इसमें डेटा सामग्री और विशेषताएं हैं, जो डेटा को संसाधित करने के लिए NiFi प्रोसेसर द्वारा उपयोग की जाती हैं। फ़ाइल सामग्री में सामान्य रूप से स्रोत सिस्टम से प्राप्त डेटा होता है।

प्रोसेसर — Apache NiFi डेटाफ़्लो बनाने के लिए एक प्रोसेसर बुनियादी बिल्डिंग ब्लॉक बनाता है। प्रोसेसर एक इंटरफ़ेस प्रदान करते हैं जिसके माध्यम से NiFi फ़्लोफ़ाइल, इसकी विशेषताओं और इसकी सामग्री तक पहुँच प्रदान करता है।

परिदृश्य - अधिसूचना घटनाओं या कुछ कू के वायरल होने के दौरान अचानक स्पाइक

इन अचानक आई तेजी से निपटने के लिए NiFi वास्तव में अच्छी तरह से काम करता है और हम अपनी आवश्यकताओं के अनुरूप बैक प्रेशर को ठीक कर सकते हैं।

P1 → P2 → P3

उदाहरण: हमारे पास 3 प्रोसेसर हैं - P1, P2 और P3। p3 के लिए बैक प्रेशर कॉन्फ़िगर किया गया है, आइए हम 10K कहें। ये सॉफ्ट लिमिट हैं और इन्हें डेटा पथ और समय के आधार पर कॉन्फ़िगर किया जा सकता है। साथ ही, अगर p2 1M प्रवाह फ़ाइलें बनाता है, तो इन सभी 1M को p3 में डंप कर दिया जाएगा जो एक डाउनस्ट्रीम सिस्टम है। जब तक p3 अपने सभी संदेशों को संसाधित करना पूर्ण नहीं कर लेता, तब तक p2 अनुसूचक को रोक दिया जाता है। इस तरह, हम अचानक होने वाले स्पाइक को भी नियंत्रित करने में सक्षम होते हैं।

पैरामीटर संदर्भ

उदाहरण: कू में, हमें मीडिया प्राप्त होता है जो ऑडियो, वीडियो, छवियों के रूप में होता है। हमारे पास एक संदेश ऑब्जेक्ट है जिसमें मीडिया ऑब्जेक्ट के बारे में कुछ मेटा-डेटा है → (छवि, वीडियो या ऑडियो हो सकता है), पैरामीटर संदर्भ एक अच्छा उपयोग मामला है। जब यह संदेश वस्तु NiFi पाइपलाइन से टकराती है, तो संदर्भ वस्तु पहले चालू हो जाती है और उपयुक्त प्रक्षेपण और श्रृंखला स्थापित हो जाती है। ऑडियो, इमेज और वीडियो के लिए अलग-अलग पाइपलाइन बनाई जा सकती हैं। साथ ही, कुछ सामान्य गुणों को केवल एक बार ही निकाला जा सकता है और आगे भेजा जा सकता है। यह पैरामीटर संदर्भ विरासत NiFi के नवीनतम संस्करण में उपलब्ध है - 1.15.0 जो काफी कुशल है। एक इंजीनियर के रूप में कोई भी कुशल कोड लिखने के तरीके के समान अच्छी तरह से पाइपलाइन तैयार कर सकता है।

सारांश

NiFi एक बेहतरीन डेटा पाइपलाइन निर्माता है। एक डेटा इंजीनियर के लिए जो मजबूत पाइपलाइन स्थापित करना चाहता है और उसे कुशलता से प्रबंधित करना चाहता है, यह उसके प्रदर्शनों की सूची में एक बड़ा जोड़ है। हम अपनी डेटा प्लेटफ़ॉर्म टीम को काम पर रख रहे हैं और उसका निर्माण कर रहे हैं। इस टीम में शामिल होने के लिए लोगों की तलाश है — कृपया अपनी प्रोफ़ाइल @ ta@kooapp.com पर साझा करें

अपने ब्लॉग के अगले भाग में, हम अपने s3 आर्किटेक्चर, विभाजन रणनीति और कुछ उपयोग के मामलों में गहराई से जाएंगे।

कमेंट करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *