मामले में कोई है जो दूरस्थ Postgresql . से कनेक्ट करने में रुचि रखता है SSH के माध्यम से डेटाबेस और एक pandas DataFrame . में डेटा लोड करना चाहता है यह कैसे करना है।
मान लीजिए कि हमने एक दूरस्थ सर्वर पर एक पोस्टग्रेस्क्ल डेटाबेस स्थापित किया है, जिसके लिए हम निम्नलिखित मापदंडों के अनुसार ssh कर सकते हैं।
एसएसएच पैरामीटर:
- सर्वर का आईपी:
10.0.0.101
- एसएसएच पोर्ट:
22
(एसएसएच के लिए डिफ़ॉल्ट पोर्ट ) - उपयोगकर्ता नाम:
my_username
- पासवर्ड:
my_password
डेटाबेस पैरामीटर:
- पोर्ट:
5432
(postgresql डिफ़ॉल्ट पोर्ट ) - डेटाबेस का नाम:
db
- डेटाबेस उपयोगकर्ता:
postgres_user
(डिफ़ॉल्ट उपयोगकर्ता नाम हैpostgres
) - डेटाबेस पासवर्ड:
postgres_pswd
(डिफ़ॉल्ट पासवर्ड एक खाली स्ट्रिंग है ) - हमारे डेटा के साथ तालिका:
MY_TABLE
अब, हम अपने अंत में इस डेटाबेस से जुड़ना चाहते हैं और डेटा को एक पांडा डेटाफ़्रेम में लोड करना चाहते हैं:
from sshtunnel import SSHTunnelForwarder
from sqlalchemy import create_engine
import pandas as pd
server = SSHTunnelForwarder(
('10.0.0.101', 22),
ssh_username="my_username",
ssh_password="my_password",
remote_bind_address=('127.0.0.1', 5432)
)
server.start()
local_port = str(server.local_bind_port)
engine = create_engine('postgresql://{}:{}@{}:{}/{}'.format("postgres_user", "postgres_pswd", "127.0.0.1", local_port, "db"))
dataDF = pd.read_sql("SELECT * FROM \"{}\";".format("MY_TABLE"), engine)
server.stop()