如何在Redshift中查询数据库的历史表大小以确定数据库大小增长

时间:2017-07-06 11:24:02

标签: amazon-web-services amazon-redshift

我希望预测我的Amazon Redshift表的大小,因为我计划扩展我的Redshift群集大小。

我知道如何查询今天的表大小(请参阅下面的查询)但是如何衡量我的表大小随时间的增长而不使ETL作业每天制作快照表大小?

-- Capture table sizes
select
    trim(pgdb.datname) as Database,
    trim(pgn.nspname) as Schema,
    trim(a.name) as Table,
    b.mbytes,
    a.rows
from (
    select db_id, id, name, sum(rows) as rows
    from stv_tbl_perm a
    group by db_id, id, name
) as a
join pg_class as pgc on pgc.oid = a.id
join pg_namespace as pgn on pgn.oid = pgc.relnamespace
join pg_database as pgdb on pgdb.oid = a.db_id
join (
    select tbl, count(*) as mbytes
    from stv_blocklist
    group by tbl
) b on a.id = b.tbl
order by mbytes desc, a.db_id, a.name;

1 个答案:

答案 0 :(得分:0)

Amazon Redshift没有保留历史表格大小信息。您需要定期运行查询,例如问题中的查询。

您可以将查询包装在INSERT语句中并每周运行一次,将结果插入表中。这样,您每周都可以获得每张表的历史表格大小信息,以便预测未来的增长。

在此类测量之前进行VACUUM是值得的,以便从存储中删除已删除的行。