【发布时间】:2015-04-01 00:05:58
【问题描述】:
我正在尝试在 SQLAlchemy 中进行 Redshift COPY。
当我在 psql 中执行以下 SQL 时,它会正确地将对象从我的 S3 存储桶复制到我的 Redshift 表中:
COPY posts FROM 's3://mybucket/the/key/prefix'
WITH CREDENTIALS 'aws_access_key_id=myaccesskey;aws_secret_access_key=mysecretaccesskey'
JSON AS 'auto';
我有几个名为
的文件s3://mybucket/the/key/prefix.001.json
s3://mybucket/the/key/prefix.002.json
etc.
我可以使用select count(*) from posts 验证新行是否已添加到表中。
但是,当我在 SQLAlchemy 中执行完全相同的 SQL 表达式时,执行完成且没有错误,但没有任何行添加到我的表中。
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()
【问题讨论】:
标签: python sqlalchemy amazon-redshift