OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

データサイズの確認方法

公開日:
更新日:
基本操作
#サイズ

はじめに

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

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

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

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関数の第一引数を”(空白)にすることで、データベース全体の非圧縮サイズを確認することができます。

SELECT AUDIT('');
    AUDIT
--------------
 198905727742
(1 row)

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

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

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

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関数の第一引数をに「スキーマ名.テーブル名」を指定することで、指定したテーブルの非圧縮サイズを確認することができます。

SELECT AUDIT('public.LINEORDER');

    AUDIT
 -----------
  812352000
 (1 row)

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

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

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

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)

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

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

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%とすると、精度の高いサイズを確認することができます。しかし、マシンリソースを大量に消費するため、本番環境での実行は推奨していません。

SELECT AUDIT('',0,100);

各ノードのステータス

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

dbadmin=> SELECT AUDIT('public.CUSTOMER');
ERROR 4539:  Received no response from v_testdb_node0003 in get node cell counts

参考情報

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 本記事を公開