कूचा डेटा प्लॅटफॉर्म — भाग १: Apache Kafka and NiFi

By Koo App

फणीश गुरुराज यांनी, ३ जानेवारी २०२२ रोजी

ते म्हणतात त्याप्रमाणे डेटा हा कोणत्याही संस्थेच्या यशाचा गाभा असतो, विशेषतः कू सारख्या उत्पादनासाठी; आम्ही रिअल टाइममध्ये विविध डेटा पॉइंट्स कॅप्चर करतो जे आम्हाला आमच्या वापरकर्त्यांचा प्रवास अधिक चांगल्या प्रकारे समजून घेण्यास मदत करतात. आम्ही निर्माण करत असलेल्या वाढीसह, विश्लेषण आणि प्रवाहाच्या दृष्टीकोनातून आमचा डेटा प्लॅटफॉर्म स्केल करण्याचे एक सतत आव्हान आहे. या नोंदीवर, जेव्हा आम्ही आमचा डेटा प्लॅटफॉर्म तयार करण्याचा निर्णय घेतला तेव्हा आम्ही खालील आर्किटेक्चरची उद्दिष्टे लक्षात घेऊन एक समग्र दृष्टीकोन घेतला.

या ब्लॉग मालिकेच्या भाग 1 मध्ये, आम्ही NiFiआणि Kafkaकव्हर करू.

स्केलेबल अंतर्ग्रहण पाइपलाइन
  • कमी किमतीचा डेटा स्टोरेज.
  • क्वेरी करणे सोपे आणि आवश्यकतेनुसार बाह्य डेटा आणणे.
  • खुला स्रोत.
  • प्रवेश नियंत्रणे.
  • प्रक्रिया केलेल्या डेटाचे स्नॅपशॉट संग्रहित करा.

आम्ही Apache स्टॅकच्या वर तयार केलेल्या काही सामान्य नमुन्यांचे मूल्यमापन केले — Kafka, NiFi, हुडी, पर्केट, स्पार्क

आमच्या डेटाच्या आकाराबद्दल येथे काही आकडेवारी आहेत

  • > दररोज 500 GB ऍप्लिकेशन लॉग.
  • > वापरकर्त्यांचा 20 GB संरचित गंभीर डेटा — प्रोफाइल, प्रवास, प्रतिदिन गंभीर क्रिया.
  • > दररोज 3M इंप्रेशन्स.
Kafka

आम्हाला युद्ध चाचणी संदेश रांग प्रणालीची आवश्यकता होती आणि काफ्का हा आदर्श पर्याय होता. आमच्या स्केलसाठी, आम्हाला क्षैतिज स्केलेबल आणि दोष सहन करू शकणारे काहीतरी आवश्यक आहे.

काफ्कामधील विषय या संकल्पनेने आम्हाला आमची अंतर्ग्रहण आर्किटेक्चर कार्यक्षमतेने स्तरित करण्यात मदत केली कारण कार्यक्रमांचे अनेक उत्पादक आहेत. व्यापकपणे, आम्ही कॅप्चर करतो

  • [वापरकर्त्यांनी वाचलेले → छाप]
  • [Koos ला आवडले, re-kooed → प्रतिक्रिया]
  • [लोक फॉलो/अनफॉलो → नेटवर्क]
  • [भेट → प्रोफाइल, प्रतिमा, कू-तपशील, स्क्रीन]
NiFi

उत्पादकांकडून विविध ETL चे आयोजन करण्यासाठी आणि डेटा पाइपलाइन साखळी करण्यासाठी, NiFi एक चांगला उमेदवार आहे. ट्रान्सफॉर्मेशन्स आणि पाइपलाइन स्टिच करताना विविध बिल्ट-इन कनेक्टर खूप उपयुक्त आहेत.

NiFi ची काही महत्त्वाची वैशिष्ट्ये, ती अत्यंत महत्त्वाची आहे

<ul>
<li>रनटाइम प्रवाह व्यवस्थापन शक्य आहे.</li>
<li>डायनॅमिक प्राधान्यक्रम.</li>
<li>डेटा प्रोव्हेनन्स → डेटा पाथचा मागोवा घेणे.</li>
<li>बॅक प्रेशर आणि स्केल प्रोसेसर प्रभावीपणे व्यवस्थापित करा.</li>
</ul>

एक महत्त्वाची सोशल मीडिया संस्था म्हणून, कू प्रादेशिक भाषा आणि स्थानिक थीम्सच्या आसपास निर्माते आणि वापरकर्त्यांचे समुदाय तयार करेल जे दैनंदिन जीवनात महत्त्वाच्या असलेल्या अर्थपूर्ण, समृद्ध परस्परसंवादांना कारणीभूत ठरेल.

खालील आलेख आमच्या इंप्रेशनसाठी चार्ट दाखवतो (आमच्या अनेक ML पाइपलाइनला सामर्थ्य देणारा एक गंभीर विश्लेषणात्मक डेटा). जसजसा डेटा काफ्कामधून वाहतो आणि शेवटी S3 मध्ये स्थिरावतो, अ

  • परिवर्तनांचा समूह लागू केला जातो
  • काही वेळा द्रुत संदर्भासाठी डेटा इतर स्त्रोतांकडून काढला जातो
  • काही अटींवर अवलंबून डेटा पाइपलाइनमधील पुढील प्रोसेसरला पाठवला जातो

