Redshift - 终止启动 Redshift 查询的应用程序不会终止它
Redshift - Killing the application that initiated the Redshift query does not kill it
我有一个 java 应用程序正在执行 Redshift COPY 命令。该应用程序未作为服务编写,因此我强行终止该进程以停止它。 java 应用程序被立即杀死,但是即使在 java 应用程序被杀死时 Redshift COPY 命令仍在进行中,它会继续 运行 在 Redshift 上并成功完成。
这不是我所期望的行为。我期望一旦与 Redshift 的连接终止,COPY 命令将随之终止并且 COPY 命令将回滚。
我需要一些设置吗?
在分布式系统中,客户端-服务器应用程序就此而言被视为分布式系统,您通常不依赖于节点之间的持续通信。如果您在一侧终止 JDBC 客户端,服务器不会自动取消您的 SQL 查询,因为它不知道您是否终止了查询生成器,或者您只是遇到了一些网络中断。如果每次出现短暂的网络问题,您都必须再次 运行 您的 COPY 命令,这将非常烦人,这在某些情况下可能需要几次 minutes/hours。
取消查询的"right"方法是CANCEL您的查询。
我有一个 java 应用程序正在执行 Redshift COPY 命令。该应用程序未作为服务编写,因此我强行终止该进程以停止它。 java 应用程序被立即杀死,但是即使在 java 应用程序被杀死时 Redshift COPY 命令仍在进行中,它会继续 运行 在 Redshift 上并成功完成。
这不是我所期望的行为。我期望一旦与 Redshift 的连接终止,COPY 命令将随之终止并且 COPY 命令将回滚。
我需要一些设置吗?
在分布式系统中,客户端-服务器应用程序就此而言被视为分布式系统,您通常不依赖于节点之间的持续通信。如果您在一侧终止 JDBC 客户端,服务器不会自动取消您的 SQL 查询,因为它不知道您是否终止了查询生成器,或者您只是遇到了一些网络中断。如果每次出现短暂的网络问题,您都必须再次 运行 您的 COPY 命令,这将非常烦人,这在某些情况下可能需要几次 minutes/hours。
取消查询的"right"方法是CANCEL您的查询。