Próbuję zrobić Redshift COPY w SQLAlchemy.Redshift COPY operacja nie działa w SQLAlchemy
Poniższy SQL prawidłowo kopie obiektów z mojego S3 wiadra na moim stole redshifcie kiedy go wykonać w psql:
COPY posts FROM 's3://mybucket/the/key/prefix'
WITH CREDENTIALS 'aws_access_key_id=myaccesskey;aws_secret_access_key=mysecretaccesskey'
JSON AS 'auto';
Mam kilka plików o nazwie
s3://mybucket/the/key/prefix.001.json
s3://mybucket/the/key/prefix.002.json
etc.
mogę zweryfikować, że nowy wiersze zostały dodane do tabeli za pomocą select count(*) from posts
.
Jednak, gdy wykonuję dokładnie to samo wyrażenie SQL w SQLAlchemy, wykonanie kończy się bezbłędnie, ale do mojej tabeli nie zostaną dodane żadne wiersze.
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()
To nie ma znaczenia, czy robię powyżej lub
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()