在Hive中,我们如何在所有数据库中按名称搜索表?
我是Teradata用户。系统表(存在于Teradata中)是否与HIVE中存在的dbc.tables,dbc.columns等任何对等?
最佳答案
您应该查询元存储。
您可以在hive-site.xml
中找到连接属性
bash
<$HIVE_HOME/conf/hive-site.xml grep -A1 jdo
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1/metastore?createDatabaseIfNotExist=true</value>
--
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
--
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
--
<name>javax.jdo.option.ConnectionPassword</name>
<value>cloudera</value>
在Metastore中,您可以使用类似于以下内容的查询
mysql
select *
from metastore.DBS as d
join metastore.TBLS as t
on t.DB_ID =
d.DB_ID
where t.TBL_NAME like '% ... put somthing here ... %'
order by d.NAME
,t.TBL_NAME
;
关于hadoop - 在Hive中的所有数据库中搜索表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44151670/