【问题标题】:Hive query - Get list of all View Names for given Table NameHive 查询 - 获取给定表名称的所有视图名称列表
【发布时间】:2020-12-23 16:07:37
【问题描述】:

有没有办法查询和获取给定 Hive 表的所有视图名称列表?

如果我们为表创建了三个视图。给定表名 CRICKET_STATS,如何获得输出,

CRICKET_AUS_VW 
CRICKET_SA_VW
CRICKET_IND_VW

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';

【问题讨论】:

  • 你能用SHOW VIEWS吗?
  • 你可以在 Metastore 中检查它是否可以访问 - stackoverflow.com/questions/16738516/…
  • 感谢@mck 的建议。 SHOW VIEWS 列出所有视图。如何仅列出基于特定表创建的那些?
  • 谢谢@KoushikRoy。很遗憾,我们无法访问 Hive 元存储

标签: hive hiveql database-metadata


【解决方案1】:

视图不是基于表,而是基于数据库。但是,如果您根据创建的表命名视图,则可以有选择地显示这些视图。

例如,在您创建的视图中,如果您执行SHOW VIEWS LIKE '*aus*',它将仅返回cricket_aus_vw

如果您使用表名的前缀命名视图,例如CRICKET_STATS_AUS_VW 然后你可以做类似SHOW VIEWS LIKE 'CRICKET_STATS_*' 的事情

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多