#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 для моего варианта использования.