1. 程式人生 > >Trafodion 如何獲取表的容量

Trafodion 如何獲取表的容量

最近有使用者問到Trafodion如何查看錶的容量(即size),類似於Oracle這樣,

select segment_name, bytes 
from user_segments 
where segment_type = 'TABLE'; 

其實在很久之前,我就寫過一篇文章,是關於“Trafodion get region stats查看錶對應的region詳情”,https://blog.csdn.net/Post_Yuan/article/details/72771795 Trafodion提供了"get region stat"這樣的方法可以檢視Trafodion表的region情況,包括region數、store檔案數、store檔案size等資訊。因此,我們可以通過這種方式獲取表的容量資訊,除此之外,Trafodion還支援一種通過SQL UDF的方式來查詢表的容量資訊。下面我們來具體通過例子來介紹如何查看錶的容量資訊吧~

1 get region stats查看錶容量

如之前的部落格中所介紹,使用以下命令查看錶的region情況,通常以下輸出,可以知道當前表總共有8個region,16個store檔案,store檔案的總size為126877696 bytes,因此可以得到表的容量為121MB。

SQL>get region stats for table DMA_ENTTYPE_STAT;

 
Stats Summary
=============
 
  ObjectName:              TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT
  NumRegions:              8
  RegionsLocation:         /hbase/data/default
  TotalNumStores:          16
  TotalNumStoreFiles:      8
  TotalUncompressedSize:   837812224
  TotalStoreFileSize:      126877696
  TotalMemStoreSize:       0
  TotalReadRequestsCount:  20249624
  TotalWriteRequestsCount: 0
 
Stats Details
=============
 
  RegionServer:       esgzb-del-n005:60020
  RegionNum:          1
  RegionName:         TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967
  NumStores:          2
  NumStoreFiles:      1
  UncompressedSize:   104857600 Bytes
  StoreFileSize:      16777216 Bytes
  MemStoreSize:       0 (less than 1MB)
  ReadRequestsCount:  2531260
  WriteRequestsCount: 0
   
  RegionServer:       esgzb-del-n007:60020
  RegionNum:          2
  RegionName:         TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967
  NumStores:          2
  NumStoreFiles:      1
  UncompressedSize:   104857600 Bytes
  StoreFileSize:      15728640 Bytes
  MemStoreSize:       0 (less than 1MB)
  ReadRequestsCount:  2530316
  WriteRequestsCount: 0
   
  RegionServer:       esgzb-del-n007:60020
  RegionNum:          3
  RegionName:         TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967
  NumStores:          2
  NumStoreFiles:      1
  UncompressedSize:   104857600 Bytes
  StoreFileSize:      15728640 Bytes
  MemStoreSize:       0 (less than 1MB)
  ReadRequestsCount:  2532848
  WriteRequestsCount: 0
   
  RegionServer:       esgzb-del-n007:60020
  RegionNum:          4
  RegionName:         TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967
  NumStores:          2
  NumStoreFiles:      1
  UncompressedSize:   104857600 Bytes
  StoreFileSize:      15728640 Bytes
  MemStoreSize:       0 (less than 1MB)
  ReadRequestsCount:  2530920
  WriteRequestsCount: 0
   
  RegionServer:       esgzb-del-n005:60020
  RegionNum:          5
  RegionName:         TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967
  NumStores:          2
  NumStoreFiles:      1
  UncompressedSize:   104857600 Bytes
  StoreFileSize:      15728640 Bytes
  MemStoreSize:       0 (less than 1MB)
  ReadRequestsCount:  2532544
  WriteRequestsCount: 0
   
  RegionServer:       esgzb-del-n005:60020
  RegionNum:          6
  RegionName:         TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967
  NumStores:          2
  NumStoreFiles:      1
  UncompressedSize:   103809024 Bytes
  StoreFileSize:      15728640 Bytes
  MemStoreSize:       0 (less than 1MB)
  ReadRequestsCount:  2527668
  WriteRequestsCount: 0
   
  RegionServer:       esgzb-del-n006:60020
  RegionNum:          7
  RegionName:         TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967
  NumStores:          2
  NumStoreFiles:      1
  UncompressedSize:   104857600 Bytes
  StoreFileSize:      15728640 Bytes
  MemStoreSize:       0 (less than 1MB)
  ReadRequestsCount:  2534576
  WriteRequestsCount: 0
   
  RegionServer:       esgzb-del-n007:60020
  RegionNum:          8
  RegionName:         TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967
  NumStores:          2
  NumStoreFiles:      1
  UncompressedSize:   104857600 Bytes
  StoreFileSize:      15728640 Bytes
  MemStoreSize:       0 (less than 1MB)
  ReadRequestsCount:  2529492
  WriteRequestsCount: 0
   

