paint-brush
आख़िर प्रोटोन क्या है?द्वारा@progrockrec
1,459 रीडिंग
1,459 रीडिंग

आख़िर प्रोटोन क्या है?

द्वारा Shawn Gordon4m2023/12/31
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

प्रोटॉन एक ओपन-सोर्स अपाचे 2.0 लाइसेंस प्राप्त प्रोजेक्ट है जो [टाइमप्लस] द्वारा प्रायोजित है, जो सी++ में लिखा गया है और [क्लिकहाउस] द्वारा संचालित है, यह ऐतिहासिक और स्ट्रीमिंग डेटा दोनों को समायोजित करता है। एकल निष्पादन योग्य के साथ, इंस्टॉलेशन सरल है। प्रोटॉन में कई बेहतरीन विशेषताएं हैं, जिनमें विशिष्ट घटनाओं को सहेजने के लिए एक भौतिक दृश्य बनाने की क्षमता भी शामिल है।
featured image - आख़िर प्रोटोन क्या है?
Shawn Gordon HackerNoon profile picture
0-item
1-item

लेखों की यह श्रृंखला मेरे लिए बहुत मज़ेदार रही है क्योंकि मैंने नई तकनीक के बारे में सीखा है और उसकी खोज की है। यह देखना भी मजेदार है कि जब से मैंने इसे पहली बार खोजा है तब से यह क्या पकड़ रहा है। Apache Paimon पर मेरा पिछला लेख अविश्वसनीय रूप से लोकप्रिय था, जिससे मुझे बहुत आश्चर्य हुआ, लेकिन ऐसा लगता है कि इसमें दिलचस्पी रखने वाला मैं अकेला नहीं था। उस लेख के लिए धन्यवाद, मुझे टाइमप्लस द्वारा प्रायोजित ओपन-सोर्स अपाचे 2.0 लाइसेंस प्राप्त प्रोजेक्ट, प्रोटॉन मिला। यह एक SQL डेटाबेस है जो ऐतिहासिक और स्ट्रीमिंग डेटा दोनों को समायोजित करता है। C++ में लिखा गया और ClickHouse द्वारा संचालित, फोकस सरलता और प्रदर्शन पर है। एकल निष्पादन योग्य के साथ, इंस्टॉलेशन सरल है।


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

प्रोटोन सिंहावलोकन

संक्षेप में, हमारे पास एक ClickHouse डेटाबेस है, और टाइमप्लस ने स्ट्रीमिंग सेवाओं के लिए समर्थन जोड़ा है। इससे आपको उस ClickHouse डेटाबेस के साथ एक फ़्लिंक-जैसा क्वेरी इंजन और काफ्का-जैसा स्ट्रीमिंग स्टोरेज मिलना चाहिए। तो, वह कैसा दिखता है?


प्रोटॉन वास्तुकला


बिंदीदार रेखा वह जगह है जहां प्रोटॉन आता है। मैं सुझाव देता हूं कि क्या संभव है इसकी अच्छी समझ पाने के लिए आर्किटेक्चर दस्तावेज़ों को पढ़ें।


डेटा की एक यादृच्छिक स्ट्रीम बनाने और उसे प्रोटॉन के साथ क्वेरी करने के लिए, हम कुछ इस तरह कर सकते हैं:

 -- Create a stream with random data. CREATE RANDOM STREAM devices(device string default 'device'||to_string(rand()%4), temperature float default rand()%1000/10); -- Run the long-running stream query. SELECT device, count(*), min(temperature), max(temperature) FROM devices GROUP BY device; ┌─device──┬─count()─┬─min(temperature)─┬─max(temperature)─┐ │ device0 │ 2256 │ 0 │ 99.6 │ │ device1 │ 2260 │ 0.1 │ 99.7 │ │ device3 │ 2259 │ 0.3 │ 99.9 │ │ device2 │ 2225 │ 0.2 │ 99.8 │ └─────────┴─────────┴──────────────────┴──────────────────┘


प्रोटॉन विशेषताएँ

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

 create materialized view mv_broken_links as select raw:requestedUrl as url,raw:method as method, raw:ipAddress as ip, raw:response.statusCode as statusCode, domain(raw:headers.referrer) as referrer from frontend_events where raw:response.statusCode<>'200';


फिर, यदि आप सीधे भौतिक दृश्य से पूछताछ करना चाहते हैं और डेटा से एक बार चार्ट बनाना चाहते हैं, तो यह इस तरह दिखेगा:

 -- streaming query select * from mv_broken_links; -- historical query select method, count() as cnt, bar(cnt,0,40,5) as bar from table(mv_broken_links) group by method order by cnt desc; ┌─method─┬─cnt─┬─bar─┐ │ GET │ 25 │ ███ │ │ DELETE │ 20 │ ██▌ │ │ HEAD │ 17 │ ██ │ │ POST │ 17 │ ██ │ │ PUT │ 17 │ ██ │ │ PATCH │ 17 │ ██ │ └────────┴─────┴─────┘


इसकी कुछ कार्यक्षमता मुझे अपसॉल्वर की याद दिलाती है, जिस कंपनी में मैंने कुछ साल पहले काम किया था।


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


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

सारांश

हालाँकि इस समय मुझे व्यक्तिगत रूप से इस प्रकार की व्यवस्था की आवश्यकता नहीं है, मैं निश्चित रूप से ऐसी जगहों पर गया हूँ और ऐसी कंपनियाँ देखी हैं जहाँ ऐसा करना बहुत, बहुत अच्छा होगा। इस आदमी जितना अच्छा?

हिम तेंदुए के साथ मंगोल


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


नीचे दिए गए लिंक पर मेरे अन्य व्हाट्स द हेक... लेख देखें: