Lorsque vous analysez des données, vous pouvez constater que les données sont dans la base de données en premier lieu. Dans ce cas, ce serait bien s'il était local, mais s'il est dans RDS d'AWS, il est nécessaire de se connecter à distance et d'acquérir les données. Dans ce cas, une façon est de l'obtenir par redirection de port localement et à distance. Cette fois, je voudrais faire cela en utilisant anaconda.
Installez ce qui suit avec conda ou pip.
* Utilisé pour la redirection de port.
sshtunnel
* Utilisé pour se connecter à mysql.
mysql.connector
pandas
Importez sshtunnel et port forward.
* Importez ce dont vous avez besoin
from sshtunnel import SSHTunnelForwarder
* Paramètres de redirection de port
host = 'Hôte distant'
localhost = '127.0.0.1'
ssh_username = 'Nom d'utilisateur'
ssh_private_key = 'Emplacement de la clé privée'
server = SSHTunnelForwarder(
(host, 22),
ssh_private_key_password="Mot de passe de la clé privée",
ssh_username=ssh_username,
ssh_private_key=ssh_private_key,
local_bind_address=('0.0.0.0',Port local à lier),
remote_bind_address=(localhost,Port distant à lier))
server.start()
* Arrêtez-vous lorsque vous souhaitez mettre fin au transfert de port.
server.stop()
Avec la redirection de port effectuée avec la source ci-dessus Il se connecte à la base de données, récupère les données et affiche les données dans un bloc de données.
import mysql.connector
import pandas as pd
#Informations de connexion à la base de données
connect = mysql.connector.connect(user='Nom d'utilisateur DB', password='Mot de passe DB', host='127.0.0.1',port='Destination de redirection de port', database='Nom de la base de données', charset='utf8')
cursor = connect.cursor()
cursor.execute("select * from table WHERE id = 1")
result = cursor.fetchall()
dataframe = pd.DataFrame(result)
dataframe
Maintenant que vous pouvez obtenir des données directement avec anaconda, vous pouvez obtenir des données facilement.
Recommended Posts