Redshift COPY-Vorgang funktioniert in SQLAlchemy nicht
Ich versuche, eine Redshift-Kopie in SQLAlchemy zu erstellen.
Die folgende SQL kopiert Objekte aus meinem S3-Bucket korrekt in meine Redshift-Tabelle, wenn ich sie in psql ausführe:
COPY posts FROM 's3://mybucket/the/key/prefix'
WITH CREDENTIALS 'aws_access_key_id=myaccesskey;aws_secret_access_k,ey=mysecretaccesskey'
JSON AS 'auto';
Ich habe mehrere Dateien mit dem Namen
s3://mybucket/the/key/prefix.001.json
s3://mybucket/the/key/prefix.002.json
etc.
Ich kann mit @ überprüfen, ob die neuen Zeilen zur Tabelle hinzugefügt wurdeselect count(*) from posts
.
Wenn ich jedoch in SQLAlchemy genau denselben SQL-Ausdruck ausführe, wird die Ausführung ohne Fehler abgeschlossen, aber meiner Tabelle werden keine Zeilen hinzugefügt.
session = get_redshift_session()
session.bind.execute("COPY posts FROM 's3://mybucket/the/key/prefix' WITH CREDENTIALS aws_access_key_id=myaccesskey;aws_secret_access_key=mysecretaccesskey' JSON AS 'auto';")
session.commit()
Es ist egal, ob ich das oben oder
from sqlalchemy.sql import text
session = get_redshift_session()
session.execute(text("COPY posts FROM 's3://mybucket/the/key/prefix' WITH CREDENTIALS aws_access_key_id=myaccesskey;aws_secret_access_key=mysecretaccesskey' JSON AS 'auto';"))
session.commit()