我想使用JDBC获取Hive中表的元数据(包括存储格式和存储位置)。我试过搜索但找不到与之相关的任何内容。
答案 0 :(得分:1)
关注this code example
您可以向服务器发送describe formatted <tableName>
语句,就像发送任何其他SELECT
语句一样。
答案 1 :(得分:1)
我发现更好的方法是在这种情况下使用 hcatalog 。
Maven依赖:
<dependency>
<groupId>org.apache.hive.hcatalog</groupId>
<artifactId>hive-webhcat-java-client</artifactId>
<version>1.2.1</version>
</dependency>
示例代码:
HiveConf hcatConf = new HiveConf();
hcatConf.setVar(HiveConf.ConfVars.METASTOREURIS, connectionUri);
hcatConf.set("hive.metastore.local", "false");
HCatClient client = null;
HCatTable hTable = null;
try {
client = HCatClient.create(hcatConf);
hTable = client.getTable(databaseName, tableName);
System.out.println(hTable.getLocation());
System.out.println(hTable.getInputFileFormat());
System.out.println(hTable.getOutputFileFormat());
} catch (HCatException hCatEx) {
LOG.error("Not able to connect to hive. Caused By;", hCatEx);
}
检查HCatTable的其他方法。