--- SQL operation complete.

以上列出了每個region的詳細,如果我們只想看到一個總的情況,可以使用summary方式展示結果如下,

SQL>get region stats for table DMA_ENTTYPE_STAT,summary;

 
Stats Summary
=============
 
  ObjectName:              TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT
  NumRegions:              8
  RegionsLocation:         /hbase/data/default
  TotalNumStores:          16
  TotalNumStoreFiles:      8
  TotalUncompressedSize:   837812224
  TotalStoreFileSize:      126877696
  TotalMemStoreSize:       0
  TotalReadRequestsCount:  20249624
  TotalWriteRequestsCount: 0

--- SQL operation complete.

2 table(region stats()) UDF查看錶容量

上述方法1使用get方式查看錶的region資訊及容量資訊,不屬於標準的SQL方式,這裡我們提供另外一套SQL的方式來查看錶的容量等相關資訊,以下給出示例,

SQL>select * from table(region stats(DMA_ENTTYPE_STAT));

CATALOG_NAME                                                                                                                     SCHEMA_NAME                                                                                                                      OBJECT_NAME                                                                                                                      REGION_SERVER                                                                                                                    REGION_NUM           REGION_NAME                                                                                                                      NUM_STORES  NUM_STORE_FILES STORE_FILE_UNCOMP_SIZE STORE_FILE_SIZE      MEM_STORE_SIZE       READ_REQUESTS_COUNT  WRITE_REQUESTS_COUNT
-------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- -------------------- -------------------------------------------------------------------------------------------------------------------------------- ----------- --------------- ---------------------- -------------------- -------------------- -------------------- --------------------
TRAFODION                                                                                                                                                                                                                                                        DAAS_GX                                                                                                                                                                                                                                                          DMA_ENTTYPE_STAT                                                                                                                                                                                                                                                 esgzb-del-n005:60020                                                                                                                                                                                                                                                                1 TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967                                                                                                                                                                                                                                                                                                                                                                                                                                                                              2               1              104857600             16777216                    0              2531260                    0
TRAFODION                                                                                                                                                                                                                                                        DAAS_GX                                                                                                                                                                                                                                                          DMA_ENTTYPE_STAT                                                                                                                                                                                                                                                 esgzb-del-n007:60020                                                                                                                                                                                                                                                                2 TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967                                                                                                                                                                                                                                                                                                                                                                                                                                                                              2               1              104857600             15728640                    0              2530316                    0
TRAFODION                                                                                                                                                                                                                                                        DAAS_GX                                                                                                                                                                                                                                                          DMA_ENTTYPE_STAT                                                                                                                                                                                                                                                 esgzb-del-n007:60020                                                                                                                                                                                                                                                                3 TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967                                                                                                                                                                                                                                                                                                                                                                                                                                                                              2               1              104857600             15728640                    0              2532848                    0
TRAFODION                                                                                                                                                                                                                                                        DAAS_GX                                                                                                                                                                                                                                                          DMA_ENTTYPE_STAT                                                                                                                                                                                                                                                 esgzb-del-n007:60020                                                                                                                                                                                                                                                                4 TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967                                                                                                                                                                                                                                                                                                                                                                                                                                                                              2               1              104857600             15728640                    0              2530920                    0
TRAFODION                                                                                                                                                                                                                                                        DAAS_GX                                                                                                                                                                                                                                                          DMA_ENTTYPE_STAT                                                                                                                                                                                                                                                 esgzb-del-n005:60020                                                                                                                                                                                                                                                                5 TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967                                                                                                                                                                                                                                                                                                                                                                                                                                                                              2               1              104857600             15728640                    0              2532544                    0
TRAFODION                                                                                                                                                                                                                                                        DAAS_GX                                                                                                                                                                                                                                                          DMA_ENTTYPE_STAT                                                                                                                                                                                                                                                 esgzb-del-n005:60020                                                                                                                                                                                                                                                                6 TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967                                                                                                                                                                                                                                                                                                                                                                                                                                                                              2               1              103809024             15728640                    0              2527668                    0
TRAFODION                                                                                                                                                                                                                                                        DAAS_GX                                                                                                                                                                                                                                                          DMA_ENTTYPE_STAT                                                                                                                                                                                                                                                 esgzb-del-n006:60020                                                                                                                                                                                                                                                                7 TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967                                                                                                                                                                                                                                                                                                                                                                                                                                                                              2               1              104857600             15728640                    0              2534576                    0
TRAFODION                                                                                                                                                                                                                                                        DAAS_GX                                                                                                                                                                                                                                                          DMA_ENTTYPE_STAT                                                                                                                                                                                                                                                 esgzb-del-n007:60020                                                                                                                                                                                                                                                                8 TRAF_1500000:TRAFODION.DAAS_GX.DMA_ENTTYPE_STAT/1533691518967                                                                                                                                                                                                                                                                                                                                                                                                                                                                              2               1              104857600             15728640                    0              2529492                    0

