Falls jemand daran interessiert ist, sich mit einem entfernten Postgresql zu verbinden Datenbank über SSH und möchte Daten in einen pandas DataFrame laden So geht's.
Angenommen, wir haben eine Postgresql-Datenbank auf einem entfernten Server installiert, zu der wir mit den folgenden Parametern ssh können.
SSH-Parameter:
- IP des Servers:
10.0.0.101
- SSH-Port:
22
(Standardport für SSH ) - Benutzername:
my_username
- Passwort:
my_password
Datenbankparameter:
- Port:
5432
(postgresql-Standardport ) - Datenbankname:
db
- Datenbankbenutzer:
postgres_user
(Standardbenutzername istpostgres
) - Datenbankpasswort:
postgres_pswd
(Standardkennwort ist eine leere Zeichenfolge ) - Tabelle mit unseren Daten:
MY_TABLE
Jetzt wollen wir uns auf unserer Seite mit dieser Datenbank verbinden und Daten in einen pandas DataFrame laden:
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()