【发布时间】:2021-08-22 05:55:56
【问题描述】:
我是 redshift 的新手,面临“D”:“表错误的可序列化隔离违规。 这发生在数据存档处理时间范围内(午夜加载),并影响同一张表的常规批处理作业数据加载。
我已经在归档加载过程下面写了。在我的下面的脚本中是否有避免此类错误的最佳方法?
你能帮忙吗?提前致谢。
INSERT INTO abc.data_arch
( col1,col2......
)
With cte_365days_older
AS
(
Select * from abc.abc_data_365
WHERE abc_ts < dateadd(day, -365, current_date)
--LIMIT 1
)
SELECT
col1,col2......
FROM cte_365days_older src
WHERE not exists (select 1 from abc.data_arch trgt
where src.abc_hkey = trgt.abc_hkey
)
order by col1,col2
;
DELETE
from abc.abc_data_365
WHERE abc_ts < dateadd(day, -365, current_date);
COMMIT;
VACUUM DELETE ONLY abc.abc_data_365;
COMMIT;
错误:-
'D': 'Serializable isolation violation on table - 342561, transactions forming the cycle are: 2234341, 2034548 (pid:3235)'
【问题讨论】:
-
常规批处理作业数据加载是否可能与此脚本同时运行?
-
常规批处理作业数据与INSERT语句同时运行。
标签: amazon-web-services amazon-redshift