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.