Beispiele für die Verwendung des Amazon-Redshift-Python-Konnektors - Amazon Redshift

Beispiele für die Verwendung des Amazon-Redshift-Python-Konnektors

Im Folgenden finden Sie Beispiele zur Verwendung des Amazon-Redshift-Python-Konnektors.

Verbinden mit einem Amazon-Redshift-Cluster mit AWS-Anmeldeinformationen

Führen Sie den folgenden Befehl aus, um eine Verbindung mit einem Amazon-Redshift-Cluster mit AWS-Anmeldeinformationen herzustellen.

>>> conn = redshift_connector.connect( host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com', database='dev', user='awsuser', password='my_password' )

Abfragen einer Tabelle

Führen Sie den folgenden Befehl aus, um alle Zeilen in der Tabelle book auszuwählen.

>>> cursor.execute("select * from book")

Abrufen der Abfrageergebnisse

Führen Sie den folgenden Befehl aus, um die Ergebnisse abzurufen.

>>> result: tuple = cursor.fetchall() print(result) >> (['One Hundred Years of Solitude', 'Gabriel García Márquez'], ['A Brief History of Time', 'Stephen Hawking'])

Aktivieren von Autocommit

Die Autocommit-Eigenschaft ist gemäß der Python-Datenbank-API-Spezifikation standardmäßig deaktiviert. Sie können die folgenden Befehle verwenden, um die Autocommit-Eigenschaft der Verbindung zu aktivieren. Führen Sie zuerst einen Rollback-Befehl aus, um sicherzustellen, dass keine Transaktion ausgeführt wird.

>>> con.rollback() con.autocommit = True con.run("VACUUM") con.autocommit = False

Kopieren von Daten mit COPY und verwenden von UNLOAD, um Daten in einen Amazon S3 Bucket zu schreiben

Das folgende Beispiel zeigt, wie Daten aus einem Amazon S3 Bucket in eine Tabelle kopiert und dann aus der Tabelle in den S3 Bucket entladen werden.

Eine Textdatei mit dem Namen category_csv.txt und den folgenden Daten wird in einen S3 Bucket hochgeladen.

>>> 12,Shows,Musicals,Musical theatre 13,Shows,Plays,"All ""non-musical"" theatre" 14,Shows,Opera,"All opera, light, and ""rock"" opera" 15,Concerts,Classical,"All symphony, concerto, and choir concerts"

Es folgt ein Beispiel für den Python-Code, der sich zuerst mit der Amazon-Redshift-Datenbank verbindet. Anschließend wird eine Tabelle category erstellt und die CSV-Daten werden aus dem S3 Bucket in die Tabelle kopiert.

>>> with redshift_connector.connect(...) as conn: with conn.cursor() as cursor: cursor.execute("create table category (catid int, cargroup varchar, catname varchar, catdesc varchar)") cursor.execute("copy category from 's3://testing/category_csv.txt' iam_role 'arn:aws:iam::123:role/RedshiftCopyUnload' csv;") cursor.execute("select * from category") print(cursor.fetchall()) cursor.execute("unload ('select * from category') to 's3://testing/unloaded_category_csv.txt' iam_role 'arn:aws:iam::123:role/RedshiftCopyUnload' csv;") print('done')
>>> ([12, 'Shows', 'Musicals', 'Musical theatre'], [13, 'Shows', 'Plays', 'All "non-musical" theatre'], [14, 'Shows', 'Opera', 'All opera, light, and "rock" opera'], [15, 'Concerts', 'Classical', 'All symphony, concerto, and choir concerts']) done

Die Daten werden in die Datei unloaded_category_csv.text0000_part00 im S3 Bucket entladen.

>>> 12,Shows,Musicals,Musical theatre 13,Shows,Plays,"All ""non-musical"" theatre" 14,Shows,Opera,"All opera, light, and ""rock"" opera" 15,Concerts,Classical,"All symphony, concerto, and choir concerts"