A operação Redyift COPY não funciona no SQLAlchemy
Eu estou tentando fazer uma cópia Redshift no SQLAlchemy.
O SQL a seguir copia corretamente os objetos do meu bucket S3 para a minha tabela Redshift quando eu o executo no psql:
COPY posts FROM 's3://mybucket/the/key/prefix'
WITH CREDENTIALS 'aws_access_key_id=myaccesskey;aws_secret_access_k,ey=mysecretaccesskey'
JSON AS 'auto';
Eu tenho vários arquivos nomeados
s3://mybucket/the/key/prefix.001.json
s3://mybucket/the/key/prefix.002.json
etc.
Posso verificar se as novas linhas foram adicionadas à tabela comselect count(*) from posts
.
No entanto, quando executo exatamente a mesma expressão SQL em SQLAlchemy, a execução é concluída sem erros, mas nenhuma linha é adicionada à minha tabela.
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()
Não importa se eu faço o acima ou
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()