PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL समुदाय को नेविगेट करने के लिए युक्तियाँ और तरकीबें

यह ब्लॉग PostgreSQL समुदाय के बारे में है कि यह कैसे काम करता है और इसे कैसे नेविगेट किया जाए। ध्यान दें कि यह केवल एक सिंहावलोकन है ... बहुत सारे मौजूदा दस्तावेज हैं।

समुदाय का अवलोकन, विकास कैसे कार्य करता है

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

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

योगदान करने वाले व्यक्ति इंटरनेट रिले चैट (irc://irc.freenode.net/PostgreSQL) और PostgreSQL समुदाय मेलिंग सूचियों (https://www.PostgreSQL.org/community/lists) जैसे सहयोग टूल का उपयोग करके समन्वय करते हैं। यदि आप आईआरसी या मेलिंग सूचियों में नए हैं, तो विशेष रूप से शिष्टाचार और प्रोटोकॉल पर पढ़ने का प्रयास करें (एक अच्छा लेख https://fedoramagazine.org/beginners-guide-irc/ पर दिखाई देता है), और आपके शामिल होने के बाद, खर्च करें कुछ समय केवल चल रही बातचीत को सुनें और अपने स्वयं के मुद्दों के साथ कूदने से पहले पिछले समान प्रश्नों के लिए संग्रह खोजें।

ध्यान दें कि टीम स्थिर नहीं है:कोई भी, योगदान देकर, योगदानकर्ता बन सकता है ... लेकिन आपके योगदान से उन्हीं उच्च मानकों को पूरा करने की उम्मीद की जाएगी!

टीम एक विकी पेज (https://wiki.postgresql.org/) का रखरखाव करती है, जो लेख, ट्यूटोरियल, कोड स्निपेट और अधिक जैसी बहुत विस्तृत और उपयोगी जानकारी के बीच, PostgreSQL बग और फीचर अनुरोधों की TODO सूची प्रस्तुत करती है और अन्य क्षेत्र जहां प्रयास की आवश्यकता हो सकती है। यदि आप टीम का हिस्सा बनना चाहते हैं, तो ब्राउज़ करने के लिए यह एक अच्छी जगह है। डेवलपर मेलिंग सूची पर गहन चर्चा के बाद ही आइटम जोड़े जाते हैं।

समुदाय एक प्रक्रिया का अनुसरण करता है, जिसे चित्र 1 में चरणों के रूप में देखा गया है।

चित्र 1. PostgreSQL विकास प्रक्रिया की संकल्पनात्मक रूपरेखा।

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

PostgreSQL स्रोत कोड को Git संस्करण नियंत्रण प्रणाली का उपयोग करके संग्रहीत और प्रबंधित किया जाता है, इसलिए कार्यान्वयन शुरू करने के लिए https://git.postgresql.org/ से एक स्थानीय प्रति की जाँच की जा सकती है। ध्यान दें कि टिकाऊ रखरखाव के लिए, पैच को आसपास के कोड के साथ मिश्रित होना चाहिए और स्थापित कोडिंग सम्मेलनों (http://developer.postgresql.org/pgdocs/postgres/source.html) का पालन करना चाहिए, इसलिए किसी भी समान कोड का अध्ययन करना एक अच्छा विचार है। सम्मेलनों को सीखने और उनका अनुकरण करने के लिए अनुभाग। आम तौर पर, मानक प्रारूप बीएसडी शैली का उपयोग किया जाता है। साथ ही, दस्तावेज़ को उपयुक्त के रूप में अपडेट करना सुनिश्चित करें।

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

जब आपके स्थानीय रिपॉजिटरी में नई कार्यक्षमता का कार्यान्वयन पूरा हो जाए, तो पैच बनाने के लिए Git diff कार्यक्षमता का उपयोग करें। समीक्षा और टिप्पणियों के लिए pgsql-hackers मेलिंग सूची में ईमेल के माध्यम से पैच सबमिट किए जाते हैं, लेकिन आपको अपना काम पूरा होने तक प्रतीक्षा करने की आवश्यकता नहीं है … विकी पेज प्रारूप और सहायक व्याख्यात्मक संदर्भ के रूप में अपेक्षाओं का वर्णन करता है और कोड समीक्षक के समय के लिए सम्मान कैसे दिखाना है।

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

आज श्वेतपत्र डाउनलोड करें क्लस्टरकंट्रोल के साथ पोस्टग्रेएसक्यूएल प्रबंधन और स्वचालन इस बारे में जानें कि पोस्टग्रेएसक्यूएल को तैनात करने, मॉनिटर करने, प्रबंधित करने और स्केल करने के लिए आपको क्या जानना चाहिए। श्वेतपत्र डाउनलोड करें

सूचना प्राप्त करने या PostgreSQL सीखने के लिए शीर्ष वेबसाइट

सामुदायिक वेबसाइट - यह PostgreSQL के साथ जीवन में मुख्य लॉन्चिंग स्थान है https://www.postgresql.org/
विकी - PostgreSQL से संबंधित व्यापक विषय https://wiki.postgresql.org/
IRC चैनल - डेवलपर यहां सक्रिय भागीदार हैं irc://irc.freenode.net/PostgreSQL
सोर्स कोड रिपॉजिटरी https://git.postgresql.org/
pgAdmin GUI क्लाइंट https://www.pgadmin.org/
समुदाय के महत्वपूर्ण सदस्यों की जीवनी https://www.postgresql.org/community/contributors/
स्मार्ट प्रश्नों पर एरिक रेमंड की प्रसिद्ध पोस्ट http://www.catb.org/esr/faqs/smart-questions.html
डेटाबेस स्कीमा परिवर्तन नियंत्रण http://sqitch.org/
डेटाबेस इकाई परीक्षण http://pgtap.org/

कुछ ऐसे टूल जिनके बिना आप नहीं रह सकते

PostgreSQL डेटाबेस के साथ काम करने के लिए मूलभूत कमांड लाइन उपकरण सामान्य वितरण का हिस्सा हैं। वर्कहॉर्स psql कमांड लाइन यूटिलिटी है, जो डेटाबेस मेटाडेटा को क्वेरी करने, प्रदर्शित करने और संशोधित करने के साथ-साथ डेटा डेफिनिशन (DDL) और डेटा मैनिपुलेशन (DML) स्टेटमेंट को निष्पादित करने के लिए बहुत सारी कार्यक्षमता के साथ एक इंटरेक्टिव इंटरफ़ेस प्रदान करता है।

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

pgAdmin एक बहुत लोकप्रिय ग्राफिकल यूजर इंटरफेस टूल है जो psql कमांड लाइन उपयोगिता के समान कार्यक्षमता प्रदान करता है, लेकिन पॉइंट-एंड-क्लिक सुविधा के साथ। चित्र 2 pgAdmin III का स्क्रीनशॉट दिखाता है। बाईं ओर एक पैनल है जो संलग्न-से होस्ट सर्वर पर क्लस्टर में सभी डेटाबेस ऑब्जेक्ट दिखा रहा है। आप सभी डेटाबेस, स्कीमा, तालिकाओं, विचारों, कार्यों, आदि को सूचीबद्ध करने के लिए संरचना में नीचे ड्रिल कर सकते हैं, और यहां तक ​​​​कि निहित डेटा की जांच करने के लिए खुली तालिकाओं और विचारों को भी खोल सकते हैं। प्रत्येक ऑब्जेक्ट के लिए, टूल ऑब्जेक्ट को छोड़ने और फिर से बनाने के लिए SQL DML भी बनाएगा, जैसा कि निचले दाएं पैनल पर दिखाया गया है। डेटाबेस विकास के दौरान संशोधन करने का यह एक सुविधाजनक तरीका है।

चित्र 2. pgAdmin III उपयोगिता।

एप्लिकेशन डेवलपर टीमों के लिए मेरे कुछ पसंदीदा उपकरण हैं Sqitch (http://sqitch.org/), डेटाबेस परिवर्तन नियंत्रण के लिए, और pgTAP (http://pgtap.org/)। Sqitch न केवल PostgreSQL, बल्कि आपके कार्यान्वयन के लिए SQL बोली में लिखी गई स्क्रिप्ट के माध्यम से स्टैंड-अलोन परिवर्तन प्रबंधन और पुनरावृत्त विकास को सक्षम बनाता है। प्रत्येक डेटाबेस डिज़ाइन परिवर्तन के लिए, आप तीन स्क्रिप्ट लिखते हैं:एक परिवर्तन को परिनियोजित करने के लिए, एक परिवर्तन को पूर्ववत करने के लिए यदि पिछले संस्करण में वापस जाना आवश्यक है, और एक परिवर्तन को सत्यापित या परीक्षण करने के लिए। लिपियों और संबंधित फाइलों को आपके आवेदन कोड के ठीक साथ आपके संशोधन नियंत्रण प्रणाली में रखा जा सकता है। PgTAP एक परीक्षण ढांचा है जिसमें डेटाबेस की अखंडता को सत्यापित करने के लिए कार्यक्षमता का एक सूट शामिल है। सभी pgTAP स्क्रिप्ट समान रूप से प्लेन टेक्स्ट फ़ाइलें हैं जो सामान्य संशोधन प्रबंधन और परिवर्तन नियंत्रण प्रक्रियाओं के अनुरूप हैं। एक बार जब मैंने इन दो उपकरणों का उपयोग करना शुरू कर दिया, तो मेरे लिए यह कल्पना करना कठिन था कि मैं डेटाबेस के बिना फिर कभी काम कर सकता हूँ।

टिप्स और ट्रिक्स

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

PostgreSQL का उपयोग करने से संबंधित एक प्रश्न पोस्ट करते समय, आप आम तौर पर हमेशा पृष्ठभूमि की जानकारी शामिल करना चाहते हैं जिसमें आपके द्वारा उपयोग किए जा रहे PostgreSQL के संस्करण ("psql --version" के साथ psql कमांड लाइन टूल द्वारा सूचीबद्ध), ऑपरेटिंग सिस्टम जिस पर सर्वर है चल रहा है, और फिर शायद ऑपरेटिंग वातावरण का विवरण, जैसे कि यह मुख्य रूप से भारी पढ़ा जा सकता है या भारी लिखा जा सकता है, उपयोगकर्ताओं की विशिष्ट संख्या और समवर्ती चिंताएं, आपके द्वारा डिफ़ॉल्ट सर्वर कॉन्फ़िगरेशन से किए गए परिवर्तन (यानी, pg_hba.conf और postgresql.conf फ़ाइलें), आदि। अक्सर, आप जो हासिल करने की कोशिश कर रहे हैं उसका विवरण मूल्यवान है, न कि कुछ गूढ़ सादृश्य, क्योंकि आपको सुधार के लिए ऐसे सुझाव मिल सकते हैं जिनके बारे में आपने खुद सोचा भी नहीं था। साथ ही, यदि आप वास्तविक डीडीएल, डीएमएल, और नमूना डेटा शामिल करते हैं जो समस्या का वर्णन करते हैं और जो आप देख रहे हैं उसे फिर से बनाने के लिए दूसरों को सुविधा प्रदान करते हैं तो आपको सबसे अच्छी प्रतिक्रिया मिलेगी - हां, लोग वास्तव में आपका नमूना कोड चलाएंगे और आपके साथ काम करेंगे।

इसके अतिरिक्त, यदि आप क्वेरी प्रदर्शन में सुधार के बारे में पूछ रहे हैं, तो आप क्वेरी योजना, यानी EXPLAIN आउटपुट प्रदान करना चाहेंगे। यह आपकी क्वेरी को "EXPLAIN" शब्द के साथ शाब्दिक रूप से उपसर्ग करने के अलावा बिना किसी बदलाव के चलाकर उत्पन्न होता है, जैसा कि pgAdmin टूल या psql कमांड लाइन उपयोगिता में चित्र 3 में दिखाया गया है।

चित्र 3. EXPLAIN के साथ एक क्वेरी योजना तैयार करना।

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

अंत में, मेलिंग सूची चर्चाओं में भाग लेते समय आपको दो महत्वपूर्ण बातों का ध्यान रखना चाहिए।

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

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

यह लेख आपको शुरू करता है, अब आगे बढ़ें, और इसमें गोता लगाएँ!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. AES-256-CBC से pgcrypto का उपयोग करके डिक्रिप्ट नहीं किया जा सकता लेकिन AES-128-CBC ठीक है

  2. मैं postgresql के लिए HikariCP को कैसे कॉन्फ़िगर करूं?

  3. एकाधिक आईपी पतों के लिए postgresql postgresql.conf सुनो_एड्रेस को कैसे कॉन्फ़िगर करें

  4. Django:पुनर्स्थापित करने के बाद डेटाबेस तक पहुंचने का प्रयास करते समय अनुमति अस्वीकार कर दी गई (माइग्रेशन)

  5. प्राथमिक कुंजी उल्लंघन त्रुटि के बाद लेनदेन जारी रखना