Im Februar 2020 wurde Oracle Cloud Infrastructure Data Science (OCI-Data Science) veröffentlicht. Beim letzten Mal habe ich versucht, die Daten der Datei in AWS S3 von OCI-Data Science abzufragen ([Qiita-Artikel: Versuchen Sie, mit Oracle Cloud Infrastructure Data Science auf die Dateidaten von OCI Object Storage und AWS S3 zuzugreifen]) ( https://qiita.com/maato/items/691452be9e4a5d63e4f9)) In diesem Artikel möchte ich das Verfahren für den Zugriff auf und die Erfassung von Daten in AWS Redshift mit Python von OCI-Data Science ausführen. ..
Befolgen Sie die nachstehenden Anweisungen.
Erstellt und initialisiert die OCI-Data Science-Notebook-Umgebung. Führen Sie die folgenden Schritte unter Bezugnahme auf "Verwenden Sie Oracle Cloud Infrastructure Data Science (OCI-Data Science)" in der obigen Referenz aus.
Ich habe einen Redshift-Cluster unter Bezugnahme auf die obige Referenz "Qiita-Artikel: Ich habe Redshift zum ersten Mal ausprobiert!" Erstellt.
Dieses Mal ** Erstellen einer IAM-Rolle ** ** unter Bezugnahme auf "Versuchen Sie, Amazon Redshift zu verwenden" unter "Was kann Amazon Redshift tun? Erklären von AWS Data Warehouse-Diensten" in der obigen Referenz. Die Daten wurden registriert, indem die Schritte zum Erstellen einer Tabelle in Redshift **, ** Registrieren von Daten aus einer CSV-Datei in S3 in einer Tabelle in Redshift ** ausgeführt wurden.
Dieses Mal wird die folgende Tabelle erstellt und Beispieldaten registriert.
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)
);
Lassen Sie uns nun von OCI-Data Science aus auf die Redshift-Tabelle zugreifen. Dieses Mal verwenden wir "sqlalchemy-redshift", wie in der obigen Referenz "Lesen von Daten aus Redshift und Einfügen in den Pandas-Datenrahmen" beschrieben.
Installieren Sie zuerst das Modul ** sqlalchemy-redshift **.
pip install sqlalchemy-redshift
Installieren Sie dann die erforderlichen Bibliotheken.
import redshift_sqlalchemy
from sqlalchemy import create_engine
Stellen Sie eine Verbindung zu Redshift her.
engine = create_engine('{dialect}+{driver}://{user}:{pwd}@{url}:{port}/{db}'.format(
dialect = 'redshift',
driver = 'psycopg2',
user='awsuser', #Redshift-Benutzername
pwd ='XXXXXX', #Passwort
url='redshift-cluster-1.XXX.XXX.redshift.amazonaws.com', #Endpunkt des Rotverschiebungsclusterbildschirms
port=5439, #Redshift-Portnummer
db='dev' #Name der Redshift-Datenbank
))
Hier ist der folgende Fehler ** Verbindungszeitüberschreitung ** aufgetreten.
Nach der Untersuchung sieht es genauso aus wie das obige Referenzmaterial "Herstellen einer Verbindung zu ubuntu16.04@AWS postgresql von Remote-Python3 (psycopg2)". Stellen Sie daher die Eingangsregel ** VNC-Sicherheitsgruppe ** von Redshift wie folgt ein. Machen.
Nachdem ich die Sicherheitsgruppe festgelegt hatte, konnte ich eine normale Verbindung herstellen.
Lesen Sie die Daten auf Redshift und fügen Sie sie in den Datenrahmen ein.
import pandas as pd
redshift_data = pd.read_sql_query('SELECT * FROM PURCHASE_ITEM limit 100;', engine)
Lassen Sie uns das Ergebnis überprüfen.
redshift_data.head()
Natürlich konnte ich es sicher bekommen.
Dieses Mal habe ich versucht, mit ** sqlalchemy-redshift ** auf die Daten in AWS Redshift von OCI-Data Science zuzugreifen.
Möglicherweise gibt es eine bessere Verbindungsmethode als diese. Probieren Sie es also aus. (Und sag mir ...)
OCI-Data Science ist ein Zieldienst von Oracle Free Trial, mit dem Sie bis zu 30 Tage lang kostenloses Guthaben für bis zu 300 USD verwenden können. Wir empfehlen Ihnen daher, es auszuprobieren.
Let's Enjoy Data Science!
Recommended Posts