简体   繁体   English

Hive 查询 - 获取给定表名称的所有视图名称的列表

[英]Hive query - Get list of all View Names for given Table Name

Is there a way to query and fetch list of all View Names for a given Hive Table?有没有办法查询和获取给定 Hive 表的所有视图名称的列表?

If we created three Views for the table.如果我们为表创建三个视图。 Given Table name as CRICKET_STATS, how to get output as,给定表名为 CRICKET_STATS,如何获得 output,

CRICKET_AUS_VW 
CRICKET_SA_VW
CRICKET_IND_VW

HIVE DDL SCRIPT HIVE DDL 脚本

CREATE TABLE CRICKET_STATS (COUNTRY_CODE STRING, NO_OF_MATCHES INT, MATCHES_WON INT, MATCHES_LOST INT) stored as orc
location '/tmp/hive-temp-tables/CRICKET_STATS'
tblproperties ('orc.compress.size'='8192');

CREATE VIEW IF NOT EXISTS CRICKET_AUS_VW AS SELECT COUNTRY_CODE, NO_OF_MATCHES, MATCHES_WON, MATCHES_LOST FROM CRICKET_STATS WHERE COUNTRY_CODE='AUS';
CREATE VIEW IF NOT EXISTS CRICKET_SA_VW AS SELECT COUNTRY_CODE, NO_OF_MATCHES, MATCHES_WON, MATCHES_LOST FROM CRICKET_STATS WHERE COUNTRY_CODE='ZAF';
CREATE VIEW IF NOT EXISTS CRICKET_IND_VW AS SELECT COUNTRY_CODE, NO_OF_MATCHES, MATCHES_WON, MATCHES_LOST FROM CRICKET_STATS WHERE COUNTRY_CODE='IND';

Views are not based on tables, but based on databases.视图不是基于表,而是基于数据库。 However, if you name your views according to the tables that they're created, you can selectively show those views.但是,如果您根据创建的表命名视图,则可以有选择地显示这些视图。

For example, in the views you created, if you do SHOW VIEWS LIKE '*aus*' , it will return cricket_aus_vw only.例如,在您创建的视图中,如果您执行SHOW VIEWS LIKE '*aus*' ,它将仅返回cricket_aus_vw

If you name your views with a prefix of the table name, eg CRICKET_STATS_AUS_VW then you can do something like SHOW VIEWS LIKE 'CRICKET_STATS_*'如果您使用表名的前缀命名您的视图,例如CRICKET_STATS_AUS_VW那么您可以执行类似SHOW VIEWS LIKE 'CRICKET_STATS_*'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM