目次
はじめに
Verticaはデータ・ロード後は、圧縮された状態でデータを格納しますが、圧縮されたサイズだけでなく、非圧縮状態のサイズを確認したいケースもあります。本記事では、システムテーブルのprojection_storageやdisk_storage、AUDIT関数を使った確認方法をご紹介します。データベース全体のサイズ(圧縮済み)
データベース全体のサイズを確認するために、以下のクエリを使います。この結果では、各ノードのデータ領域とカタログ領域のサイズが確認できます。ファイルシステム上のサイズを返しますので、カタログ領域やデータ領域にデータベース以外のファイルを保存している場合は、それらのサイズも含まれる点に注意が必要です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
SELECT node_name, storage_path, storage_usage, disk_space_used_mb / 1024 as disk_space_used_gb, disk_space_free_mb / 1024 as disk_space_free_gb, disk_space_free_percent FROM disk_storage ; node_name | storage_path | storage_usage | disk_space_used_gb | disk_space_free_gb | disk_space_free_percent -----------------+------------------------------------------------------------+---------------+------------------------+------------------------+------------------------- v_ssbm_node0001 | /home/dbadmin/catalog/ssbm/v_ssbm_node0001_catalog/Catalog | CATALOG | 571.363281250000000000 | 226.981445312500000000 | 28% v_ssbm_node0001 | /data/ssbm/v_ssbm_node0001_data | DATA,TEMP | 571.363281250000000000 | 226.981445312500000000 | 28% v_ssbm_node0002 | /home/dbadmin/catalog/ssbm/v_ssbm_node0002_catalog/Catalog | CATALOG | 479.168945312500000000 | 312.660156250000000000 | 39% v_ssbm_node0002 | /data/ssbm/v_ssbm_node0002_data | DATA,TEMP | 479.168945312500000000 | 312.660156250000000000 | 39% v_ssbm_node0003 | /home/dbadmin/catalog/ssbm/v_ssbm_node0003_catalog/Catalog | CATALOG | 227.467773437500000000 | 564.361328125000000000 | 71% v_ssbm_node0003 | /data/ssbm/v_ssbm_node0003_data | DATA,TEMP | 227.467773437500000000 | 564.361328125000000000 | 71% (6 rows) |
データベース全体のサイズ(非圧縮)
実際に格納されたデータサイズ(非圧縮)については、実測値ではなくサンプルデータから算出した近似値を確認することができます。AUDIT関数の第一引数を”(空白)にすることで、データベース全体の非圧縮サイズを確認することができます。
1 2 3 4 5 |
SELECT AUDIT(''); AUDIT -------------- 198905727742 (1 row) |
関連情報
ライセンスで許容されているデータ量と現在のデータ量の確認
テーブルのサイズ(圧縮済み)
実際に格納されたデータサイズ(圧縮済み)のテーブルサイズを確認する方法です。このクエリでは、各テーブルデータの圧縮されたサイズを確認することができます。また、1つのテーブルに複数のプロジェクションが存在する場合、複数のプロジェクションの合計サイズが含まれます。例えば、クエリスペシフィックプロジェクションを追加すると、スーパープロジェクションとクエリスペシフィックプロジェクションの両方のサイズの合計値が算出されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
SELECT 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; anchor_table_schema | anchor_table_name | used_compressed_gb ---------------------+-------------------+---------------------- public | lineorder | 3.542380457744 public | customer | 0.031043347902596 public | part | 0.0279258582741022 public | supplier | 0.00211881380528212 public | date1 | 6.86701387166977e-05 public | t1 | 9.49949026107788e-08 public | date2 | 0 (7 rows) |
関連情報
各テーブルごとのサイズを確認する方法
テーブルのサイズ(非圧縮)
実際に格納されたデータサイズ(非圧縮)については、実測値ではなくサンプルデータから算出した近似値を確認することができます。AUDIT関数の第一引数をに「スキーマ名.テーブル名」を指定することで、指定したテーブルの非圧縮サイズを確認することができます。
1 2 3 4 5 6 |
SELECT AUDIT('public.LINEORDER'); AUDIT ----------- 812352000 (1 row) |
プロジェクションのサイズ(圧縮済み)
各プロジェクションのサイズを確認するには、以下のクエリを使います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
SELECT node_name, projection_schema, projection_name, anchor_table_name, used_bytes FROM v_monitor.projection_storage ORDER BY 3, 1 ; node_name | projection_schema | projection_name | anchor_table_name | used_bytes -----------------+-------------------+-------------------------------------------+-------------------+------------ v_ssbm_node0001 | public | customer_DBD_1_rep_test_20190107_2_v1 | customer | 11110847 v_ssbm_node0002 | public | customer_DBD_1_rep_test_20190107_2_v1 | customer | 11110847 v_ssbm_node0003 | public | customer_DBD_1_rep_test_20190107_2_v1 | customer | 11110847 v_ssbm_node0001 | public | date1_DBD_3_rep_test_20190225 | date1 | 237 v_ssbm_node0002 | public | date1_DBD_3_rep_test_20190225 | date1 | 237 v_ssbm_node0003 | public | date1_DBD_3_rep_test_20190225 | date1 | 237 v_ssbm_node0001 | public | date1_DBD_5_rep_test_20190107_2_v1 | date1 | 24341 v_ssbm_node0002 | public | date1_DBD_5_rep_test_20190107_2_v1 | date1 | 24341 v_ssbm_node0003 | public | date1_DBD_5_rep_test_20190107_2_v1 | date1 | 24341 v_ssbm_node0001 | public | date2_b0 | date2 | 0 v_ssbm_node0002 | public | date2_b0 | date2 | 0 v_ssbm_node0003 | public | date2_b0 | date2 | 0 v_ssbm_node0001 | public | date2_b1 | date2 | 0 v_ssbm_node0002 | public | date2_b1 | date2 | 0 v_ssbm_node0003 | public | date2_b1 | date2 | 0 v_ssbm_node0001 | public | lineorder_DBD_1_seg_test_20190225_b0 | lineorder | 127957537 v_ssbm_node0002 | public | lineorder_DBD_1_seg_test_20190225_b0 | lineorder | 127214159 v_ssbm_node0003 | public | lineorder_DBD_1_seg_test_20190225_b0 | lineorder | 127955365 v_ssbm_node0001 | public | lineorder_DBD_1_seg_test_20190225_b1 | lineorder | 127955365 v_ssbm_node0002 | public | lineorder_DBD_1_seg_test_20190225_b1 | lineorder | 127957537 v_ssbm_node0003 | public | lineorder_DBD_1_seg_test_20190225_b1 | lineorder | 127214159 v_ssbm_node0001 | public | lineorder_DBD_2_seg_test_20190107_2_v1_b0 | lineorder | 506329420 v_ssbm_node0002 | public | lineorder_DBD_2_seg_test_20190107_2_v1_b0 | lineorder | 506326834 v_ssbm_node0003 | public | lineorder_DBD_2_seg_test_20190107_2_v1_b0 | lineorder | 506017712 v_ssbm_node0001 | public | lineorder_DBD_2_seg_test_20190107_2_v1_b1 | lineorder | 506017712 v_ssbm_node0002 | public | lineorder_DBD_2_seg_test_20190107_2_v1_b1 | lineorder | 506329420 v_ssbm_node0003 | public | lineorder_DBD_2_seg_test_20190107_2_v1_b1 | lineorder | 506326834 v_ssbm_node0001 | public | part_DBD_3_seg_test_20190107_2_v1_b0 | part | 4998844 v_ssbm_node0002 | public | part_DBD_3_seg_test_20190107_2_v1_b0 | part | 4998215 v_ssbm_node0003 | public | part_DBD_3_seg_test_20190107_2_v1_b0 | part | 4995522 v_ssbm_node0001 | public | part_DBD_3_seg_test_20190107_2_v1_b1 | part | 4995522 v_ssbm_node0002 | public | part_DBD_3_seg_test_20190107_2_v1_b1 | part | 4998844 v_ssbm_node0003 | public | part_DBD_3_seg_test_20190107_2_v1_b1 | part | 4998215 v_ssbm_node0001 | public | supplier_DBD_2_rep_test_20190225 | supplier | 43303 v_ssbm_node0002 | public | supplier_DBD_2_rep_test_20190225 | supplier | 43303 v_ssbm_node0003 | public | supplier_DBD_2_rep_test_20190225 | supplier | 43303 v_ssbm_node0001 | public | supplier_DBD_4_rep_test_20190107_2_v1 | supplier | 715050 v_ssbm_node0002 | public | supplier_DBD_4_rep_test_20190107_2_v1 | supplier | 715050 v_ssbm_node0003 | public | supplier_DBD_4_rep_test_20190107_2_v1 | supplier | 715050 v_ssbm_node0001 | public | t1_DBD_6_seg_test_20190107_2_b0 | t1 | 0 v_ssbm_node0002 | public | t1_DBD_6_seg_test_20190107_2_b0 | t1 | 51 v_ssbm_node0003 | public | t1_DBD_6_seg_test_20190107_2_b0 | t1 | 0 v_ssbm_node0001 | public | t1_DBD_6_seg_test_20190107_2_b1 | t1 | 0 v_ssbm_node0002 | public | t1_DBD_6_seg_test_20190107_2_b1 | t1 | 0 v_ssbm_node0003 | public | t1_DBD_6_seg_test_20190107_2_b1 | t1 | 51 (45 rows) |
ノード別のサイズ(圧縮済み)
各ノードのデータサイズを確認するには、以下のクエリを使います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
SELECT node_name, SUM(used_bytes)/(1024^3) AS used_compressed_gb FROM v_monitor.projection_storage GROUP BY node_name ORDER BY node_name ; node_name | used_compressed_gb -----------------+-------------------- v_ssbm_node0001 | 1.20154412277043 v_ssbm_node0002 | 1.20114426873624 v_ssbm_node0003 | 1.20084885135293 (3 rows) |
注意事項
許容誤差率と信頼値の指定
AUDIT関数の引数に、以下のように許容誤差率(error‑tolerance)を0%、信頼値(confidence‑level)を100%とすると、精度の高いサイズを確認することができます。しかし、マシンリソースを大量に消費するため、本番環境での実行は推奨していません。
1 |
SELECT AUDIT('',0,100); |
各ノードのステータス
AUDIT関数を実行する時は、複数ノード構成の場合は全ノードが起動している必要があります。いずれかのノードが停止している場合は、エラーが発生します。スクリプト等で定期的に実行している場合は、ご注意ください。
1 2 |
dbadmin=> SELECT AUDIT('public.CUSTOMER'); ERROR 4539: Received no response from v_testdb_node0003 in get node cell counts |
参考情報
PROJECTION_STORAGEhttps://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 本記事を公開