【问题标题】:Delay execution of SQL script in Amazon Redshift在 Amazon Redshift 中延迟执行 SQL 脚本
【发布时间】:2017-07-13 03:57:04
【问题描述】:

Redshift在PostgreSQL中有类似pg_sleep()的功能吗?

我有一个 SQL 脚本需要等待一段时间才能继续执行。

不支持显示pg_sleep()Unsupported PostgreSQL Functions Redshift 文档。

更新 1:

我在 Redshift 中遇到了死锁问题。我有多个进程可以使用DROP/TRUNCATE/INSERT/UPDATE/SELECT 查询一个表(或一组表)。如果出现死锁,我试图捕捉这个异常并让进程等待一段时间并重试。对处理死锁的方法有什么建议吗?

【问题讨论】:

  • 是只需要等待一段时间,还是需要等到某些外部事件(希望)发生?
  • 是的,您是否担心最终的一致性或类似情况?
  • 强制你的脚本等待几乎总是错误的做法——你的用例是什么,即你为什么要睡觉?

标签: amazon-web-services amazon-redshift


【解决方案1】:

不推荐的粗略方法是使用 Python User Defined Function

CREATE OR REPLACE FUNCTION janky_sleep (x float) RETURNS bool IMMUTABLE as $$
    from time import sleep
    sleep(x)
    return True
$$ LANGUAGE plpythonu;

select janky_sleep(5.0);

【讨论】:

    【解决方案2】:

    您是否尝试过在桌子上使用锁。我也遇到过和你类似的情况,桌子上的锁帮我克服了。

    【讨论】:

    • 你是如何创建那个锁的?
    猜你喜欢
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多