Redshift COPY не работает в SQLAlchemy
Я пытаюсь сделать Redshift COPY в SQLAlchemy.
Следующий SQL-код корректно копирует объекты из моего сегмента S3 в мою таблицу Redshift при выполнении его в 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';
У меня есть несколько файлов с именем
s3://mybucket/the/key/prefix.001.json
s3://mybucket/the/key/prefix.002.json
etc.
Я могу проверить, что новые строки были добавлены в таблицу сselect count(*) from posts
.
Однако, когда я выполняю точно такое же выражение SQL в SQLAlchemy, выполнение завершается без ошибок, но в мою таблицу не добавляются строки.
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()
Неважно, делаю ли я выше или
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()