如何区分Hive schema中的普通view与materialized view(物化视图)
Hive区分普通视图与物化视图的可行方法
方法1:查询系统元数据表(适用Hive 2.3及以上版本)
直接查询Hive内置的sys库元数据,可以批量统计指定schema下所有视图的类型:
SELECT t.tbl_name AS view_name, t.tbl_type AS view_type FROM sys.tbls t JOIN sys.dbs d ON t.db_id = d.db_id WHERE d.name = '替换为你的schema名称' AND t.tbl_type IN ('VIRTUAL_VIEW', 'MATERIALIZED_VIEW');
- 返回结果中
view_type为VIRTUAL_VIEW的是普通视图,为MATERIALIZED_VIEW的是物化视图。
方法2:使用DESCRIBE命令查询单视图类型(全版本通用)
对已知名称的单个视图执行格式化描述命令,查看输出中的表类型字段即可判断:
DESCRIBE FORMATTED 替换为你的视图名称;
在输出结果中查找Table Type行:
- 普通视图对应值为
VIRTUAL_VIEW - 物化视图对应值为
MATERIALIZED_VIEW
方法3:使用SHOW命令批量筛选(适用Hive 3.0及以上版本)
Hive 3.0开始原生支持直接查询指定schema下的所有物化视图:
SHOW MATERIALIZED VIEWS IN 替换为你的schema名称;
执行后返回的列表就是当前schema下的所有物化视图,剩余的其他视图均为普通视图。
内容的提问来源于stack exchange,提问作者PRATEEK SINHA
相关产品推荐
相关产品推荐

