HiveQL:查询仅列出视图

5
有没有一种Hive查询方法可以列出特定数据库中可用的视图?
在MySQL中,我认为以下查询是正确的:
SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_TYPE LIKE 'VIEW' AND TABLE_SCHEMA LIKE 'database_name';
我希望能够找到类似于HiveQL的方法。
3个回答

1

目前Hive中没有INFORMATION_SCHEMA实现。

您可以查看以下链接中的Open JIRA:

https://issues.apache.org/jira/browse/HIVE-1010

然而,如果使用Derby MySQL服务器配置Hive Metastore,则可以访问所需的信息。
配置Hive Metastore的不同方法可以在以下网址找到:

http://www.thecloudavenue.com/2013/11/differentWaysOfConfiguringHiveMetastore.html

这是Metastore的详细E/R图:

https://issues.apache.org/jira/secure/attachment/12471108/HiveMetaStore.pdf

配置完成元数据存储库后,您可以通过以下查询获取所需信息:

SELECT * from TBLS where TBLS_TYPE = "VIEW"


谢谢你再次帮助我,Neels :) - unnik
1
SELECT * from TBLS where TBL_TYPE = "VIRTUAL_VIEW" - fcce

1
如果您像我一样卡在旧版本的Hive上,无法使用 SHOW VIEWS,那么请使用以下脚本。
export db=$1
tables=`hive -e "use $db; show tables;"`
show_table_command=''
for table in $tables; do
  show_table_command="$show_table_command SHOW CREATE TABLE ${db}.${table};"
done
hive -e "$show_table_command" > show_table
sed_command="s/$db\.//g"
cat show_table | grep "CREATE VIEW" | cut -d" " -f3 | sed 's/`//g' | sed ${sed_command} > all_views

将此代码作为sh find_views.sh dbname运行。现在,表all_views中有视图列表。

您还可以使用相同的技术仅查找表,方法是将“CREATE VIEW”替换为“CREATE TABLE”或“CREATE EXTERNAL TABLE”,并相应地调整sedcut语句。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接