--- 8 row(s) selected.

以下結果顯示了UDF所有的輸出資訊,包括region的詳細資訊,如果我們只是希望獲取表的總容量,可以使用以下語句來實現,其中輸出列STORE_SIZE即表的真實容量大小。

SQL>select sum(store_file_uncomp_size)/1024/1024 AS UNCOMPRESS_SIZE, sum(store_file_size)/1024/1024 AS STORE_SIZE from table(region stats(DAAS_GX.DMA_ENTTYPE_STAT));

UNCOMPRESS_SIZE      STORE_SIZE          
-------------------- --------------------
                 799                  121

--- 1 row(s) selected.

3 檢視固定Schema所有表容量列表

以上兩種方法均是針對單個表的檢視容量方法,如果希望像前面Oracle那種方式可以直接得到某個Schema下所有表的容量的列表,應該如何實現呢? 首先我們肯定是需要通過SQL的方式獲取到某個Schema下所有的表列表,這可以通過以下SQL實現,

SQL>select * from (get tables in schema DAAS_GX, return full names) x(a);

A
--------------------------------------------------------------------------------------------------------------------------------
"TRAFODION"."DAAS_GX"."DMA_ENTTYPE_LIST"                                                                                        
"TRAFODION"."DAAS_GX"."DMA_ENTTYPE_STAT"                                                                                        
"TRAFODION"."DAAS_GX"."DMA_ENTTYPE_STAT_30W_2"                                                                                  
"TRAFODION"."DAAS_GX"."DMA_ENTTYPE_STAT_30W_P8"                                                                                 
"TRAFODION"."DAAS_GX"."DMA_ENTTYPE_STAT_NOPRAT"                                                                                 
"TRAFODION"."DAAS_GX"."DMA_ENTTYPE_STAT_NOPRAT2"                                                                                
"TRAFODION"."DAAS_GX"."DMA_ENTTYPE_STAT_P1"                                                                                     
"TRAFODION"."DAAS_GX"."DMA_ENTTYPE_STAT_P8"                                                                                     
"TRAFODION"."DAAS_GX"."DMA_ENTTYPE_STAT_UPDATE"                                                                                 
"TRAFODION"."DAAS_GX"."SB_HISTOGRAMS"                                                                                           
"TRAFODION"."DAAS_GX"."SB_HISTOGRAM_INTERVALS"                                                                                  
"TRAFODION"."DAAS_GX"."SB_PERSISTENT_SAMPLES"                                                                                   

--- 12 row(s) selected.

其次,結合方法2的UDF與上述語句,我們得到以下語句可以列出固定Schema下所有表的容量列表,

select trim(schema_name) || '.' || trim(object_name),
       sum(store_file_size)/1024/1024 as store_size
from table(region statistics (using (select * from (
   get tables in schema daas_gx, no header, return full names, with namespace) x(a) ))) 
 group by 1 order by 2 desc;

示例輸出如下,

SQL>select trim(schema_name) || '.' || trim(object_name),
+>       sum(store_file_size)/1024/1024 as store_size
+>from table(region statistics (using (select * from (
   get tables in schema daas_gx, no header, return full names, with namespace) x(a) ))) 
 group by 1 order by 2 desc;+>+>

(EXPR)                                                                                                                           STORE_SIZE          
-------------------------------------------------------------------------------------------------------------------------------- --------------------
DAAS_GX.DMA_ENTTYPE_STAT_NOPRAT2                                                                                                                  179
DAAS_GX.DMA_ENTTYPE_STAT_UPDATE                                                                                                                   152
DAAS_GX.DMA_ENTTYPE_STAT_NOPRAT                                                                                                                   128
DAAS_GX.DMA_ENTTYPE_STAT_P1                                                                                                                       126
DAAS_GX.DMA_ENTTYPE_STAT                                                                                                                          121
DAAS_GX.DMA_ENTTYPE_STAT_P8                                                                                                                       115
DAAS_GX.DMA_ENTTYPE_STAT_30W_2                                                                                                                      8
DAAS_GX.DMA_ENTTYPE_STAT_30W_P8                                                                                                                     8
DAAS_GX.SB_HISTOGRAM_INTERVALS                                                                                                                      1
DAAS_GX.SB_PERSISTENT_SAMPLES                                                                                                                       0
DAAS_GX.DMA_ENTTYPE_LIST                                                                                                                            0
DAAS_GX.SB_HISTOGRAMS                                                                                                                               0

--- 12 row(s) selected.