आमची NiFi वापर केस खूप विलीन करण्याची मागणी करते → येथे अधिक तपशील. जसे आपण वरील आलेखावरून पहात आहात. विलीनीकरणाची आरपीएम खूप जास्त आहे. कधीकधी, आम्ही सामान्यतः स्थिर स्थितीच्या तुलनेत काही विनंत्यांसाठी अधिक संसाधनांची तरतूद करून पाइपलाइनला गती देण्यासाठी काही प्रवाह ट्रिगर करतो. हा एक मोठा फायदा आहे जो आम्हाला इन्फ्राला त्रास न देता संसाधने व्यवस्थापित करण्यात मदत करतो.

डेटा पाइपलाइन कार्यक्षमतेने सेट करण्यासाठी काफ्का आणि NiFi एक शक्तिशाली संयोजन तयार करतात. दोन्ही तंत्रज्ञानाचे क्षैतिज स्केलेबल स्वरूप देखील एक अतिशय गंभीर पैलू आहे. NiFi अधिक चांगल्या प्रकारे समजून घेण्यासाठी FlowFiles आणि Processors अधिक खोलात समजून घेणे आवश्यक आहे.

FlowFiles — Apache NiFi मधील एक फ्लोफाइल ही मूलभूत प्रक्रिया संस्था आहे. यात डेटा सामग्री आणि गुणधर्म आहेत, जे डेटावर प्रक्रिया करण्यासाठी NiFi प्रोसेसरद्वारे वापरले जातात. फाइल सामग्रीमध्ये सामान्यतः स्त्रोत प्रणालींमधून आणलेला डेटा असतो.

प्रोसेसर — Apache NiFi डेटाफ्लो तयार करण्यासाठी प्रोसेसर मूलभूत बिल्डिंग ब्लॉक तयार करतो. प्रोसेसर एक इंटरफेस प्रदान करतात ज्याद्वारे NiFi फ्लोफाइल, त्याचे गुणधर्म आणि त्यातील सामग्रीमध्ये प्रवेश प्रदान करते.

परिस्थिती — सूचना इव्हेंट दरम्यान अचानक वाढणे किंवा काही कूचे व्हायरल होणे

या अचानक वाढलेल्या स्पाइक्स हाताळण्यासाठी NiFi खरोखर चांगले कार्य करते आणि आम्ही आमच्या गरजेनुसार बॅक प्रेशर ट्यून करू शकतो.

P1 → P2 → P3

उदा: आमच्याकडे ३ प्रोसेसर आहेत — P1, P2 आणि P3. p3 साठी बॅक प्रेशर कॉन्फिगर केले आहे चला 10K म्हणू या. या मऊ मर्यादा आहेत आणि डेटा मार्ग आणि वेळेनुसार कॉन्फिगर केल्या जाऊ शकतात. तसेच, जर p2 1M फ्लो फाइल्स तयार करत असेल, तर या सर्व 1M p3 मध्ये टाकल्या जातील जी डाउनस्ट्रीम सिस्टम आहे. p3 त्याच्या सर्व संदेशांवर प्रक्रिया पूर्ण करेपर्यंत, p2 शेड्युलरला विराम दिला जातो. अशा प्रकारे, आम्ही अचानक वाढलेल्या वाढीवर नियंत्रण ठेवण्यास सक्षम आहोत.

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

उदा: कू येथे, आम्हाला ऑडिओ, व्हिडिओ, प्रतिमा या स्वरूपात मीडिया प्राप्त होतो. आमच्याकडे एक मेसेज ऑब्जेक्ट आहे ज्यामध्ये मीडिया ऑब्जेक्ट बद्दल काही मेटा-डेटा आहे → (इमेज, व्हिडिओ किंवा ऑडिओ असू शकते), पॅरामीटर संदर्भ एक चांगला वापर केस आहे. जेव्हा हा संदेश ऑब्जेक्ट NiFi पाइपलाइनला आदळतो, तेव्हा संदर्भ ऑब्जेक्ट प्रथम ट्रिगर होतो आणि योग्य प्रोजेक्शन आणि चेनिंग स्थापित केले जाते. ऑडिओ, इमेज आणि व्हिडिओसाठी वेगवेगळ्या पाइपलाइन तयार केल्या जाऊ शकतात. तसेच, काही सामान्य गुणधर्म फक्त एकदाच काढले जाऊ शकतात आणि पुढे दिले जाऊ शकतात. हा मापदंड संदर्भ वारसा NiFi — 1.15.0 च्या नवीनतम आवृत्तीमध्ये उपलब्ध आहे जो खूप कार्यक्षम आहे. एक अभियंता म्हणून एखादी व्यक्ती कार्यक्षम कोड कशी लिहिते त्याप्रमाणे पाइपलाइन चांगल्या प्रकारे डिझाइन करू शकते.

सारांश

NiFi एक उत्तम डेटा पाइपलाइन बिल्डर आहे. मजबूत पाइपलाइन सेट करण्यास आणि ते कार्यक्षमतेने व्यवस्थापित करण्यास उत्सुक असलेल्या डेटा अभियंत्यासाठी, त्याच्या/तिच्या संग्रहात ही एक चांगली भर आहे. आम्ही आमची डेटा प्लॅटफॉर्म टीम नियुक्त करत आहोत आणि तयार करत आहोत. या टीममध्ये सामील होण्यासाठी लोक शोधत आहात — कृपया तुमचे प्रोफाइल शेअर करा @ ta@kooapp.com

आमच्या ब्लॉगच्या पुढील भागात, आम्ही आमच्या s3 आर्किटेक्चर, विभाजन धोरण आणि काही वापर प्रकरणांमध्ये खोलवर जाऊ.

टिप्पणी करा

Your email address will not be published. Required fields are marked *