如何查询数据库中的历史表的大小在红移来确定数据库大小增长
我想向前伸出我的亚马逊红移表的大小,因为我正打算扩大我的红移簇大小。如何查询数据库中的历史表的大小在红移来确定数据库大小增长
我知道如何查询今天的表格大小(请参阅下面的查询),但是我怎样才能测量我的表格大小随着时间的增长,而无需使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;
没有Amazon Redshift保留的历史表大小信息。您需要定期运行查询,例如问题中的查询。
您可以将查询包装在INSERT
语句中并每周运行一次,并将结果插入表中。这样,您将获得每周每张表的历史表大小信息,您可以使用这些信息来预测未来的增长。
在这种测量之前,值得做一个VACUUM
以从存储中删除已删除的行。
非常感谢约翰先生的回答和你的编辑,现在我可以集中精力使捕获日表大小ETL任务:d,希望这个答案将帮助其他太 –
嗨@MaulanaMalikIbrahim,如果这个或任何答案已解决您的问题请点击复选标记考虑[接受它](http://meta.stackexchange.com/q/5234/179419)。这向更广泛的社区表明,您已经找到了解决方案,并为答复者和您自己提供了一些声誉。没有义务这样做。 –
你是什么意思的用法大小?请编辑您的问题,并提供有关如何获得“今日使用量”的详细信息,以便我们可以查看您正在寻找的信息。 –
如果人们有兴趣创建为这些类型的问题的场所,按照[开StackExchange致力于云计算网站(https://area51.stackexchange.com/proposals/110490/cloud-computing-aws-azure的建议-google-openstack-etc?referrer = Gtut7wQSWPk88jFJz_zqMg2),并对一些示例问题进行投票。 –
@JohnRotenstein,\t 我已经编辑我的问题,先生,希望你和任何人都明白我的意思,并能帮助我:)谢谢 –