JupyterLab के लिए SQL इंटरफ़ेस

अधिकांश समय, जिस डेटा पर हम काम करते हैं, वह डेटाबेस नामक फ़ाइलों में संग्रहीत होता है, और किसी डेटा वैज्ञानिक का एक आवश्यक कार्य डेटाबेस से डेटा एक्सेस कर पाना और फिर उसका विश्लेषण करना है। इसलिए SQL डेटाबेस और Jupyter Notebook/Lab के बीच एक सहज इंटरफ़ेस होना उत्कृष्ट विचार है, ताकि डेटा तक पहुँचना और उसे संसाधित करना आसान और अधिक कुशल हो जाए। यह इंटरफ़ेस दो तरीकों से प्राप्त किया जा सकता है:
1. IPython SQL Magic एक्सटेंशन का उपयोग
मैजिक कमांड्स Jupyter Notebooks में सुविधाजनक फ़ंक्शंस का एक सेट हैं, जिन्हें मानक डेटा विश्लेषण में आने वाली कुछ सामान्य समस्याओं को हल करने के लिए डिज़ाइन किया गया है। आप %lsmagic की मदद से सभी उपलब्ध मैजिक देख सकते हैं।
IPython SQL magic एक्सटेंशन कोड सेल्स में सीधे SQL क्वेरी लिखना और उनके परिणामों को सीधे pandas DataFrames में पढ़ना संभव बनाता है (स्रोत)। यह पारंपरिक नोटबुक्स और आधुनिक Jupyter Labs दोनों में काम करता है।
नोटबुक में SQL मॉड्यूल इंस्टॉल करना
!pip install ipython-sql
SQL मॉड्यूल लोड करना
%load_ext sql
ऊपर दिया गया मैजिक कमांड ipython-sql एक्सटेंशन लोड करता है। हम किसी भी डेटाबेस से कनेक्ट कर सकते हैं जो SQLAlchemy द्वारा समर्थित है। यहाँ हम एक SQLite डेटाबेस से कनेक्ट करेंगे। कोड सेल में निम्न कमांड दर्ज करें:
%sql sqlite://
यदि आउटपुट ‘Connected: @None' आता है, तो इसका मतलब है कि कनेक्शन स्थापित हो गया है।
- डेटाबेस बनाना
अंत में, हम EMPLOYEES नाम की एक डेमो टेबल बनाएँगे ताकि फ़ंक्शन को प्रदर्शित किया जा सके।
%%sql
CREATE TABLE EMPLOYEE(firstname varchar(50),lastname varchar(50));
INSERT INTO EMPLOYEE VALUES('Tom','Mitchell');
INSERT INTO EMPLOYEE VALUES('Jack','Ryan');
अब हम अपने डेटाबेस पर क्वेरी चला सकते हैं।
%sql SELECT * from EMPLOYEE;
----------------------------------
* sqlite://
Done.
ऊपर दी गई क्वेरी निम्न तालिका आउटपुट करती है।

- मौजूदा डेटाबेस के साथ काम करना
हम मैजिक फ़ंक्शन का उपयोग करके किसी मौजूदा डेटाबेस से भी कनेक्ट कर सकते हैं। इस ट्यूटोरियल के लिए, हम SQL_SAFI डेटाबेस (Studying African Farmer-led Irrigation (SAFI) database) का उपयोग करेंगे। "SAFI प्रोजेक्ट तंज़ानिया और मोज़ाम्बिक के किसानों द्वारा इस्तेमाल की जाने वाली खेती और सिंचाई विधियों का अध्ययन करने वाला एक शोध प्रोजेक्ट है। यह डेटासेट घरों और कृषि से संबंधित सर्वेक्षण डेटा से बना है" (स्रोत)। आप इसे यहाँ से डाउनलोड कर सकते हैं।
#Specifying the path of the database
%sql sqlite:////Users/Parul/Desktop/SQL_SAFI.sqlite
-----------------------------------------------------------
'Connected: @/Users/Parul/Desktop/SQL_SAFI.sqlite'
उपरोक्त स्टेटमेंट ने Users/Parul/Desktop पथ में स्थित SQL_SAFI.sqlite नामक डेटाबेस खोला। आइए Crops टेबल चुनें और इसकी सामग्री प्रदर्शित करें।
%sql select * from Crops

