GraphQL एक बड़ी बात है: यह डेटाबेस क्वेरी के लिए उद्योग मानक क्यों नहीं है?

क्या आप ट्रांसफॉर्म 2022 में शामिल नहीं हो पाए थे? हमारी ऑन-डिमांड लाइब्रेरी में अभी सभी शिखर सम्मेलन देखें! यहां देखें.


कंपनियों के लिए अपने डेटा के साथ बातचीत करने के लिए ग्राफक्यूएल तेजी से एक क्वेरी भाषा बन रहा है। हालांकि डेटा प्रबंधन कई कंपनियों के लिए शीर्ष चिंताओं में से एक है, लेकिन बहुत से लोग वास्तव में समझ नहीं पाते हैं ग्राफक्यूएल क्या करता है या यह इतना लोकप्रिय क्यों है।

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

हालाँकि कई तकनीकी नेताओं ने GraphQL के बारे में सुना होगा, उन्होंने शायद SQL (स्ट्रक्चर्ड क्वेरी लैंग्वेज) के बारे में बहुत कुछ सुना होगा। SQL अनिवार्य रूप से डेटाबेस क्वेरी के लिए उद्योग मानक है, हालाँकि GraphQL लोकप्रियता में बढ़ रहा है।

ग्राफ़क्यूएल एसक्यूएल की तुलना कैसे करता है, और क्या क्वेरी करते समय दोनों के लाभ प्राप्त करने का कोई तरीका है?

ग्राफक्यूएल बनाम एसक्यूएल: व्यापक दृश्य

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

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

SQL डेटाबेस के लिए एक क्वेरी भाषा के रूप में बेहद लोकप्रिय है। दुर्भाग्य से, यह विषम डेटा में नेस्टेड प्रश्नों के लिए उसी तरह काम नहीं करता है जिस तरह से GraphQL करता है। साथ ही SQL का सिंटैक्स जटिल हो सकता है। अंत में, SQL का कभी भी सार्वभौमिक होने का इरादा नहीं था। SQL विभिन्न डेटाबेस के लिए बहुत अच्छा काम करता है, लेकिन API के लिए इतना अच्छा नहीं है।

कार्रवाई में GraphQL बनाम SQL

मान लें कि आप अपनी कंपनी की इन्वेंट्री को फिर से स्टॉक करने के लिए काम कर रहे हैं और आपको दो अलग-अलग कंपनियों से दो अलग-अलग ऑर्डर शिपिंग के लिए ट्रैकिंग नंबर और अपेक्षित डिलीवरी तिथि जानने की आवश्यकता है। GraphQL एक अनुरोध में वह सारी जानकारी प्राप्त करने में सक्षम होगा।

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

SQL के लिए, आपको दो अलग-अलग ऑर्डर पर सामान्य जानकारी के लिए अपने डेटाबेस से एक अनुरोध करने की आवश्यकता हो सकती है। फिर आपको शिपिंग कंपनियों के नाम खोजने के लिए उस जानकारी के माध्यम से सॉर्ट करने की आवश्यकता हो सकती है, इसके बाद ट्रैकिंग नंबरों के लिए प्रत्येक शिपिंग कंपनी से एक और अनुरोध किया जा सकता है। अंत में, ट्रैकिंग नंबर के आधार पर, आप अपेक्षित डिलीवरी तिथियां प्राप्त करने के लिए एक और अनुरोध कर सकते हैं। वह सारी जानकारी प्राप्त करने के लिए बहुत सारे कोड की आवश्यकता होगी, और सिंटैक्स को ठीक से प्राप्त करना आसान नहीं हो सकता है। मैं व्यक्तिगत रूप से दशकों से SQL डेटाबेस के साथ काम कर रहा हूं, और यहां तक ​​​​कि मुझे अक्सर जटिल प्रश्नों के लिए सिंटैक्स देखना पड़ता है।

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

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

इसके विपरीत, SQL शुरू से ही अधिक अभिव्यंजक है, जिसका अर्थ है कि यह सिस्टम को यह बताना आसान बनाता है कि आप बहुत अधिक अतिरिक्त कॉन्फ़िगरेशन के बिना क्या चाहते हैं। कोड की एक पंक्ति का उपयोग करके कोई भी आसानी से किसी भी डेटाबेस से पूछ सकता है “ग्राहक जॉन डो के लिए, मुझे ऑर्डर दें जिनकी राशि $ 100 से अधिक है”। डेटाबेस संरचना की परवाह किए बिना SQL आपको वह देगा जो आपको चाहिए।

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

क्या विभाजन को पाटने का कोई तरीका है?

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

वैसे, सबकुछ नष्ट नहीं हुआ है। हमें विश्वास है कि ग्राफ़क्यूएल समय के साथ और अधिक अभिव्यंजक हो जाएगा। ग्राफक्यूएल को और अधिक अभिव्यंजक बनाने के प्रस्ताव हैं। ये अंततः मानक बन सकते हैं। लेकिन मूल रूप से, SQL और GraphQL के अलग-अलग विश्व विचार हैं, क्रमशः: समान बैकएंड बनाम विविध बैकएंड, टेबल बनाम पदानुक्रमित डेटा, और यूनिवर्सल क्वेरीिंग बनाम सीमित क्वेरीिंग। नतीजतन, वे विभिन्न उद्देश्यों की पूर्ति करते हैं।

ग्राफक्यूएल, एपीआई क्वेरी भाषा के रूप में अपनी लोकप्रियता के बावजूद, डेटाबेस एक्सेस के लिए प्राथमिक भाषा के रूप में एसक्यूएल को हटाने वाला नहीं है।

अनंत झिंगराना के सीईओ और को-फाउंडर हैं स्टेपज़ेन.

डेटा निर्णय निर्माता

वेंचरबीट समुदाय में आपका स्वागत है!

DataDecisionMakers वह जगह है जहां विशेषज्ञ, डेटा कार्य करने वाले तकनीकी लोगों सहित, डेटा से संबंधित अंतर्दृष्टि और नवाचार साझा कर सकते हैं।

यदि आप अत्याधुनिक विचारों और अप-टू-डेट जानकारी, सर्वोत्तम प्रथाओं और डेटा और डेटा तकनीक के भविष्य के बारे में पढ़ना चाहते हैं, तो DataDecisionMakers में हमसे जुड़ें।

आप भी विचार कर सकते हैं एक लेख का योगदान अपना स्वयं का!

DataDecisionMakers से और पढ़ें

amar-bangla-patrika

Get Our App On Your Phone!

X