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

Paramiko SSH के माध्यम से SQLAlchemy

मामले में कोई है जो दूरस्थ 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()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक टेबल में कई रैंक

  2. मैं हाइबरनेट + c3p0 + MySql को बड़ी संख्या में स्लीपिंग कनेक्शन बनाने से कैसे रोक सकता हूँ?

  3. PHP mysqli_real_escape_string खाली स्ट्रिंग लौटा रहा है

  4. सबक्वेरी बनाम जॉइन

  5. CREATE FUNCTION त्रुटि इस फ़ंक्शन में कोई भी DETERMINISTIC, NO SQL, या READS SQL डेटा नहीं है