Crops तालिका की शुरुआती कुछ पंक्तियाँ प्रदर्शित की जा रही हैं
%sql select * from Crops where D_curr_crop = "maize" AND ID <= 3;

परिणाम को pandas डेटा फ़्रेम में भी बदला जा सकता है, इस प्रकार:
result = %sql select * from Crops where D_curr_crop = "maize" AND ID <= 3;
dataframe = result.DataFrame()

dataframe.info()

2. jupyterlab-sql एक्सटेंशन
आगे बढ़ने से पहले, आइए सामान्य रूप से Jupyter एक्सटेंशनों के बारे में थोड़ा बात करें।
JupyterLab एक्सटेंशंस
एक्सटेंशन Jupyter Lab की सबसे उपयोगी विशेषताओं में से एक हैं और Jupyter Lab के अनुभव को बेहतर बना सकते हैं। Jupyter Lab स्वयं मूल रूप से एक एक्स्टेंसिबल वातावरण है, जिसमें नोटबुक, टर्मिनल और एडिटर—all एक्सटेंशन के रूप में मौजूद हैं।
"JupyterLab एक्सटेंशंस npm पैकेज होते हैं (जावास्क्रिप्ट विकास में मानक पैकेज फ़ॉर्मेट)" (स्रोत)। एक्सटेंशंस JupyterLab अनुभव को कस्टमाइज़ और बढ़ाने का तरीका प्रदान करते हैं—जैसे नए थीम, व्यूअर्स, कीबोर्ड शॉर्टकट, उन्नत सेटिंग्स विकल्प इत्यादि। GitHub पर समुदाय द्वारा विकसित कई एक्सटेंशन उपलब्ध हैं। आप एक्सटेंशंस खोजने के लिए GitHub टॉपिक jupyterlab-extension देख सकते हैं।
JupyterLab एक्सटेंशंस इंस्टॉल करने के लिए, आपके पास Node.js इंस्टॉल होना चाहिए, जिसे आप उनकी वेबसाइट से या निम्न प्रकार से इंस्टॉल कर सकते हैं।
conda install -c conda-forge nodejs
or
brew install node #for MacOS users
jupyterlab-sql एक्सटेंशन ऐसा ही एक उपयोगी एक्सटेंशन है जो Jupyter Lab में SQL यूज़र इंटरफ़ेस जोड़ने देता है। इसके दो प्रमुख लाभ हैं:
- SQL तालिकाओं को साधारण प्वाइंट-एंड-क्लिक से एक्सप्लोर किया जा सकता है।
- तालिकाओं को कस्टम क्वेरीज़ के साथ संशोधित और पढ़ा भी जा सकता है।
इसके बारे में अधिक जानने के लिए आधिकारिक Github रिपॉज़िटरी देखें।
इंस्टॉलेशन
jupyterlab-sql इंस्टॉल करने के लिए, निम्न कमांड्स को दिए गए क्रम में चलाएँ:
pip install jupyterlab_sql
jupyter serverextension enable jupyterlab_sql --py --sys-prefix
jupyter lab build
इसके बाद आपको किसी भी चल रहे Jupyter सर्वर को पुनः आरंभ करना होगा।
साथ ही, यह ध्यान देना महत्वपूर्ण है कि jupyterlab-sql केवल Python 3.5 और उससे ऊपर के साथ काम करता है।
शुरुआत करना
Jupyter Lab को पुनः आरंभ करने के बाद, लॉन्चर में एक नया SQL आइकन दिखाई देगा

इसका मतलब है कि सब कुछ सही तरह से इंस्टॉल हो गया है, और आप अपने इंस्टेंस को किसी डेटाबेस से कनेक्ट करने के लिए तैयार हैं।
कनेक्शन
डेटाबेस से कनेक्ट करने के लिए आपके पास एक मान्य डेटाबेस URL होना चाहिए। jupyterlab-sql को SQLite, PostgreSQL और MySQL डेटाबेस के साथ व्यापक रूप से टेस्ट किया गया है (स्रोत)। URLs पर SQLAlchemy गाइड का अनुसरण करें। URL एक डेटाबेस URL होना चाहिए, उदाहरण के लिए:
postgres://localhost:5432/postgres
postgres://username:password@localhost:5432/postgres
mysql://localhost/employees
sqlite://
sqlite:///myfile.db
आइए उस मौजूदा SQL_SAFI डेटाबेस से कनेक्ट करें, जिसका हमने पहले उपयोग किया था। लॉन्चर में SQL आइकन पर क्लिक करें और डेटाबेस URL टाइप करें। कनेक्ट करने के लिए enter दबाएँ।

