En février 2020, Oracle Cloud Infrastructure Data Science (OCI-Data Science) a été publié. La dernière fois, j'ai essayé d'interroger les données du fichier sur AWS S3 à partir d'OCI-Data Science (article Qiita: Essayez d'accéder aux données de fichier d'OCI Object Storage et AWS S3 à l'aide d'Oracle Cloud Infrastructure Data Science) Dans cet article, je souhaite implémenter la procédure d'accès et d'acquisition de données sur AWS Redshift à l'aide de Python d'OCI-Data Science. ..
Suivez la procédure ci-dessous.
Construit et initialise l'environnement du notebook OCI-Data Science. Procédez comme suit en faisant référence à "Utilisons Oracle Cloud Infrastructure Data Science (OCI-Data Science)" dans la référence ci-dessus.
-Après les paramètres de base d'Oracle Cloud, créez un environnement de notebook. -Utilisez ** getting-started.ipynb ** pour effectuer le travail initial de l'environnement du notebook (JupyerLab).
J'ai créé un cluster Redshift en me référant à la référence ci-dessus "Article Qiita: j'ai essayé Redshift pour la première fois!".
Cette fois, reportez-vous à «Essayer d'utiliser Amazon Redshift» dans «Que peut faire Amazon Redshift? Expliquer le service d'entrepôt de données AWS» dans la référence ci-dessus, ** Création d'un rôle IAM **, ** Les données ont été enregistrées en suivant les étapes de Création d'une table sur Redshift **, ** Enregistrement des données d'un fichier csv sur S3 dans une table sur Redshift **.
Cette fois, le tableau suivant est créé et des exemples de données sont enregistrés.
CREATE TABLE PURCHASE_ITEM (
CUST_ID integer,
AGE integer,
MARRIED VARCHAR(4000),
ADDRESS VARCHAR(4000),
CHILD VARCHAR(4000),
OCCUPATION VARCHAR(4000),
LASTCONTACT VARCHAR(4000),
LASTCALL integer,
CONTACT integer,
CONTACT_BEFORE_CAMPAIGN integer,
Purchased VARCHAR(4000)
);
Maintenant, accédons réellement à la table Redshift depuis OCI-Data Science.
Cette fois, nous utiliserons sqlalchemy-redshift
comme décrit dans la référence ci-dessus" Lire les données de Redshift et les mettre dans la trame de données pandas ".
Tout d'abord, installez le module ** sqlalchemy-redshift **.
pip install sqlalchemy-redshift
Ensuite, installez les bibliothèques requises.
import redshift_sqlalchemy
from sqlalchemy import create_engine
Connectez-vous à Redshift.
engine = create_engine('{dialect}+{driver}://{user}:{pwd}@{url}:{port}/{db}'.format(
dialect = 'redshift',
driver = 'psycopg2',
user='awsuser', #Nom d'utilisateur Redshift
pwd ='XXXXXX', #mot de passe
url='redshift-cluster-1.XXX.XXX.redshift.amazonaws.com', #Point de terminaison de l'écran du cluster Redshift
port=5439, #Numéro de port Redshift
db='dev' #Nom de la base de données Redshift
))
Ici, l'erreur ** Connection timed out ** suivante s'est produite.
Après examen, il ressemble au matériel de référence ci-dessus «Connexion à ubuntu16.04@AWS postgresql à partir de python3 distant (psycopg2)», définissez donc la ** règle d'entrée de groupe de sécurité VNC ** de Redshift comme suit. Faire.
Après avoir défini le groupe de sécurité, j'ai pu me connecter normalement.
Lisez les données sur Redshift et placez-les dans la trame de données.
import pandas as pd
redshift_data = pd.read_sql_query('SELECT * FROM PURCHASE_ITEM limit 100;', engine)
Vérifions le résultat.
redshift_data.head()
Certes, j'ai pu l'obtenir en toute sécurité.
Cette fois, j'ai essayé d'accéder aux données sur AWS Redshift à partir d'OCI-Data Science en utilisant ** sqlalchemy-redshift **.
Il existe peut-être une meilleure méthode de connexion que celle-ci, alors essayez-la. (Et dis moi ...)
OCI-Data Science est un service cible de Essai gratuit d'Oracle qui vous permet d'utiliser un crédit gratuit jusqu'à 300 $ pendant 30 jours maximum. Par conséquent, nous vous recommandons de l'essayer.
Let's Enjoy Data Science!
Recommended Posts