从COPY命令返回查询ID

4 投票
1 回答
968 浏览
提问于 2025-04-17 21:57

我有一个Python脚本,它使用psycopg2来执行COPY命令,把数据从S3复制到Redshift,这个过程在定时任务中运行得很好。

现在我想每次都检查一下数据是否正确加载,并想查询STL_LOAD_COMMITSSTL_LOAD_ERRORS这两个表。

有没有人知道有没有办法获取COPY命令返回的查询ID,这样我就可以用它来查询上面的表,获取相关的日志记录?

我觉得COPY并不返回任何东西,但如果有人找到过什么聪明的方法来在代码中检查加载情况,我会很感兴趣。

补充:也许正确的方法是用文件名来查询,而不是查询ID,因为我知道我加载的文件名。

select *
from STL_LOAD_COMMITS
where filename in ('s3://bucket/4f737c05-8f16-4ba7-8f50-30423369c389.csv.gz',
's3://bucket/5fe4fea9-a9e4-4622-b9f6-ed3f98f7d1e2.csv.gz')

1 个回答

3

使用 PG_LAST_COPY_ID() 这个函数,它的意思就是会返回最后一次执行的 COPY 查询的 ID。

来源 AWS Redshift PG_LAST_COPY_ID()

撰写回答