Подтвердить что ты не робот

Справка по запросу Hbase/Hadoop

Я работаю над проектом с другом, который будет использовать Hbase для хранения данных. Есть ли хорошие примеры запросов? Кажется, я пишу тонну кода Java для повторения списков RowResult, когда на SQL-сервере я мог написать простой запрос. Я что-то упускаю? Или Hbase отсутствует что-то?

4b9b3361

Ответ 1

Я думаю, что вы, как и многие из нас, ошибаетесь, рассматривая bigtable и HBase, как просто другую СУБД, когда она на самом деле является моделью, ориентированной на столбцы, которая предназначена для эффективного хранения и извлечения больших наборов разреженных данных. Это означает, например, сохранение, в идеале, отношений "один-два-один" в одной строке. Ваши запросы должны возвращать очень мало строк, но содержат (потенциально) много данных.

Возможно, если бы вы рассказали нам больше о том, что вы пытались сохранить, мы могли бы помочь вам разработать схему в соответствии с методом bigtable/HBase.

Для хорошего описания того, что HBase делает иначе, чем "традиционная" СУБД, посмотрите эту потрясающую статью: Сопоставление импеданса: когда использовать HBase Брайана Даксбери.

Ответ 2

Если вы хотите получить доступ к HBase, используя язык запросов и драйвер JDBC, это возможно. Пол Амброуз выпустил библиотеку под названием HBQL на hbql.com, которая поможет вам в этом. Я использовал его для нескольких проектов, и он работает хорошо. Очевидно, что у вас не будет доступа к полному SQL, но он немного упрощает его использование.

Ответ 3

Я посмотрел на Hadoop и Hbase, и как сказал Sean, я понял, что он не дал мне то, что я действительно хотел, это была кластерная база данных, совместимая с JDBC.

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

Ответ 4

Я бы рекомендовал взглянуть на проект Apache Hive, который похож на HBase (в том смысле, что он распределен база данных), которая реализует язык SQL-esque.

Ответ 5

Спасибо за ответ Шон, и извините за мой поздний ответ. Я часто ошибаюсь, рассматривая HBase как РСУБД. Так часто на самом деле, что мне пришлось переписать код из-за этого! Это такая трудная вещь, чтобы отучиться.

Сейчас у нас всего 4 таблицы. Который, в данном случае, очень мало, учитывая мой опыт. Я просто надеялся использовать некоторые функции РСУБД, в основном придерживаясь модели хранения, ориентированной на столбцы.

Ответ 6

Рад услышать, что вы, ребята, используете HBase! Я не специалист по какой-либо части воображения, но вот несколько вещей, которые могут помочь.

  • HBase основан на/вдохновлен BigTable, который, как представляется, подвергается AppEngine как их db api, поэтому просматривает свои документы должен много помочь, если вы работаете над webapp.

  • Если вы не работаете с веб-сервером, то, как вы описываете, повторяется итерация с помощью map/reduce (не выделяйте значения, которые вы не хотите). Пропуск значений с использованием итераторов практически гарантирует, что ваше приложение будет иметь узкие места с наборами данных размера HBase. Если вы обнаружите, что вы все еще думаете в SQL, ознакомьтесь с учебным пособием по клаудеру и учебнику по ульям.

  • В принципе, разница в умении HBase/SQL (для не-webapps) сводится к "Отправьте вычисления на данные, не отправляйте данные на вычисление" - если вы это помните, вы кодируете, что все будет хорошо: -)

Привет,

Дэвид