sql >> Databasteknik >  >> RDS >> Mysql

SQLAlchemy genom Paramiko SSH

Om det finns någon som är intresserad av att ansluta till en fjärransluten Postgresql databas via SSH och vill ladda data till en pandas DataFrame så här gör du.

Anta att vi har installerat en postgresql-databas på en fjärrserver, till vilken vi kan ssh med följande parametrar.

SSH-parametrar:

  • Serverns ip:10.0.0.101
  • SSH-port:22 (standardport för SSH )
  • Användarnamn:my_username
  • Lösenord:my_password

Databasparametrar:

  • Port:5432 (postgresql standardport )
  • Databasnamn:db
  • Databasanvändare:postgres_user (standardanvändarnamn är postgres )
  • Databaslösenord:postgres_pswd (standardlösenordet är en tom sträng )
  • Tabell med våra data:MY_TABLE

Nu vill vi ansluta till den här databasen på vår sida och ladda data till en pandas DataFrame:

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. Docker-bild körs i m1-processor

  2. Hur väljer man flera kolumner med samma namn med JPA-inbyggd fråga?

  3. Microsoft Access Web App vs Desktop Database

  4. Hur man ställer in MariaDB (Master-Slave) replikering i CentOS/RHEL 7 och Debian 8/9