Snowflake cloud data platform 以雪花为单位的查询结果大小

Snowflake cloud data platform 以雪花为单位的查询结果大小,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,有没有办法知道Snowflake中的查询响应大小 例如,在BigQuery中,我们从BigQuery在查询作业中创建的时态表中获取大小 谢谢 运行查询后,您始终可以引用其缓存的结果。您只需要知道查询id并扫描其结果。然后,您可以通过选择任何方法来测量这些结果的大小——例如,对所有列进行json编码的长度 代码: -- run a query then get its id set last_query_id = (select last_query_id()); select sum(len

有没有办法知道Snowflake中的查询响应大小

例如,在BigQuery中,我们从BigQuery在查询作业中创建的时态表中获取大小


谢谢

运行查询后,您始终可以引用其缓存的结果。您只需要知道查询id并扫描其结果。然后,您可以通过选择任何方法来测量这些结果的大小——例如,对所有列进行json编码的长度

代码:

-- run a query then get its id

set last_query_id = (select last_query_id());

select sum(length(to_json(object_construct(a.*)))) table_encoded_size
from table(result_scan($last_query_id)) a;


为什么不使用临时表呢?出于兴趣,您为什么想知道这些信息?是的,临时表将允许我们有更多时间的数据,但问题是它们不会在一段时间后自动删除,对吗?我们需要它用于一个特定的用例:最重要的要求是响应到浏览器应用程序,我们希望将响应限制在每个请求100MB左右,例如OK-但是在这种情况下,雪花中的大小信息都不会帮助您。Snowflake中的数据被严重压缩,并且大小信息是用于压缩数据的-如果您将该数据发送到web应用程序,那么它显然将被反压缩谢谢Felipe!我很高兴它成功了@oleurud。请将此答案标记为已接受,作为它对您有效的标记:嗨,Felipe,我必须向链中添加一个对象构造函数以使其有效:它将是:选择sumlengthto\u jsonobject\u constructa.*tableresult\u scan$last\u query\u id a中的表编码大小;谢谢分享这个提示@juanra!这个查询使用了我拥有的数据,我很高兴你找到了一个好的解决方案,但它不想分享我们的最终结果。当我们使用1.5GB表时,使用结果扫描解决方案,我们会得到以下结果:从大表中选择*或第一次命中缓存。结果\u扫描查询:34个seg使用临时表返回1.599.524.104字节:创建临时表XX作为从大\u表中选择*的值:29个seg并从其中选择字节\u名称='XX':600毫秒2.353.437.184字节。正如您所看到的,在所需的时间和大小结果上存在一些差异。根据您的案例要求,其中一个可能更好