我想知道如何查询hive Metastore数据库并获取一些关键属性,包括:
我刚刚学会了一个hive命令show table extend like <tablename>
0 tableName:<tablename>
1 owner:<userid>
2 location:hdfs://NameService-705/user/hive/warehouse/<username>.db/<tablename>
3 inputformat:org.apache.hadoop.mapred.TextInputFormat
4 outputformat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
5 columns:struct columns { i64 ingestts, i64 ingestdate .... map<string,string> params}
6 partitioned:false
7 partitionColumns:
8 totalNumberFiles:1
9 totalFileSize:0
10 maxFileSize:0
11 minFileSize:0
12 lastAccessTime:1453767099408 -> Mon Jan 25 2016 17:11:39 GMT-0700 (MST)
13 lastUpdateTime:1432218969243 -> Thu May 21 2015 08:36:09 GMT-0600 (MDT)
我知道field0,1,12和13正是这些信息,我想知道如何查询hive元存储来直接获取这些信息而不是运行show table extend
一千次。类似的东西:
select tableName, owner, lastAccessTime, lastUpdateTime from <metatable>
谢谢!
答案 0 :(得分:0)
select TBL_NAME, OWNER, CREATE_TIME, LAST_ACCESS_TIM
from TBLS
limit 11;
答案 1 :(得分:0)
从Java代码中,您可以直接查询Hive Metastore - 参见JavaDoc
或者,如果您喜欢快速和肮脏的技巧,您可以连接到Metastore数据库(通常是MySQL实例)并直接针对它运行一些SQL查询。遗憾的是,没有太多关于数据模型的公开文档。