2016-11-23 45 views
1

我创建和在HIVE插入表格,并且文件被上HDFS创建和一些外部存储S3蜂房-where是表的存储信息

假设如果我创建了一个10个表,是有在任何系统表配置单元,我可以找到用户创建的表信息? (例如像Teradata的,我们有DBC.tablesv持有的所有用户定义的表的信息)

+0

我确实发现“Hive表和分区的所有元数据都是通过Hive Metastore访问的。元数据持久使用JPOX ORM解决方案(Data Nucleus),因此Hive可以使用它支持的任何数据库。大多数商业关系数据库和许多开源数据库都支持“是否有其他方法? –

回答

0

您不能查询(如SELECT ... FROM ...)元数据从内部蜂巢。
但是,您确实有显示该信息的配合,例如show databases,show tables,desc MyTable

1

您可以找到metastore配置为位于hive-site.xml文件中的位置。
其通常位置位于/ etc/hive/{$ hadoop_version} /或/ etc/hive/conf /下。
grep for“hive.metastore.uris”或“javax.jdo.option.ConnectionURL”查看您用于Metastore的数据库。证书也应该在那里。
如果,例如,您metastore是一个MySQL服务器上,你可以像
SELECT * FROM TBLS;
SELECT * FROM PARTITIONS;
运行查询等

0

我不知道我的理解100%你的问题,如果你指的是信息有关创建表,如查询本身,对HDFS,表格属性等的位置,你可以尝试用:

SHOW CREATE TABLE <table>; 

如果需要检索的列名的列表和数据类型尝试:

DESCRIBE <table>;