在Redshift中读取查询耗时太长



我尝试通过lambda函数更新我的红移它将更新记录中的任何更改几乎实时使用这个查询

UPDATE user_activity SET action = 'view',property_key, WHERE activity_id = '12345678'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  

然后我尝试查询它们以显示结果

SELECT * FROM user_activity WHERE activity_id = '12345678' 

但这些从未完成。它们一直在队列中运行,我必须终止这些查询来阻止它们。

我可以正常地打开INSERT和DELETE查询,这些查询在不到1秒的时间内完成

那么,这个问题的原因是什么,我该如何解决它?

编辑:更多信息

  • 当我在查询编辑器上运行时,UPDATE和SELECT查询都可以正常工作。只有当我通过Lambda函数运行查询时才发现这个问题。
  • 在lambda中,我通过名为sqlalchemy的python库连接到redshift

听起来你是直接连接到红移,因此受到15分钟Lambda超时的限制,对吗?这里没有使用Redshift Data API,对吧?

我猜有一个锁阻碍了UPDATE的COMMIT的执行。检查STV_LOCKS以确保其他进程在表上没有独占锁。如果有确保所有数据修改进程COMMIT或ROLLBACK及时。

相关内容

  • 没有找到相关文章

最新更新