我希望预测我的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;
答案 0 :(得分:0)
Amazon Redshift没有保留历史表格大小信息。您需要定期运行查询,例如问题中的查询。
您可以将查询包装在INSERT
语句中并每周运行一次,将结果插入表中。这样,您每周都可以获得每张表的历史表格大小信息,以便预测未来的增长。
在此类测量之前进行VACUUM
是值得的,以便从存储中删除已删除的行。