はじめに

Verticaはデータ・ロード後は、圧縮された状態でデータを格納しますが、圧縮されたサイズだけでなく、非圧縮状態のサイズを確認したいケースもあります。本記事では、システムテーブルのprojection_storageやdisk_storage、AUDIT関数を使った確認方法をご紹介します。

データベース全体のサイズ(圧縮済み)

データベース全体のサイズを確認するために、以下のクエリを使います。
この結果では、各ノードのデータ領域とカタログ領域のサイズが確認できます。ファイルシステム上のサイズを返しますので、カタログ領域やデータ領域にデータベース以外のファイルを保存している場合は、それらのサイズも含まれる点に注意が必要です。


データベース全体のサイズ(非圧縮)

実際に格納されたデータサイズ(非圧縮)については、実測値ではなくサンプルデータから算出した近似値を確認することができます。AUDIT関数の第一引数を”(空白)にすることで、データベース全体の非圧縮サイズを確認することができます。


関連情報
ライセンスで許容されているデータ量と現在のデータ量の確認

テーブルのサイズ(圧縮済み)

実際に格納されたデータサイズ(圧縮済み)のテーブルサイズを確認する方法です。
このクエリでは、各テーブルデータの圧縮されたサイズを確認することができます。また、1つのテーブルに複数のプロジェクションが存在する場合、複数のプロジェクションの合計サイズが含まれます。例えば、クエリスペシフィックプロジェクションを追加すると、スーパープロジェクションとクエリスペシフィックプロジェクションの両方のサイズの合計値が算出されます。



関連情報
各テーブルごとのサイズを確認する方法

テーブルのサイズ(非圧縮)

実際に格納されたデータサイズ(非圧縮)については、実測値ではなくサンプルデータから算出した近似値を確認することができます。AUDIT関数の第一引数をに「スキーマ名.テーブル名」を指定することで、指定したテーブルの非圧縮サイズを確認することができます。


関連情報
各テーブルのサイズ(非圧縮)を一覧で表示する方法

プロジェクションのサイズ(圧縮済み)

各プロジェクションのサイズを確認するには、以下のクエリを使います。


ノード別のサイズ(圧縮済み)

各ノードのデータサイズを確認するには、以下のクエリを使います。


注意事項

許容誤差率と信頼値の指定

AUDIT関数の引数に、以下のように許容誤差率(error‑tolerance)を0%、信頼値(confidence‑level)を100%とすると、精度の高いサイズを確認することができます。しかし、マシンリソースを大量に消費するため、本番環境での実行は推奨していません。


各ノードのステータス

AUDIT関数を実行する時は、複数ノード構成の場合は全ノードが起動している必要があります。いずれかのノードが停止している場合は、エラーが発生します。スクリプト等で定期的に実行している場合は、ご注意ください。


参考情報

PROJECTION_STORAGE
https://www.vertica.com/docs/11.0.x/HTML/Content/Authoring/SQLReferenceManual/SystemTables/MONITOR/PROJECTION_STORAGE.htm

DISK_STORAGE
https://www.vertica.com/docs/11.0.x/HTML/Content/Authoring/SQLReferenceManual/SystemTables/MONITOR/DISK_STORAGE.htm

AUDIT
https://www.vertica.com/docs/11.0.x/HTML/Content/Authoring/SQLReferenceManual/Functions/VerticaFunctions/LicenseManagement/AUDIT.htm

検証バージョンについて

この記事の内容はVertica 11.0で確認しています。

更新履歴

2022/04/22 バージョン11.0用に改訂、全体的に体裁を修正、注意事項、参考情報の項目を追加
2021/05/25 「テーブルのサイズ(非圧縮)」の関連情報を追加
2019/03/08 本記事を公開