जैसे ही डेटाबेस कनेक्ट होता है, आप अपने डेटाबेस की सभी तालिकाएँ देख सकते हैं।


इसके बाद, हम तालिकाओं से इच्छित डेटा प्राप्त करने के लिए कस्टम SQL क्वेरी भी लिख सकते हैं।
निष्कर्ष
SQL और JupyterLab को साथ में उपयोग करना डेटा विश्लेषण को अगले स्तर पर ले जाता है। jupyter-sql इंटरफ़ेस SQL Server को Jupyter इकोसिस्टम से जोड़ना और डेटा को सीधे उसमें निकालना बहुत आसान बना देता है—बिना Jupyter इंटरफ़ेस छोड़े।
यदि आप SQL के बारे में और सीखना चाहें, तो DataCamp का Data-Driven Decision Making in SQL कोर्स लें।
हमारा Remote Python and R in SQL ट्यूटोरियल देखें।
Jupyter Notebooks किसी भी डेटा साइंस वर्कफ़्लो का एक अनिवार्य हिस्सा हैं—इतने कि Netflix जैसी कई संस्थाएँ उन्हें अपरिहार्य मानती हैं। ब्राउज़र-आधारित कंप्यूटिंग वातावरण, दोहराने योग्य दस्तावेज़ फ़ॉर्मेट के साथ मिलकर, इन्हें दुनिया भर के लाखों डेटा वैज्ञानिकों और शोधकर्ताओं की मानक पसंद बना देता है। Jupyter के पास लगभग हर देश से आने वाला एक सशक्त अंतरराष्ट्रीय समुदाय है। समुदाय ने स्वयं कई कर्नेल विकसित किए हैं।
Jupyter Lab प्रोजेक्ट Jupyter के लिए अगली पीढ़ी का यूज़र इंटरफ़ेस है, जो क्लासिक Jupyter Notebook के सभी परिचित बिल्डिंग ब्लॉक्स—जैसे नोटबुक, टर्मिनल, टेक्स्ट एडिटर, फ़ाइल ब्राउज़र, समृद्ध आउटपुट आदि—प्रदान करता है। हालांकि, क्लासिक नोटबुक्स के विपरीत, ये सभी सुविधाएँ एक लचीले और शक्तिशाली यूज़र इंटरफ़ेस में उपलब्ध हैं। Jupyter Lab का बुनियादी विचार क्लासिक नोटबुक के सभी बिल्डिंग ब्लॉक्स के साथ कुछ नई चीज़ों को भी एक ही जगह पर लाना है।
JupyterLab अपना वर्क एरिया दिखा रहा है, जिसमें नोटबुक्स, टेक्स्ट फ़ाइलें, टर्मिनल और नोटबुक आउटपुट—all एक-दूसरे के साथ इंटरैक्ट करने में सक्षम हैं।
आइए पहले अपने सिस्टम पर Jupyter Lab को इंस्टॉल और रन कर लेते हैं।
इंस्टॉलेशन
JupyterLab को
conda, pipयाpipenvसे इंस्टॉल किया जा सकता है।अधिक विवरण के लिए आधिकारिक इंस्टॉलेशन दस्तावेज़ देखें।
JupyterLab शुरू करना
आप कंसोल में निम्न लिखकर Jupyter शुरू कर सकते हैं:
JupyterLab ब्राउज़र में अपने आप नीचे दिखाए गए इंटरफ़ेस जैसा खुल जाएगा। इसका मतलब है कि सब कुछ सेट है और आप आगे बढ़ने के लिए तैयार हैं।
मुख्य वर्क एरिया वह जगह है जहाँ वास्तविक गतिविधि होती है। इसमें नोटबुक्स, दस्तावेज़, कंसोल, टर्मिनल आदि शामिल होते हैं। काम शुरू करने के लिए बस किसी फ़ाइल पर डबल-क्लिक करें या उसे इस क्षेत्र में खींचकर छोड़ दें।