Jika ada orang yang tertarik untuk menghubungkan ke Postgresql jarak jauh database melalui SSH dan ingin memuat data ke dalam pandas DataFrame berikut adalah cara melakukannya.
Misalkan kita telah menginstal database postgresql di server jauh, yang dapat kita ssh dengan parameter berikut.
Parameter SSH:
- IP server:
10.0.0.101
- Port SSH:
22
(port default untuk SSH ) - Nama pengguna:
my_username
- Sandi:
my_password
Parameter basis data:
- Port:
5432
(port default postgresql ) - Nama basis data:
db
- Pengguna basis data:
postgres_user
(nama pengguna default adalahpostgres
) - Kata sandi basis data:
postgres_pswd
(sandi default adalah string kosong ) - Tabel dengan data kami:
MY_TABLE
Sekarang, kami ingin terhubung ke database ini dan memuat data ke dalam panda 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()