使用JDBC获取Hive中表的存储位置和存储格式?

时间:2016-10-24 09:50:02

标签: sql jdbc hive

我想使用JDBC获取Hive中表的元数据(包括存储格式和存储位置)。我试过搜索但找不到与之相关的任何内容。

2 个答案:

答案 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的其他方法。