In diesem Artikel werde ich erklären, wie Sie Daten aus einer Python-Anwendung unter Linux oder UNIX mithilfe des DataDirect-Treibers einfach mit ODBC mit Amazon Redshift verknüpfen können.
Für CentOS
sudo yum install unixODBC-devel unixODBC
Für Ubuntu / Debian
sudo apt-get install unixODBC-dev unixODBC
Die Inhalte von
/etc/odbcinst.ini
Einfügen in.
ar -xvf PROGRESS_DATADIRECT_ODBC_REDSHIFT_LINUX_64.tgz
./ PROGRESS_DATADIRECT_ODBC_8.0_LINUX_64_INSTALL.bin
Wechseln Sie nach Abschluss der Installation in den Installationsordner, führen Sie das Shell-Skript odbc.sh oder odbc.csh aus und legen Sie die Umgebungsvariablen fest.
Dadurch werden drei Umgebungsvariablen festgelegt. Stellen Sie sicher, dass es richtig eingerichtet ist und fahren Sie fort!
[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)
Es ist sehr leicht.
Referenzartikel
Echtzeitzugriff auf Amazon Redshift
DataDirect for Redshift-Lernprogramm
Recommended Posts