使用sparl sql 统计hive中fdp库下表名开头为db_的表数据量
时间: 2024-03-12 09:46:31 浏览: 120
您可以使用如下的 SQL 语句来统计 Hive 中 FDP 数据库中表名开头为 db_ 的表的数据量:
```
SELECT table_name, tbl_rows
FROM (
SELECT tbl_name AS table_name,
SUM(totalRows) AS tbl_rows
FROM (
SELECT tbl_name, input_file_block_length AS totalRows
FROM hive_metastore.`TBLS` t
JOIN hive_metastore.`DBS` d ON t.`DB_ID` = d.`DB_ID`
JOIN hive_metastore.`SDS` s ON t.`SD_ID` = s.`SD_ID`
JOIN hive_metastore.`BUCKETING_COLS` b ON t.`TBL_ID` = b.`TBL_ID`
WHERE d.`NAME` = 'fdp'
AND tbl_name LIKE 'db_%'
) subq1
GROUP BY tbl_name
) subq2
```
其中,`hive_metastore` 是 Hive 中用于存储元数据的数据库,包含了 Hive 中所有的表、分区、列等信息。`TBLS` 表、`DBS` 表、`SDS` 表和 `BUCKETING_COLS` 表则分别存储了表的基本信息、数据库的基本信息、表的存储信息和表的分桶信息。通过这些表,我们可以查询到 FDP 数据库中所有表的信息。
具体地,上述 SQL 语句中,我们首先查询到 FDP 数据库中所有表名开头为 db_ 的表的文件大小(即 `input_file_block_length`),然后将它们汇总到每个表上,最后得到每个表的总数据量(即 `tbl_rows`)。
阅读全文