आपके SQL सर्वर इंस्टेंस में बैकएंड प्रक्रियाओं को स्वचालित करना एक सामान्य कार्य है। चाहे वह आँकड़ों को ताज़ा करना हो, अनुक्रमणिका का पुनर्निर्माण करना हो, डेटा पढ़ना हो या हटाना हो, अपने RDBMS के साथ अन्य प्रोग्रामिंग फ्रेमवर्क को एकीकृत करना अत्यंत मूल्यवान है। यह लेख विशेष रूप से पायथन के साथ एकीकृत इस प्रकार के कार्यों पर विचार करेगा।
हम ऐसे मूलभूत प्रश्नों पर ध्यान केंद्रित नहीं करेंगे जैसे कि SQL और Python क्या है, या हम उनका उपयोग कैसे और कहाँ करते हैं। इसके बजाय, हम उन विशिष्ट मामलों की जांच करने जा रहे हैं जिनके लिए SQL और पायथन के संयोजन की आवश्यकता होती है, और ऐसा करने के लिए उपलब्ध विभिन्न विधि मॉड्यूल।
SQL सर्वर कनेक्शन स्ट्रिंग
इससे पहले कि हम SQL सर्वर से पायथन कनेक्ट के मामले का पता लगाना शुरू करें, आइए हम मूल बातों से परिचित हों।
एक कनेक्शन स्ट्रिंग डेटा के आवश्यक टुकड़ों का प्रतिनिधित्व करती है जो आपके डेटाबेस इंस्टेंस को इंगित और प्रमाणित करती है। प्रत्येक डेटाबेस इंस्टेंस प्रकार के लिए थोड़ी बारीकियां हो सकती हैं, लेकिन सामान्य तौर पर, आवश्यक जानकारी सर्वर का नाम, डेटाबेस ड्राइवर, उपयोगकर्ता नाम, पासवर्ड और पोर्ट नंबर होगी।
SQL सर्वर इंस्टेंस विवरण
इस कनेक्शन स्ट्रिंग का विवरण वही होगा जब आप SSMS के माध्यम से डेटाबेस इंस्टेंस से कनेक्ट करते हैं। डेटाबेस इंस्टेंस पर ध्यान दें {SERVER}\{INSTANCE} प्रारूप - यहाँ यह है DESKTOP-6L1B155\FogelDev . यदि आपके पास केवल एक डिफ़ॉल्ट इंस्टेंस चल रहा है, तो सर्वर नाम से कनेक्ट करना भी संभव है।
SQL सर्वर डेटाबेस और टेबल reation ode
सबसे पहले, हमें पायथन और SQL सर्वर के साथ काम करने के लिए आवश्यक तालिका संरचना वाले डेटाबेस की आवश्यकता है। निम्न स्क्रिप्ट ऐसा डेटाबेस और उसमें एक एकल तालिका बनाएगी। यह तालिका हमारे लिए यह देखने के लिए प्रदर्शन क्षेत्र के रूप में काम करेगी कि SQL और पायथन को एक साथ कैसे उपयोग किया जाए।
CREATE DATABASE CODESIGHT_DEMOS;
USE CODESIGHT_DEMOS;
CREATE TABLE POSTS
(
ID INT IDENTITY(1,1) PRIMARY KEY,
NAME VARCHAR(200),
Author VARCHAR(100),
URL VARCHAR(100),
DATE DATE
)
INSERT INTO POSTS
VALUES('Properly Dealing with Encryption of Databases in an AlwaysOn Availability Group Scenario','Alejandro Cobar','https://codingsight.com/encryption-of-databases-in-alwayson-availability-group-scenario/','4/23/2021')
INSERT INTO POSTS
VALUES('An Overview of DataFrames in Python','Aveek Das','https://codingsight.com/an-overview-of-dataframes-in-python/','4/23/2021')
INSERT INTO POSTS
VALUES('SQL Server Business Intelligence (BI) – Traditional Tools and Technologies','Haroon Ashraf','https://codingsight.com/sql-server-business-intelligence-bi-tools-and-technologies/','4/19/2021')
पायथन मॉड्यूल
हमारा लक्ष्य अब यह परिभाषित करना है कि पायथन को SQL सर्वर इंस्टेंस से कैसे जोड़ा जाए। इस कार्य को करने के लिए कई पायथन मॉड्यूल उपलब्ध हैं, और उनमें से दो प्राथमिक हैं। हम PYODC . से निपटने जा रहे हैं और SQLAlchemy . ये मॉड्यूल संचालन के कनेक्शन भाग को संभालते हैं।
SQL सर्वर टेबल से डेटा को मेमोरी में पढ़ने के लिए एक अतिरिक्त कोड की आवश्यकता होती है। यहीं पर पंडों पुस्तकालय आता है।
पांडा SQLALchemy . के साथ निकटता से एकीकृत किया जा सकता है डेटा को सीधे DataFrame . में पढ़ने के लिए ऑब्जेक्ट्स (मेमोरी एरे-आधारित स्टोरेज में जो बिजली की गति से काम कर सकता है और डेटाबेस टेबल की तरह दिखता है)।
आइए कुछ कनेक्शन स्ट्रिंग्स उदाहरण देखें।
पहला उदाहरण पिछले स्क्रीनशॉट से SQL सर्वर और उदाहरण का उपयोग करता है। कनेक्शन को तत्काल करने के लिए आप इन चरों को अपने विशिष्ट विवरण में सेट कर सकते हैं।
यह भी ध्यान दें कि यह विशेष कनेक्शन विंडोज प्रमाणीकरण का उपयोग करता है। इसलिए, यह मेरी विंडोज मशीन से उपयोगकर्ता के रूप में प्रमाणित करने का प्रयास करेगा जिसमें मैं लॉग इन हूं। यदि कोई उपयोगकर्ता नाम और पासवर्ड निर्दिष्ट नहीं है, तो यह कनेक्शन स्ट्रिंग में डिफ़ॉल्ट व्यवहार है।
- सर्वरनाम ='डेस्कटॉप-6एल1बी155'
- इंस्टेंसनाम ='फोगेलदेव'
- डेटाबेसनाम ='CODESIGHT_DEMOS'
- पोर्टनंबर ='1433'
print("mssql+pyodbc://@{SERVER}:{PORT}\\{INSTANCE}/{DATABASE}?driver=SQL+Server+Native+Client+11.0".format(SERVER = Servername, INSTANCE = Instancename,DATABASE = Databasename,PORT = Portnumber))
MSSQLengine = sqlalchemy.create_engine("mssql+pyodbc://@{SERVER}\\{INSTANCE}:{PORT}/{DATABASE}?driver=SQL+Server+Native+Client+11.0".format(SERVER = Servername, INSTANCE = Instancename,DATABASE = Databasename,PORT = Portnumber))
पंडों के साथ एक क्वेरी निष्पादित करके हम परीक्षण कर सकते हैं कि यह कनेक्शन सही ढंग से काम करता है या नहीं। इसे read_sql_query . का उपयोग करके कनेक्शन स्ट्रिंग से एक क्वेरी को पढ़ना होगा आदेश।
df = pd.read_sql_query("SELECT * FROM POSTS", MSSQLengine)
df
SQL सर्वर प्रमाणीकरण
क्या होगा यदि आपको अपने SQL सर्वर से कनेक्ट करने के लिए SQL सर्वर प्रमाणीकरण-आधारित कनेक्शन स्ट्रिंग का उपयोग करने की आवश्यकता है? हम SQLALchemy . में उपयोगकर्ता नाम और पासवर्ड जोड़ने के लिए अपने पायथन कोड को समायोजित कर सकते हैं इंजन।
- सर्वरनाम ='DESKTOP-6L1B155'
- उदाहरणनाम ='फोगेलदेव'
- डेटाबेसनाम ='CODESIGHT_DEMOS'
- पोर्टनंबर ='1433'
- उपयोगकर्ता नाम ='कोडिंगसाइट यूज़र'
- पासवर्ड ='पासवर्ड123'
print("mssql+pyodbc://{USER}:{PASS}@{SERVER}:{PORT}\\{INSTANCE}/{DATABASE}?driver=SQL+Server+Native+Client+11.0".format(SERVER = Servername, INSTANCE = Instancename,DATABASE = Databasename,PORT = Portnumber,USER = Username, PASS = Password))
MSSQLengine = sqlalchemy.create_engine("mssql+pyodbc://{USER}:{PASS}@{SERVER}\\{INSTANCE}:{PORT}/{DATABASE}?driver=SQL+Server+Native+Client+11.0".format(SERVER = Servername, INSTANCE = Instancename,DATABASE = Databasename,PORT = Portnumber,USER = Username, PASS = Password))
फिर से, हम अपने कनेक्शन का परीक्षण कर रहे हैं, लेकिन इस बार हम तालिका से केवल 1 रिकॉर्ड का चयन कर रहे हैं।
df = pd.read_sql_query("SELECT TOP 1 * FROM POSTS", MSSQLengine)
df
डेटा लिखना
अंत में, हमारे SQL सर्वर डेटाबेस तालिका में Python डेटा प्राप्त करने पर एक नज़र डालें। हम एक डेटाफ़्रेम ऑब्जेक्ट बनाते हैं और उसे तालिका में जोड़ते हैं।
डेटाफ़्रेम विधि:
newdata = [{'Name': 'How to Create the Date Table in Power BI', 'Author': 'Haroon Ashraf', 'URL':'https://codingsight.com/how-to-create-date-table-in-power-bi/', 'Date':'4/21/21'}]
load_df = pd.DataFrame(newdata)
load_df.to_sql("POSTS", MSSQLengine, if_exists='append',index = False, chunksize = 200)
एक अन्य विधि निष्पादन कमांड के साथ सीधे तालिका में डेटा सम्मिलित करना होगा।
निष्पादन विधि:
MSSQLengine.execute("INSERT INTO [POSTS] VALUES('SQL Query Optimization: 5 Core Facts to Boost Queries','Edwin Sanchez','https://codingsight.com/sql-query-optimization-5-core-facts-to-boost-queries/','3/31/21')");
जब किया जाता है, तो अंतिम तालिका इस प्रकार दिखती है। इसकी पहली 3 पंक्तियाँ प्रारंभिक SQL सर्वर निर्माण स्क्रिप्ट द्वारा लोड की गई हैं, और 4 और 5 पंक्तियाँ पायथन द्वारा लोड की गई हैं।
सारांश
इस पोस्ट ने पायथन कोड को SQL सर्वर से जोड़ने के लिए कनेक्शन स्ट्रिंग मापदंडों पर प्रकाश डाला। हमने SQL सर्वर से डेटा पढ़ने की जांच की और दो अलग-अलग प्रमाणीकरण विधियों की जाँच की - पायथन का विशिष्ट मामला SQL सर्वर से कनेक्ट होता है Windows प्रमाणीकरण और मानक SQL सर्वर प्रमाणीकरण। साथ ही, हमने डेटा लोड करने के तरीकों की समीक्षा की, जिनमें से एक में पायथन में ऑब्जेक्ट डेटाफ़्रेम का उपयोग करना शामिल है, और दूसरा एक कच्चा SQL INSERT कमांड है।