繁体   English   中英

Airflow dag 中 postgres_operator 的问题

[英]Issues with postgres_operator in Airflow dag

我目前正在使用 Airflow 1.8.2 来安排一些 EMR 任务,然后在我们的 Redshift 集群上执行一些长时间运行的查询。 为此,我正在使用 postgres_operator。 运行查询大约需要 30 分钟。 但是,一旦完成,连接就永远不会关闭,并且操作员会运行一个半小时,直到每次都在 2 小时标记处终止。 终止时的消息是服务器意外关闭了连接。

我检查了 Redshift 端的日志,它显示查询已运行并且连接已关闭。 不知何故,这永远不会传达回 Airflow。 我可以检查的更多内容的任何指示都会有所帮助。 为了提供更多信息,我的 Airflow 安装是https://github.com/puckel/docker-airflow docker 映像的扩展,在 ECS 集群中运行,并使用 SQLite 作为后端,因为我仍在测试 Airflow。 另外,我在后端使用sequential executor器。 我将不胜感激在这件事上的任何帮助。

我们之前遇到过类似的问题,但我使用 SQLAlchemy 到 Redshift,如果您使用的是 postgres_operator,它应该非常相似。 如果 Redshift 没有看到长时间运行的查询的任何活动,它似乎会关闭连接,在您的情况下,30 分钟是相当长的查询。

检查https://www.postgresql.org/docs/9.5/static/runtime-config-connection.html你有三个设置, tcp_keepalives_idletcp_keepalives_idletcp_keepalives_count ,它向tcp_keepalives_count发送一条实时消息以表明“嘿,我还在活。

您可以将以下内容作为参数传递,如下所示: connect_args={'keepalives': 1, 'keepalives_idle':60, 'keepalives_interval': 60}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM