gpt4 book ai didi

snowflake-cloud-data-platform - Snowflake 中的大表问题

转载 作者:行者123 更新时间:2023-12-05 03:31:17 25 4
gpt4 key购买 nike

我有大约 2.2 GB 数据的大表。当我使用 SELECT * 选择表中的一行时,运行大约需要 14 分钟。有没有办法加快这个查询?

以下是一些可能有用的其他信息:

  • ~ 200 万行
  • ~ 25k 列
  • 数据类型:Varcar
  • 仓库:尺寸:电脑_WH集群:最小值:1,最大值:2自动暂停:10分钟所有者:ACCOUNTADMIN

最佳答案

2gb 并没有那么大,而且在 X-SMALL 仓库上不应该占用 14m。

Snowflake 的第一条规则,不要 SELECT * FROM x,有两个原因,

  • 查询编译必须等待为所有分区加载所有元数据,然后才能开始构建计划,因为某些分区可能比第一个分区具有更多数据。因此,在一切都已知之前无法计划输出形状。
  • 第二个原因,当您“选择所有列”时,所有列都是从磁盘加载的,如果您的数据是非结构化的,则 JSON 必须重建所有这些数据,这“相对昂贵”。您应该命名您想要的列,并且只命名您想要的列。

如果你想连接到另一个表来做一些过滤,只需选择需要做过滤的列,然后连接,然后得到你想要的键集,并重新连接到那些上的基表结果(有时作为第二个查询),因此可以进行修剪。

唉,我刚刚看了你的统计数据有点难 25K 列......唉。这不是数据库,这是非常痛苦的事情..

作为一个强烈的意见,你不可能拥有一行数据,而这行数据对于具有 25K 相关且有意义的完整列来说是有意义的。您有一个带有主键的表,每个属性应该有大约 25K 行的子类型数据。是的,这意味着您必须通过 PIVOT 或类似方式分解数据,但它更诚实地说明数据中存在的关系,以及如何处理这一数据量。

关于snowflake-cloud-data-platform - Snowflake 中的大表问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70688187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com