Dans cet article, j'expliquerai comment lier facilement des données d'une application Python sous Linux ou UNIX à Amazon Redshift avec ODBC à l'aide du pilote DataDirect.
Pour CentOS
sudo yum install unixODBC-devel unixODBC
Pour Ubuntu / Debian
sudo apt-get install unixODBC-dev unixODBC
Le contenu de
/etc/odbcinst.ini
Coller.
ar -xvf PROGRESS_DATADIRECT_ODBC_REDSHIFT_LINUX_64.tgz
./ PROGRESS_DATADIRECT_ODBC_8.0_LINUX_64_INSTALL.bin
Une fois l'installation terminée, accédez au dossier d'installation, exécutez le script shell odbc.sh ou odbc.csh et définissez les variables d'environnement.
Cela définira trois variables d'environnement. Assurez-vous qu'il est correctement configuré et continuez!
[progress@centos7264 ODBC_80_64bit]$ echo $LD_LIBRARY_PATH && echo $ODBCINI && echo $ODBCINST
/home/progress/Progress/DataDirect/ODBC_80_64bit/lib:/home/progress/Progress/DataDirect/ODBC_80_64bit/jre/lib/amd64/server
/home/progress/Progress/DataDirect/ODBC_80_64bit/odbc.ini
/home/progress/Progress/DataDirect/ODBC_80_64bit/odbcinst.ini
pip install pyodbc
import pyodbc
conn = pyodbc.connect('Driver={DataDirect 8.0 Amazon Redshift Wire Protocol}; HostName=redshift-cluster-1.cy1mp8nn6ntk.us-west-2.redshift.amazonaws.com; Database=dev; UID=awsuser; PWD=Galaxy472; Port=5439')
cursor = conn.cursor()
## Create Tables
cursor.execute("CREATE TABLE Track ( TrackId INT NOT NULL, Name VARCHAR(200) NOT NULL, AlbumId INT, MediaTypeId INT NOT NULL, GenreId INT, Composer VARCHAR(220), Milliseconds INT NOT NULL, Bytes INT, UnitPrice NUMERIC(10,2) NOT NULL);")
cursor.execute("INSERT INTO Track (TrackId, Name, AlbumId, MediaTypeId, GenreId, Composer, Milliseconds, Bytes, UnitPrice) VALUES (1, 'For Those About To Rock (We Salute You)', 1, 1, 1, 'Angus Young, Malcolm Young, Brian Johnson', 343719, 11170334, 0.99);")
conn.commit()
##Access Data using SQL
cursor.execute("select * from Track")
while True:
row = cursor.fetchone()
if not row:
break
print(row)
##Access Data using SQL
cursor.execute("select * from Artist")
while True:
row = cursor.fetchone()
if not row:
break
print(row)
C'est très facile.
Article de référence
Accès en temps réel à Amazon Redshift
Didacticiel DataDirect pour Redshift
Recommended Posts