ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
**为什么要查询表数据量:** 在做数据仓库管理时,数据导入hive或向表生成数据后形成的数据资产,表里的数据量和占用存储空间是总要的元数据属性。为方便数据使用时对数据有基本的了解,需要对表的数据量做统计。 <br/> 查询表数据量的方式有如下几种: **1. 使用 `analyze table` 主动生成元数据信息** ```sql 语法: analyze table tableName [partition(column[='value'])] compute statistics; 示例: hive> analyze table login compute statistics; [numFiles=1, 该表对应的文件数量 numRows=1410073, 表的总行数,等同于用select count(1) from login进行统计 totalSize=43342833, 数据需要的总存储空间,单位为byte 如果采用压缩格式存储(如orc等),一般会小于rawDataSize rawDataSize=41932760 原始数据的总大小,单位为byte ] ``` **2. 使用`desc extended tableName`** ```sql hive> desc extended login; parameters:{totalSize=43342833, numRows=1410073, rawDataSize=41932760, numFiles=1, ``` **3. 使用 `show create table tableName` 查看** ```sql hive> desc extended login; TBLPROPERTIES ( 'COLUMN_STATS_ACCURATE'='true', 'numFiles'='1', 'numRows'='1410073', 'rawDataSize'='41932760', 'totalSize'='43342833', 'transient_lastDdlTime'='1622148758') ``` **4. `show tblproperties tableName(attrName)`可以查看单个属性** ```sql hive> show tblproperties login("rawDataSize"); 41932760 hive> show tblproperties login("totalSize"); 43342833 hive> show tblproperties login("numRows"); 1410073 ``` **5. 使用 `explain select * from tableName`** ```sql hive> explain select * from login; OK STAGE DEPENDENCIES: Stage-0 is a root stage STAGE PLANS: Stage: Stage-0 Fetch Operator limit: -1 Processor Tree: TableScan alias: login Statistics: Num rows: 1410073 Data size: 41932760 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: user_id (type: string), login_time (type: string) outputColumnNames: _col0, _col1 Statistics: Num rows: 1410073 Data size: 41932760 Basic stats: COMPLETE Column stats: NONE ListSink ``` **6. 使用shell 命令查看表存储文件大小** ```shell ```