查询在浏览器中工作正常但在 CLI 中失败
Query works fine in browser but fails in CLI
我安装了 TPC-H 基准测试。我可以在浏览器中 运行 这个命令并且它工作正常:
select * from h_customer;
但是如果我从 Linux CLI 运行 它,它根本就不会 returns。
如果我将它修改得更小,它将在 CLI 中工作:
select * from h_customer limit 10;
那 return 就好了。然后我可以继续:
select * from h_customer limit 100; -- This works.
select * from h_customer limit 1000; -- This hangs.
“历史记录”视图显示服务器收到带有 'limit 1000' 的查询并正确处理了它。这是 运行 在合理的时间内,历史视图显示正确的 1,000 行。
我可以用其他表和查询重现这一点。这似乎是客户端的大量数据问题。但是 returning 1,000 行应该是微不足道的。我希望它 return 多得多。
Snowflake 将小结果集直接发送到客户端。对于较大的,它会将客户端定向到结果集缓存以下载一个或多个压缩文件。结果集缓存来自云提供商,而不是直接来自 snowflakecomputing.com。
1,000 行是在两者之间切换的一个阈值,而且我已经看到非常宽的表用更少的行做同样的事情。然后,客户端会根据 Snowflake 所在的位置 运行 尝试下载 S3 文件、Azure blob 或 GCS 文件。某些东西阻止了您的 Linux 客户端下载这些文件。
通常是具有状态数据包检测功能的防火墙,例如来自 Palo Alto 或 Cisco。他们有时会解密 HTTPS 流量并丢弃看起来应该是 "snowflakecomputing.com" 但来自 AWS、Azure 或 GCP 的数据包。
也可以是代理服务器。由于它是从浏览器运行的,因此两者获取大型结果集的方式有所不同。浏览器可能配置了代理。您可以为包括 SnowSQL 在内的所有 Snowflake 客户端设置代理 https://docs.snowflake.com/en/user-guide/snowsql-start.html#using-a-proxy-server.
请与您的网络团队联系,看看是否有东西从云提供商或 snowflakecomputing.com 丢弃数据包。
我安装了 TPC-H 基准测试。我可以在浏览器中 运行 这个命令并且它工作正常:
select * from h_customer;
但是如果我从 Linux CLI 运行 它,它根本就不会 returns。
如果我将它修改得更小,它将在 CLI 中工作:
select * from h_customer limit 10;
那 return 就好了。然后我可以继续:
select * from h_customer limit 100; -- This works.
select * from h_customer limit 1000; -- This hangs.
“历史记录”视图显示服务器收到带有 'limit 1000' 的查询并正确处理了它。这是 运行 在合理的时间内,历史视图显示正确的 1,000 行。
我可以用其他表和查询重现这一点。这似乎是客户端的大量数据问题。但是 returning 1,000 行应该是微不足道的。我希望它 return 多得多。
Snowflake 将小结果集直接发送到客户端。对于较大的,它会将客户端定向到结果集缓存以下载一个或多个压缩文件。结果集缓存来自云提供商,而不是直接来自 snowflakecomputing.com。
1,000 行是在两者之间切换的一个阈值,而且我已经看到非常宽的表用更少的行做同样的事情。然后,客户端会根据 Snowflake 所在的位置 运行 尝试下载 S3 文件、Azure blob 或 GCS 文件。某些东西阻止了您的 Linux 客户端下载这些文件。
通常是具有状态数据包检测功能的防火墙,例如来自 Palo Alto 或 Cisco。他们有时会解密 HTTPS 流量并丢弃看起来应该是 "snowflakecomputing.com" 但来自 AWS、Azure 或 GCP 的数据包。
也可以是代理服务器。由于它是从浏览器运行的,因此两者获取大型结果集的方式有所不同。浏览器可能配置了代理。您可以为包括 SnowSQL 在内的所有 Snowflake 客户端设置代理 https://docs.snowflake.com/en/user-guide/snowsql-start.html#using-a-proxy-server.
请与您的网络团队联系,看看是否有东西从云提供商或 snowflakecomputing.com 丢弃数据包。