首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从红移频谱获取"Disk Full“错误

从红移频谱获取"Disk Full“错误
EN

Stack Overflow用户
提问于 2019-06-26 17:47:26
回答 1查看 651关注 0票数 0

我面临着在红移频谱上频繁Disk Full error的问题,因此,我不得不反复扩容集群。缓存似乎会被删除。

理想情况下,我希望向上扩展以保持缓存,并找到一种方法来了解查询需要多少磁盘空间。

有没有什么文档谈到了红移频谱的缓存,或者他们正在使用相同的机制来进行红移?

编辑:应Jon Scott的要求,我正在更新我的问题

代码语言:javascript
复制
SELECT p.postcode,
         SUM(p.like_count),
         COUNT(l.id)
FROM post AS p
INNER JOIN likes AS l
    ON l.postcode = p.postcode
GROUP BY 1;

S3上压缩的数据总量约为1.8 TB。雅典娜花了10分钟扫描了700G然后告诉我Query exhausted resources at this scale factor

编辑2:我使用了一个16 TB的SSD集群。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-28 00:06:47

您没有提到正在使用的Redshift集群的大小,但简单的答案是使用更大的Redshift集群(更多的节点)或使用更大的节点类型(每个节点更多的磁盘)。

这个问题的发生是因为红移频谱无法将完整的连接执行向下推送到频谱层。大部分数据被返回到Redshift集群,只是为了执行连接。

您还可以重新构造查询,以便可以将更多的工作下推到Spectrum,在这种情况下,可以在连接之前进行分组和计数。如果每个子查询输出的总行数比连接返回的行数少得多,这将是最有效的。

代码语言:javascript
复制
SELECT p.postcode
     , p.like_count
     , l.like_ids
FROM (--Summarize post data
      SELECT p.postcode
           , SUM(p.like_count)
      FROM post AS p 
      GROUP BY 1
     ) AS p
INNER JOIN (--Summarize likes data
            SELECT l.postcode
                 , COUNT(l.id) like_ids
            FROM likes AS l 
            GROUP BY 1
          ) AS l
    -- Join pre-summarized data only
    ON l.postcode = p.postcode
;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56769811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档