Verticaデータベースがあります。データベースの大きさを確認するにはどうすればよいですか?
私たちの環境に関する基本的な統計を上層部に報告するために、大まかな答えが必要です。
データベースのサイズを取得する方法はいくつかあり、それぞれわずかに異なる使用例に適しています。 Verticaはrawとcompressedデータを異なる方法で使用し、必要なサイズを意識する必要があることに注意することが重要です。 。たとえば、ライセンスはrawデータサイズに基づいています。
rawサイズは、容量計画またはライセンス使用率の監視に役立ちます(圧縮されていない場合にデータが占めるスペースです)。データベース全体の生データサイズを取得するには、 GET_COMPLIANCE_STATUS()
関数を使用するか、システムテーブル_v_internal.license_audits
_をクエリします。
GET_COMPLIANCE_STATUS()
関数は、最新の監査に関する情報を取得します。 An audit は、データベースの未加工データサイズを見積もり、情報を_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;
_
さらに、スキーマレベルで生データのサイズを取得する場合は、これを使用できます(from 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;
_
compressedサイズは、ディスク上のデータの実際のサイズです。 Verticaは常に少なくとも40%の領域が利用可能であることを推奨しているため、これはディスク領域の使用量を推定するのに役立ちます。 _column_storage
_または_projection_storage
_システムテーブルから圧縮サイズを取得できます。
_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;
_
以下のクエリを使用すると、テーブルの正確なサイズを vertica で取得できます。
SELECT anchor_table_schema,
anchor_table_name,
SUM(used_bytes) / (1024/1024/1024/1024) AS TABLE_SIZE_GB
FROM v_monitor.projection_storage
GROUP BY anchor_table_schema,
anchor_table_name
order by sum(used_bytes) desc;
以下で説明します:
https://www.orahow.com/2018/06/how-to-check-size-of-tables-in-vertica.html
最近の更新で、v_catalog.licensing_auditsの値が定数「vertica」から、Regular、Flex、Totalの3つの異なる値に変更されました。元のクエリで適切な結果が得られない場合は、以下を試してください。
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
WHERE audited_data = 'Regular'
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;