जैसा कि आप जानते हैं, आप PostgreSQL एक्सटेंशन का उपयोग करके PostgreSQL कार्यक्षमता बढ़ा सकते हैं। PostgreSQL को एंटरप्राइज़ संस्करण की तरह बनाने और विशिष्ट आवश्यकताओं को पूरा करने के लिए आप विभिन्न एक्सटेंशन का उपयोग कर सकते हैं। इस ब्लॉग में, हम पोस्टग्रेएसक्यूएल में कुछ सबसे लोकप्रिय ओपन सोर्स एक्सटेंशन देखेंगे और इसकी क्षमता का विस्तार करने के लिए इसका उपयोग कैसे किया जा सकता है।
PostgreSQL सबसे उन्नत ओपन सोर्स डेटाबेस है। हर साल, PostgreSQL समुदाय कुछ नई सुविधाओं के साथ एक नया संस्करण जारी करता है लेकिन एक्सटेंशन का उपयोग करके कई सुविधाएं विकसित की जाती हैं जिनका उपयोग किसी विशेष उपयोग के मामले में किया जा सकता है।
इनमें से कुछ एक्सटेंशन एंटरप्राइज़-ग्रेड PostgreSQL वातावरण बनाने के लिए बहुत शक्तिशाली और लोकप्रिय हैं।
Pg_stat_statements
pg_stat_statements मॉड्यूल एक PostgreSQL सर्वर द्वारा निष्पादित सभी SQL कथनों के निष्पादन आँकड़ों को ट्रैक करने के लिए एक साधन प्रदान करता है। जब pg_stat_statements मॉड्यूल लोड होता है, तो यह सर्वर के सभी डेटाबेस के आंकड़ों को ट्रैक करता है। pg_stat_statements मॉड्यूल द्वारा एकत्रित आंकड़े pg_stat_statements नामक दृश्य के माध्यम से उपलब्ध कराए जाते हैं। आप यहां pg_stat_statements फ़ंक्शन और कॉन्फ़िगरेशन पैरामीटर के बारे में अधिक विवरण देख सकते हैं।
पोस्टजीआईएस
PostGIS, PostgreSQL डेटाबेस सिस्टम का एक विस्तार है जो GIS (भौगोलिक सूचना प्रणाली) ऑब्जेक्ट्स को डेटाबेस में संग्रहीत करने की अनुमति देता है। इसमें जीआईएसटी-आधारित आर-ट्री स्थानिक सूचकांकों के लिए समर्थन, और जीआईएस वस्तुओं के विश्लेषण और प्रसंस्करण के लिए कार्य शामिल हैं।
PostGIS का उपयोग PostgreSQL के लिए स्थानिक और भौगोलिक वस्तुओं के लिए किया जाता है। PostGIS PostgreSQL डेटाबेस में प्रकार (ज्यामिति, भूगोल, रेखापुंज आदि) जोड़ता है। PostGIS इन स्थानिक प्रकारों पर लागू होने वाले कार्यों, ऑपरेटरों और सूचकांक संवर्द्धन को भी जोड़ता है। आप यहां स्थापना विधि की जांच कर सकते हैं।
Postgres_fdw
Postgres_fdw मॉड्यूल विदेशी-डेटा रैपर postgres_fdw प्रदान करता है, जिसका उपयोग बाहरी PostgreSQL डेटाबेस सर्वर में संग्रहीत डेटा तक पहुंचने के लिए किया जा सकता है। जब दो PostgreSQL डेटाबेस होते हैं, तो postgres_fdw एक डेटाबेस से दूसरे डेटाबेस की तालिका को संदर्भित करता है। एक बार जब आप FOREIGN TABLE को परिभाषित कर लेते हैं, तो आप स्थानीय डेटाबेस की तरह SELECT, INSERT, UPDATE, DELETE कर सकते हैं।
postgres_fdw मॉड्यूल द्वारा प्रदान की गई कार्यक्षमता पुराने dblink मॉड्यूल की कार्यक्षमता के साथ पर्याप्त रूप से ओवरलैप होती है। लेकिन postgres_fdw मॉड्यूल दूरस्थ तालिकाओं तक पहुँचने के लिए अधिक पारदर्शी और मानकों के अनुरूप वाक्य रचना प्रदान करता है, और यह कई मामलों में बेहतर प्रदर्शन दे सकता है।
विदेशी सारणियों का मुख्य उपयोग यह है कि सिस्टम को डेटा की नकल या नकल किए बिना उपलब्ध कराना है। FDW का उपयोग करके शार्डिंग के सरल कार्यान्वयन भी हैं, क्योंकि FDW के बावजूद अन्य शार्क में डेटा प्रश्नों के लिए उपलब्ध हो सकता है।
Oracle में, आप DBLinks का उपयोग करके दूरस्थ डेटाबेस तालिकाओं से डेटा प्राप्त कर सकते हैं लेकिन DBLinks और FDW के बीच मुख्य अंतर यह है कि FDW स्थानीय रूप से विदेशी तालिका के बारे में मेटा डेटा या तालिका परिभाषा को बनाए रख सकता है।
Mysql_fdw
Mysql_fdw एक PostgreSQL एक्सटेंशन है जो MySQL के लिए एक विदेशी डेटा रैपर (FDW) लागू करता है। Mysql_fdw मॉड्यूल MySQL सर्वर के लिए क्लाइंट के रूप में PostgreSQL सर्वर के उपयोग की सुविधा प्रदान करता है, जिसका अर्थ है कि यह तब क्लाइंट के रूप में MySQL डेटाबेस से डेटा प्राप्त कर सकता है। वर्तमान में, EnterpriseDB इस मॉड्यूल को github पर बनाए रख रहा है।
mysql_fdw का पिछला संस्करण केवल-पढ़ने के लिए समर्थित था, लेकिन नवीनतम संस्करण लिखने की क्षमता प्रदान करता है। उपयोगकर्ता अब mysql_fdw का उपयोग करके विदेशी तालिकाओं के लिए विवरण सम्मिलित, अद्यतन और हटा सकता है। यह MySQL और PostgreSQL डेटा प्रकारों के बीच विपरीत टाइपकास्टिंग प्रदान करने के लिए PostgreSQL प्रकार कास्टिंग तंत्र का उपयोग करता है।
Hstore
पोस्टग्रेएसक्यूएल में एक मान में कुंजी-मूल्य जोड़े को संग्रहीत करने के लिए hstore मॉड्यूल hstore डेटा प्रकार को लागू करता है। कई उपयोग के मामलों में hstore डेटा प्रकार बहुत उपयोगी है, जैसे अर्ध-संरचित डेटा या कई विशेषताओं वाली पंक्तियाँ जिन्हें शायद ही कभी क्वेरी किया जाता है। ध्यान दें कि कुंजियाँ और मान केवल टेक्स्ट स्ट्रिंग हैं।
hstore डेटा प्रकार के साथ काम करने से पहले, आपको hstore एक्सटेंशन बनाना होगा जो contrib मॉड्यूल को आपके PostgreSQL इंस्टेंस में लोड करता है।
पगौडिट
pgAudit एक PostgreSQL ऑडिट एक्सटेंशन है जो मानक PostgreSQL लॉगिंग सुविधा के माध्यम से विस्तृत सत्र और/या ऑब्जेक्ट ऑडिट लॉगिंग प्रदान करता है।
pgAudit मॉड्यूल का मुख्य लक्ष्य PostgreSQL उपयोगकर्ताओं को सरकारी, वित्तीय, या ISO प्रमाणपत्रों का अनुपालन करने के लिए आवश्यक ऑडिट लॉग बनाने की क्षमता प्रदान करना है।
आम तौर पर, एक ऑडिट किसी व्यक्ति या संगठन के खातों का आधिकारिक निरीक्षण होता है, आमतौर पर एक स्वतंत्र निकाय द्वारा। pgAudit मॉड्यूल द्वारा एकत्रित की गई जानकारी को ऑडिट ट्रेल या ऑडिट लॉग कहा जाता है।
pgAudit मॉड्यूल को PostgreSQL 9.5 और इसके बाद के संस्करणों का समर्थन करने के लिए विकसित किया गया था।
पीजीऑडिट मॉड्यूल से सत्र ऑडिट लॉगिंग बैकएंड में एक उपयोगकर्ता द्वारा निष्पादित सभी बयानों के विस्तृत लॉग प्रदान करता है। आप अधिक विवरण, कॉन्फ़िगरेशन और इसे PostgreSQL में कैसे स्थापित और उपयोग करें, यहां देख सकते हैं।
ओराफस
Orafce एक मॉड्यूल है जो Oracle संगत कार्यों, डेटा प्रकारों और पैकेजों को लागू करता है। यह बीएसडी लाइसेंस वाला एक ओपन सोर्स टूल है इसलिए कोई भी इस टूल का उपयोग कर सकता है। यह मॉड्यूल Oracle से PostgreSQL माइग्रेशन कार्य में बहुत उपयोगी है, इसमें PostgreSQL में कई Oracle कार्य कार्यान्वित हैं।
एप्लिकेशन आमतौर पर उन कार्यों का उपयोग कई घटनाओं के साथ करते हैं। आप इस टूल का उपयोग करके SQL की संशोधन लागत को कम कर सकते हैं। आप Oracle से PostgreSQL ब्लॉग पर माइग्रेट करने का तरीका देख सकते हैं।
सभी फ़ंक्शन और पैकेज सही तरीके से लागू किए गए हैं और इसका अच्छी तरह से परीक्षण किया गया है।
कुछ कार्य हैं:
- डीबीएमएस_आउटपुट
- डीबीएमएस_रैंडम
- utl_file - फाइल सिस्टम संबंधित कार्य
- डीबीएमएस_पाइप और डीबीएमएस_अलर्ट
- PLVdate,PLVstr,PLVchr
- Oracle संगत DATE डेटा प्रकार और ADD_MONTHS, LAST_DAY,NEXT_DAY इत्यादि जैसे कार्य।
- एनवीएल समारोह
- SUBSTR और SUBSTRB फ़ंक्शन
- VARCHAR2 और NVARCHAR2 समर्थन
- TO_DATE()
Pg_बल्कलोड
Pg_bulkload मॉड्यूल PostgreSQL उपयोगकर्ताओं को उच्च गति डेटा लोडिंग क्षमता प्रदान करता है। pg_bulkload मॉड्यूल को डेटाबेस में बड़ी मात्रा में डेटा लोड करने के लिए डिज़ाइन किया गया है। आप PostgreSQL साझा बफ़र्स को दरकिनार कर डेटा को तालिका में लोड कर सकते हैं। pg_bulkload मॉड्यूल में कुछ ETL विशेषताएं भी हैं जैसे इनपुट डेटा सत्यापन और फ़िल्टर फ़ंक्शन के साथ डेटा परिवर्तन।
pg_bulkload मॉड्यूल का मूल लक्ष्य PostgreSQL में COPY कमांड का एक तेज़ विकल्प था।
Pg_bulkload मॉड्यूल एनटीटी ओएसएस केंद्र द्वारा विकसित और अनुरक्षित है।
महत्वपूर्ण नोट:PostgreSQL में स्ट्रीमिंग प्रतिकृति वातावरण के तहत, pg_bulkload मॉड्यूल ठीक से काम नहीं करता है। अधिक विवरण के लिए यहां देखें।
Pgstattuple
Pgstattuple मॉड्यूल PostgresQL में टपल-स्तरीय आँकड़े प्राप्त करने के लिए विभिन्न कार्य प्रदान करता है। pgstattuple मॉड्यूल में फ़ंक्शन एक संबंध की भौतिक लंबाई, "मृत" टुपल्स का प्रतिशत, और अन्य जानकारी देता है। यह उपयोगकर्ताओं के लिए यह निर्धारित करने में सहायक हो सकता है कि वैक्यूम आवश्यक है या नहीं। फ़ंक्शन का तर्क लक्ष्य संबंध का नाम (वैकल्पिक रूप से स्कीमा-योग्य) या OID है।
Pg_trgm
pg_trgm एक PostgreSQL एक्सटेंशन है जो PostgreSQL में सरल फ़ज़ी स्ट्रिंग मिलान प्रदान करता है। इसका परिचालन और वैचारिक ओवरहेड PostgreSQL पूर्ण-पाठ खोज या एक अलग खोज इंजन की तुलना में बहुत कम है।
एक ट्रिग्राम या ट्रिग्राफ एक स्ट्रिंग से लिए गए लगातार तीन वर्णों का समूह है। आप दो तारों की समानता को उनके द्वारा साझा किए जाने वाले ट्रिगर की संख्या की गणना करके माप सकते हैं। कई प्राकृतिक भाषाओं में शब्दों की समानता को मापने के लिए ट्रिग्राम का यह सरल विचार बहुत प्रभावी साबित होता है।
सामान्य तौर पर, pg_trgm मॉड्यूल तब मदद कर सकता है जब:
- आपको PostgreSQL में फ़ज़ी केस-असंवेदनशील स्ट्रिंग मिलान की आवश्यकता है।
- आप PostgreSQL में LIKE, ILIKE, ~ या ~* को गति देना चाहते हैं।
- आप ऐसे पैटर्न खोजना चाहते हैं जो बाएं-एंकर नहीं हैं (उदा. %john%)। ऐसे पैटर्न PostgreSQL में B-tree अनुक्रमणिका द्वारा समर्थित नहीं हैं।
मॉड्यूल/एक्सटेंशन की उपरोक्त सूची PostgreSQL क्षमता का विस्तार करने के लिए बहुत उपयोगी है। कुछ और एक्सटेंशन हैं जो ब्लॉग में शामिल नहीं हैं लेकिन PostgreSQL कार्यक्षमता का विस्तार करने के लिए यह बहुत उपयोगी है। ये इस प्रकार हैं।
- भाषा एक्सटेंशन:PL/Python, PL/Perl, PL/R, PL/v8, PL/sh आदि।
- Cstore_fdw
- Mongo_fdw
- हाइपोपीजी
- Tds_fdw
- प्लप्रोफाइलर
निष्कर्ष
PostgreSQL समुदाय समर्थित एक्सटेंशन और कुछ तृतीय पक्ष एक्सटेंशन में कई एक्सटेंशन हैं, सभी का उपयोग किसी विशेष उपयोग के मामले के लिए किया जाता है। आप उन मॉड्यूल का उपयोग करके PostgreSQL क्षमता या कार्यक्षमता का विस्तार कर सकते हैं।