hive一行命令来捕获schema+表名信息

fdbelqdn  于 2021-05-31  发布在  Hadoop
关注(0)|答案(1)|浏览(702)

有没有一种方法可以通过hive在单个命令中捕获所有schema+表名信息,其方式与

SELECT *  FROM information_schema.tables

来自postgresql世界? show databases 以及 show tables 在循环中组合(这里是一个示例)是一个答案,但我正在寻找一种更简洁的方法,以便在单个命令中获得相同的结果。

1sbrub3j

1sbrub3j1#

我已经花了很长时间研究配置单元查询,但据我所知,您可能可以使用

hive> desc formatted tableName;

或者

hive> describe formatted tableName;

它将为您提供与表相关的所有信息,如模式、分区信息、表类型(如托管表等)
我不确定你是否特别想要这个??
还有另一种查询配置单元表的方法,就是编写可以从hadoop终端而不是从配置单元终端本身调用的配置单元脚本。

std]$ cat sample.hql or vi sample.hql 
    use dbName;
    select * from tableName;
    desc formatted tableName;

# this hql script can be called from outside the hive terminal

std]$ hive -f sample.hql

或者,甚至不必编写脚本文件,您也可以按以下方式查询配置单元:

std]$ hive -e "use dbName; select * from emp;" > text.txt or >> to append

在数据库级别,您可能可以查询为:

hive> use dbName;
hive> set hive.cli.print.current.db=true;
hive(dbName)> describe database dbName;

它将从mysql(metastore)中获取有关数据库的元数据。

相关问题