Wenn Sie Daten analysieren, stellen Sie möglicherweise fest, dass sich die Daten überhaupt in der Datenbank befinden. In diesem Fall wäre es gut, wenn es lokal wäre, aber wenn es in RDS von AWS ist, ist es notwendig, eine Remoteverbindung herzustellen und die Daten zu erfassen. In diesem Fall besteht eine Möglichkeit darin, die Portweiterleitung lokal und remote zu erhalten. Diesmal möchte ich dies mit Anaconda machen.
Installieren Sie das Folgende mit Conda oder Pip.
* Wird für die Portweiterleitung verwendet.
sshtunnel
* Wird verwendet, um eine Verbindung zu MySQL herzustellen.
mysql.connector
pandas
Importieren Sie sshtunnel und port vorwärts.
* Importieren Sie, was Sie brauchen
from sshtunnel import SSHTunnelForwarder
* Einstellungen für die Portweiterleitung
host = 'Remote-Host'
localhost = '127.0.0.1'
ssh_username = 'Nutzername'
ssh_private_key = 'Speicherort des privaten Schlüssels'
server = SSHTunnelForwarder(
(host, 22),
ssh_private_key_password="Passwort für den privaten Schlüssel",
ssh_username=ssh_username,
ssh_private_key=ssh_private_key,
local_bind_address=('0.0.0.0',Lokaler zu bindender Port),
remote_bind_address=(localhost,Remote-Port zum Binden))
server.start()
* Stoppen Sie, wenn Sie den Port vorwärts beenden möchten.
server.stop()
Mit Portweiterleitung mit der oben genannten Quelle Es stellt eine Verbindung zur Datenbank her, ruft Daten ab und zeigt die Daten in einem Datenrahmen an.
import mysql.connector
import pandas as pd
#Informationen zur Datenbankverbindung
connect = mysql.connector.connect(user='DB-Benutzername', password='DB-Passwort', host='127.0.0.1',port='Portweiterleitungsziel', database='DB-Name', charset='utf8')
cursor = connect.cursor()
cursor.execute("select * from table WHERE id = 1")
result = cursor.fetchall()
dataframe = pd.DataFrame(result)
dataframe
Sie können jetzt Daten direkt mit anaconda abrufen. Sie können jetzt einfach Daten abrufen.