【发布时间】:2018-08-31 06:57:11
【问题描述】:
您好,我正在通过 Python 运行 ETL。 我有一个简单的 sql 文件,可以从 Python 运行,例如
truncate table foo_stg;
insert into foo_stg
(
select blah,blah .... from tables
);
truncate table foo;
insert into foo
(
select * from foo_stg
);
这个查询有时会锁定它没有释放的表。 由于其他进程排队。
现在我检查哪个表有锁并杀死导致锁的进程。
我想知道我可以对我的代码进行哪些更改来缓解此类问题?
提前致谢!!!
【问题讨论】:
-
如果锁没有被释放,你在某处缺少
commit -
我在每笔交易之后都放了一个提交声明
-
这种情况也发生在 50 次中有 1 次
-
如果您 100% 确定您始终提交每笔交易,您应该联系亚马逊的支持。
-
可悲的是我的公司没有 AWS 支持 :(
标签: sql transactions amazon-redshift etl locks