Database-Size
如何獲取 Vertica 數據庫的大小?
我有一個 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
系統表中獲取壓縮大小。Using
projection_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;