2012-06-29 3 views
2

http://wiki.apache.org/hadoop/Hive/HiveJDBCInterface - есть ли более высокий интерфейс ORM уровня, чем драйвер Hive JDBC, который мы можем использовать для запуска запросов и анализ результатовКак получить доступ к Улей с помощью Java API

+0

Эй, вы дошли до интерфейса вверх по лестнице абстракции, чтобы работать с улей? –

ответ

6

No. В «R» в ORM трибун для «реляционной базы данных». Hive - это база данных NOSQL, а не реляционная база данных. Это огромное преимущество Hive по сравнению со многими другими базами данных NOSQL, к которым вы можете получить доступ, используя (почти) нормальный SQL и используя (почти) полнофункциональный стандартный интерфейс JDBC. Но если вы думаете об использовании ORM и Hive вместе, вы можете приблизиться к своей проблеме с неправильного угла.

EDIT 6/4/13: Вот цитата из Википедии: В реляционной модели каждая схема таблицы должна идентифицировать первичный столбец, используемый для идентификации строки, называемой первичным ключом. Таблицы могут связываться с помощью внешнего ключа, который указывает на первичный ключ.

Куст не поддерживает ни внешние, ни первичные ключи, поэтому он не является реляционной базой данных.

Я хотел бы поблагодарить downvoter за предоставленную мне возможность удвоить рассуждения, которые привели к моему первоначальному заявлению.

+0

Попытка программирования интерфейса JDBC довольно примитивна, предпочла бы программировать несколько более высокую абстракцию, так как я привык к программированию на уровне JPA. Отсюда мой вопрос. – priya

+0

Какие данные вы пытаетесь сохранить в Hive? Улей - это лучше всего при работе с очень большими, очень плоскими столами. Если ваша модель данных достаточно сложна, чтобы получить форму ORM, вы можете искать неправильный инструмент. – Olaf

+0

Мне очень сложно увидеть, как Hive - это база данных NoSQL, поскольку основной способ взаимодействия с ней - через SQL. На самом деле, я бы сказал, что это целая _точка_Уива _be_ базы данных SQL. Возможно, не реляционный (как указывает Олаф) –

0

Улей является компонентом системы эко-системы на вершине Hadoop. Это не база данных RDBMS или NOSQL, а просто способ программирования MapReduce поверх HDFS (файловой системы).

Hive создан для того, чтобы сделать разработчика дружественным, у которого есть знание sql, может легко запустить MapReduce, просто написав инструкции типа sql. MapReduce можно выразить как sql, где движок Hive преобразует их в MapReduce с помощью Driver.

Куст делает разделение хранилища и его структуру, используя метастор. Metastore - это простая RDBMS, как и любая другая СУБД, с которой мы можем подключиться к ней, и сделаем заявление sql поверх этого. Как только мы сделали инструкцию HQL для Metastore, метастар имеет возможность сообщить подстрочный механизм Hive для выполнения инструкции HQL и дает вернуть результат в виде набора результатов.