Amazon Redshift:查询执行挂起

Jam*_*ann 3 grails hadoop amazon-web-services amazon-redshift

我使用amazon redshift,有时查询执行会挂起而没有任何错误消息,例如此查询将执行:

select extract(year from date), extract(week from date),count(*) from some_table  where date>'2015-01-01 00:00:00' and date<'2015-12-31 23:59:59' group by extract(year from date), extract(week from date)
Run Code Online (Sandbox Code Playgroud)

而这不是:

select extract(year from date), extract(week from date),count(*) from some_table  where date>'2014-01-01 00:00:00' and date<'2014-12-27 23:59:59' group by extract(year from date), extract(week from date)
Run Code Online (Sandbox Code Playgroud)

但只有当我将项目部署到服务器并在我的本地机器上执行所有查询时才会发生这种情况.

我已经在我的代码中设置autoCommit=true了连接.此外,上面列出的所有内容都使用此库来处理grails

        compile 'com.amazonaws:aws-java-sdk-redshift:1.9.39'
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Vor*_*Vor 5

这可能不是一个确切的答案,但是评论太长了.

您可能想要检查mtu执行执行的服务器上的设置.

Redshift希望在1500字节帧上操作,默认情况下所有EC2实例都设置为巨型帧(9000)

为了使您可以毫无问题地运行查询,您需要具有相同的mtu设置.

要检查您当前拥有的内容,请运行以下命令:

ip addr show eth0

示例输出将是这样的:

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP qlen 1000

在这种情况下,mtu是9001,因此您需要通过运行将其更改为1500:

/sbin/ifconfig eth0 mtu 1500 up