हमने जेईटी बीआई से क्या बनाया। गीत के पाचन के बिना आर्किटेक्चर बिजनेस इंटेलिजेंस सिस्टम



एक में पिछले पोस्ट, मैं बीआई प्रणालियों के विकास और हम कैसे को समझने के लिए है कि यह मौजूदा के लिए अनुकूल करने के लिए की तुलना में अपने खुद के मंच बनाने के बेहतर है आया था के बारे में बात की थी।

आज, जैसा कि वादा किया गया है, मैं अपने नए प्लेटफॉर्म की वास्तुकला के बारे में बात कर रहा हूं, जो मुझे आशा है कि किसी भी बीआई-सिस्टम के निर्माण के लिए एक अच्छा समाधान होगा।

कार्यात्मक वास्तुकला


प्रणाली में, दो मुख्य "कोर" को कार्यात्मक रूप से प्रतिष्ठित किया जा सकता है।

विज़ुअलाइज़ेशन और बीआई का मूल ( टीम और मैं इसे "पाठक" कहते हैं) यह इस तथ्य में लगा हुआ है कि यह डेटा को फ़िल्टर करता है, तथ्यों की गणना करता है और माप, गणना और कैश एग्रीगेट्स आदि। सामान्य तौर पर - सबसे साधारण OLAP। इन-मेमोरी कंप्यूटिंग का समर्थन भी उपलब्ध है। ईटीएल इंजन द्वारा हमारे द्वारा विकसित एक अलग स्थान पर कब्जा कर लिया गया है, दोनों मानक लोडिंग विधियों (उदाहरण के लिए, SQL, MongoDB क्वेरी, Excel फ़ाइलों से उतराई, आदि) का समर्थन करते हुए, और JS स्क्रिप्ट का उपयोग करके कहीं से भी कुछ भी लोड कर रहा है। बिल्कुल कैसे? तथ्य यह है कि हम एक विशेष एपीआई के साथ जेएस लोडर को "बाध्य" करते हैं, जिसका उद्देश्य विभिन्न स्रोतों के लिए प्रश्नों की मांग के साथ-साथ आसानी से सीखने के तरीकों का एक सेट प्रदान करना है, साथ ही साथ डेटा परिवर्तन (उदाहरण के लिए, स्थानांतरित करना, जुड़ना, गणना किए गए कॉलम जोड़ना, विभिन्न प्रकार) गणितीय और सांख्यिकीय कार्य)। जावास्क्रिप्ट

भाषा

? क्या तुम पागल हो?

शायद ...

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

व्यापार तर्क का मूल।यह बल्कि एक ढांचा है जो सॉफ्टवेयर आर्किटेक्चर को समेकित करता है और कई सार्वभौमिक एपीआई प्रदान करता है जिसके साथ आप सिस्टम में अतिरिक्त लागू सूचना-विश्लेषणात्मक घटकों को जोड़ सकते हैं।

हमारे पास पहले से ही, हम नोट कर सकते हैं:

  • डेटा एंट्री फॉर्म के लिए कंस्ट्रक्टर और हैंडलर
  • क्या-अगर मॉडलिंग और विश्लेषण का माहौल
  • आदेश प्रबंधन प्रणाली
  • इलेक्ट्रॉनिक दस्तावेज़ रिपोजिटरी
  • परियोजना और परियोजना प्रबंधन मॉड्यूल

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

तकनीकी वास्तुकला


अनुप्रयोग बैकएंड Node.JS के तहत चलता है, कई महत्वपूर्ण (प्रदर्शन के मामले में) देशी घटकों को प्रतिच्छेद करता है। किसी भी नोड.जेएस एप्लिकेशन की तरह, सिस्टम को एनओडी आवश्यकताओं को पूरा करने वाले किसी भी वातावरण में क्लस्टर, कंटेनरीकृत और तैनात किया जा सकता है।

मेटाडेटा को स्टोर करने के लिए, आप सबसे लोकप्रिय रिलेशनल DBMS का उपयोग कर सकते हैं, हम अक्सर PostgreSQL पर तैनात होते हैं। डेटाबेस रिपोर्ट, नियंत्रण पैनल, ईटीएल प्रक्रिया, अतिरिक्त मॉड्यूल आदि के बारे में सभी मेटा-जानकारी संग्रहीत करता है। सिस्टम को तीसरे पक्ष के डेटा भंडारण को भरने के लिए एक उपकरण के रूप में भी इस्तेमाल किया जा सकता है। छोटी मात्रा में डेटा के लिए, आप एलओएपी मोड में विज़ुअलाइज़ेशन को व्यवस्थित कर सकते हैं, अर्थात सीधे स्रोत प्रणालियों से। QlikView के "साहचर्य मॉडल" की तरह कुछ भी मौजूद है। यदि आप विज़ुअलाइज़र के लिए डेटा स्रोत के रूप में दो या अधिक डेटा सेट का चयन करते हैं, तो उन्हें कॉलम के नामों के अनुसार एक एकल सेट में जोड़ दिया जाएगा।

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

अक्सर (लगभग 80% मामलों में) हम रेडी-मेड ओपन-सोर्स मॉड्यूल लेते हैं और अपने स्वयं के आविष्कार नहीं करते हैं (बैकएंड में थोड़ा कम अक्सर)। यह विकास और समर्थन की लागत को सरल और कम करता है, लेकिन लचीलापन कम करता है। मिसकल्चुलेशन थे, जिसके बाद कुछ पुस्तकालयों को अंततः अपने दम पर फिर से लिखना पड़ा।

निष्कर्ष


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

अल्बर्ट नूरुद्दीनोव, वास्तुकार, जेट इन्फोसिस्टम्स

All Articles