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()) 查看表容量

上述方法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+mem_store_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+mem_store_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.

4 table(cluster stats())查看全库所有表容量

上述3可以获取一个Schema下面所有表的容量信息,如果要获取束个库的所有表容量信息,我们可以使用下面这个语句,

select trim(schema_name) || '.' || trim(object_name),
       sum(store_file_size+mem_store_size)/1024/1024 as store_size
from table(cluster stats()) 
 group by 1 order by 2 desc;

当然,有了此方式之后,我们可以通过添加筛选条件进一步得到某个Schema或某个表的信息,此种方式比以上方法都更简单化。
如获取某个schema的容量信息如下,

select trim(schema_name) || '.' || trim(object_name),
       sum(store_file_size+mem_store_size)/1024/1024 as store_size
from table(cluster stats()) 
where schema_name='DAAS_GX'
 group by 1 order by 2 desc;

如获取某个table的容量信息如下,

select trim(schema_name) || '.' || trim(object_name),
       sum(store_file_size+mem_store_size)/1024/1024 as store_size
from table(cluster stats()) 
where schema_name='DAAS_GX' and object_name='DMA_ENTTYPE_STAT_NOPRAT'
 group by 1 order by 2 desc;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据源的港湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值