Получить местоположение хранилища и формат хранения для таблицы в Hive с использованием JDBC?

#sql #jdbc #hive

#sql #jdbc #улей

Вопрос:

Я хочу получить метаданные (включая формат хранения и местоположение хранения) таблицы в Hive с использованием JDBC. Я попытался выполнить поиск, но не смог найти ничего, связанного с этим.

Ответ №1:

Глядя на этот пример кода, вы можете отправить describe formatted <tableName> инструкцию на сервер, как вы отправили бы любую другую SELECT инструкцию.

Комментарии:

1. Есть какой-нибудь простой способ получить информацию о столбце раздела?

2. Вы можете отправить describe formatted <tableName>.<columnName> инструкцию.

Ответ №2:

Я нашел лучший способ использовать 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.

Комментарии:

1. Большое спасибо, но я не смог бы использовать HCat для моего варианта использования.