Amazon web services AWS红移-如何查找群集上计数达到限制的所有表?

Amazon web services AWS红移-如何查找群集上计数达到限制的所有表?,amazon-web-services,amazon-redshift,limit,quota,Amazon Web Services,Amazon Redshift,Limit,Quota,定义“大型群集节点类型的表为9900”的限制 集群中已达到该限制 SQL ERROR [500310] [XX000]: [Amazon](500310) Invalid operation: 1040 Details: Maximum tables limit exceeded. The maximum number of tables per cluster is 9900 for this instance type. The limit includes permanent and te

定义“大型群集节点类型的表为9900”的限制

集群中已达到该限制

SQL ERROR [500310] [XX000]: [Amazon](500310) Invalid operation: 1040
Details:
Maximum tables limit exceeded. The maximum number of tables per cluster is 9900 for this instance type. The limit includes permanent and temporary tables. (pid: xxxxx)
为了知道我们是否会在集群中再次遇到这个问题,DevOps希望设置一个警报,但我们无法找到一个简单的查询来标识所有计入该限制的表

我们得到的最接近于此查询:

总共返回了
8825
。我们在
1075
之外

临时表也很重要,但在抛出异常时,我们甚至没有接近超过1000个临时表


还有其他不包括连接到集群的每个数据库以统计表的想法吗?

如文件所述,
SVV\u DISKUSAGE
视图只统计永久表;它不计算事务中创建的临时表。跟踪事务期间创建的临时表

或者,
count(不同的表)
from

但是,您真的希望不断执行查询以跟踪集群中的表数吗?特别是考虑到临时表将取决于活动事务的数量,这似乎是错误的方法


相反,我将查看
TotalTableCount
。在这一点上创建警报也会更容易。需要注意的是,您可能需要提醒,比如说,95%,因为度量可能具有较低的分辨率。

附带问题:为什么有这么多表?就模式而言,每个表真的是唯一的吗?@JohnRotenstein说,由于数据量很大,所以有很多表。不,表在模式方面并不是唯一的,但是分割数据带来了显著的好处,尽管不符合建议。这很有趣。从理论上讲,只要
SORTKEY
包含在
WHERE
语句中,良好地使用
SORTKEY
应该可以使表非常高效,即使有数十亿行。这允许红移“跳过”不包含相关数据的磁盘块。从CW度量返回的计数是最好的方法。不完美,但非常接近我们的需求。谢谢
SELECT COUNT(DISTINCT d.tbl) FROM svv_diskusage d;