Csv SnowSQL的性能非常慢

Csv SnowSQL的性能非常慢,csv,snowflake-cloud-data-platform,Csv,Snowflake Cloud Data Platform,我们正在从一个表中运行一个非常简单的select,它将生成一组大约170万行的数据 我们希望能够将其导出到共享网络驱动器,但文件写入(查询本身运行约3.5秒)的性能非常糟糕,在大约6小时内返回150000行。此时,Okta身份验证超时,必须修改并重新运行查询,以捕获在原始运行中未通过的行 我可以在本地运行它,返回的所有数据集将在大约15分钟内愉快地扑通一声输入到输出csv中 有没有办法让我深入了解一下这里的延误?是否有其他人遇到此问题并能够找到根本原因 谢谢 我应该添加我用作参考的命令: sno

我们正在从一个表中运行一个非常简单的select,它将生成一组大约170万行的数据

我们希望能够将其导出到共享网络驱动器,但文件写入(查询本身运行约3.5秒)的性能非常糟糕,在大约6小时内返回150000行。此时,Okta身份验证超时,必须修改并重新运行查询,以捕获在原始运行中未通过的行

我可以在本地运行它,返回的所有数据集将在大约15分钟内愉快地扑通一声输入到输出csv中

有没有办法让我深入了解一下这里的延误?是否有其他人遇到此问题并能够找到根本原因

谢谢

我应该添加我用作参考的命令:

snowsql-c{connection}-f.\source\u q.sql-o output\u file=c:\users\{username}\desktop\snowsql\output.csv-o quiet=true-o friendly=false-o header=true-o output\u format=csv--authenticator externalbrowser
我运行的查询如下所示:

选择
cnt.id,
cnt.account_id,
cnt.did_c,
cnt.okta_id_c
从…起
会员:联系cnt

为了简单起见,我删除了一些小的where子句。

问题似乎在于写入网络驱动器的速度太慢<代码>c:\users\{username}网络路径正确吗?如果您可以写入本地计算机而没有问题,但是网络路径很慢,那么如果不加快网络速度或使文件变小,很可能无法修复

一件有帮助的事情是在上传到网络驱动器之前压缩文件。一个简单的方法是:

snowsql-c{connection}-f.\source\u q.sql-o-friendly=false-o header=true-o output\u format=csv--authenticator externalbrowser\gzip>c:\users\{username}\desktop\snowsql\output.csv
我删除了将CSV发送到stdout的
-o output_file=…
-o quiet=true
标志,然后在加载到网络位置之前,我首先通过GZIP将其传输

此方法显然会在从Snowflake下载文件后压缩该文件,但理想情况下,您希望在下载之前对其进行压缩。您可以通过以下方式实现:

  • 使用带有
    compression=gzip
    标志的命令,将数据复制到指定内部阶段的文件中
  • 使用SNOWSQL运行命令将文件下载到网络位置

  • 最后一个选项可能是最快的方式,但是它会在内部阶段生成多个文件,因此您必须下载每个文件。无论采用哪种方式,压缩数据都会带来相当显著的改进。当我对一个有150000条记录的表进行测试时,我的文件大小从24MB变为9MB。

    尝试增加线程数量。
    将其设置为最大99

    您是否调整了rowset_size参数?可能数据是以小块的形式下载的。在这种情况下,复制可能需要更长的时间,因为您可能希望将数据导出为单个文件,但总体速度肯定会更快,占用的网络带宽也会更少,这几乎可以肯定是帐篷中的长柱。哦,是的,哇!忘记了它是如何卸载到多个文件的。更新了我的答案。你好!我很抱歉在我的答复中耽搁了很长时间-我非常感谢解决方案的建议!我今天会调查他们,看看我是否能有更好的表现。在手之前压缩文件是一个很好的建议,我认为我们在使用从Snowflake到S3的拷贝时实现了类似的过程——我还在学习,但这很好。