Database-Size

如何獲取 Vertica 數據庫的大小?

  • June 28, 2018

我有一個 Vertica 數據庫。我怎麼知道數據庫有多大?

為了向高層管理人員報告有關我們環境的基本統計數據,我需要一個粗略的答案。

有幾種方法可以獲取數據庫的大小,每種方法都適用於稍微不同的案例。請務必注意,Vertica 以不同的方式使用原始數據和壓縮數據,並且您應該注意您需要的大小。例如,許可基於原始數據大小。

原始尺寸

原始大小對於容量規劃或監控許可證使用率很有用(這是數據在未壓縮時佔用的空間)**。**要獲取整個數據庫的原始數據大小,可以使用該GET_COMPLIANCE_STATUS()函式,也可以查詢系統表v_internal.license_audits

GET_COMPLIANCE_STATUS()函式檢索有關最近審計的資訊。審計估計數據庫的原始數據大小並將資訊儲存在v_internal.license_audits. 預設情況下,審核在每天 23:59 進行,可以配置或手動執行。

這是一些範例輸出:

dbadmin=> SELECT GET_COMPLIANCE_STATUS();
                           GET_COMPLIANCE_STATUS
---------------------------------------------------------------------------------

Raw Data Size: 4.83TB +/- 0.24TB
License Size : 30.00TB
Utilization  : 16%
Audit Time   : 2014-05-11 23:59:49.763799+00
Compliance Status : The database is in compliance with respect to raw data size.

License End Date: 10/30/2014
Days Remaining: 171.18

如果有權限,可以直接查詢license_audits表:

SELECT /*+ label(license_utilization)*/
      audit_start_timestamp, 
      database_size_bytes / ( 1024^3 ) AS database_size_gb, 
      license_size_bytes / ( 1024^3 )  AS license_size_gb, 
      usage_percent 
FROM   v_catalog.license_audits 
ORDER  BY audit_start_timestamp DESC 
LIMIT  30;

此外,如果您希望在架構級別獲得原始數據大小,您可以使用它(來自vertica.tips):

SELECT /*+ label(estimated_raw_size)*/
      pj.anchor_table_schema, 
      pj.used_compressed_gb, 
      pj.used_compressed_gb * la.ratio AS raw_estimate_gb 
FROM   (SELECT ps.anchor_table_schema, 
              SUM(used_bytes) / ( 1024^3 ) AS used_compressed_gb 
       FROM   v_catalog.projections p 
              JOIN v_monitor.projection_storage ps 
                ON ps.projection_id = p.projection_id 
       WHERE  p.is_super_projection = 't' 
       GROUP  BY ps.anchor_table_schema) pj 
      CROSS JOIN (SELECT (SELECT database_size_bytes 
                          FROM   v_catalog.license_audits 
                          ORDER  BY audit_start_timestamp DESC 
                          LIMIT  1) / (SELECT SUM(used_bytes) 
                                       FROM   V_MONITOR.projection_storage) AS ratio) la 
ORDER  BY pj.used_compressed_gb DESC;

壓縮尺寸

壓縮後的大小是磁碟上數據的實際大小。這對於估計磁碟空間使用情況很有用,因為 Vertica 建議始終至少有 40% 的空間可用。column_storage您可以從系統表或projection_storage系統表中獲取壓縮大小。

Usingprojection_storage還將返回任何空表(來自vertica.tips):

SELECT /*+ label(compressed_table_size)*/
      anchor_table_schema, 
      anchor_table_name, 
      SUM(used_bytes) / ( 1024^3 ) AS used_compressed_gb 
FROM   v_monitor.projection_storage 
GROUP  BY anchor_table_schema, 
         anchor_table_name 
ORDER  BY SUM(used_bytes) DESC;

引用自:https://dba.stackexchange.com/questions/65114