Sto provando a eseguire una COPIA di redshift in SQLAlchemy.Redshift L'operazione di COPY non funziona in SQLAlchemy
Il seguente SQL correttamente copie di oggetti dal mio secchio S3 nella mia tabella di Redshift quando eseguo in psql:
COPY posts FROM 's3://mybucket/the/key/prefix'
WITH CREDENTIALS 'aws_access_key_id=myaccesskey;aws_secret_access_key=mysecretaccesskey'
JSON AS 'auto';
Ho diversi file di nome
s3://mybucket/the/key/prefix.001.json
s3://mybucket/the/key/prefix.002.json
etc.
posso verificare che il nuovo le righe sono state aggiunte alla tabella con select count(*) from posts
.
Tuttavia, quando eseguo esattamente la stessa espressione SQL in SQLAlchemy, l'esecuzione si completa senza errori, ma nessuna riga viene aggiunta alla mia tabella.
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()
Non importa se faccio il sopra o
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()