что следует учитывать перед выбором hbase?

Я очень новичок в большом пространстве данных.

Мы получили предложение от команды, что мы должны использовать hbase вместо RDBMS для высокой производительности. Мы не имеем ни малейшего представления, что следует / нужно учитывать перед переключением RDMS на hbase. Есть идеи?

Ответы на вопрос(3)

Решение Вопроса

Одна из моих любимых книг описывает ..

Подойдя к последнему пункту @ Whitefret: есть нечто, называемоеCAP theorm на основании которого может быть принято решение.

Согласованность (все узлы видят одни и те же данные одновременно)

Доступность (каждый запрос получает ответ о том, успешно он или нет)

Допуск раздела (система продолжает работать, несмотря на произвольное разбиение из-за сбоев сети)

В этом контексте Hbase поддерживает CP

Однако для переключения СУБД на HBASE вы можете использоватьSQOOP.

как и все NoSQL DB, поставляется с отличными новыми функциями, но, к сожалению, нет ничего бесплатного (даже не говоря о стоимости денег).

В вы действительно должны проверить, все ли запросы, которые вы хотите сделать, могут быть выполнены с помощью модели данных . Важной вещью, которую нужно учитывать, является дизайн схемы (моделирование ключа Rowkey в первую очередь). Я советую вам прочитать эту действительно хорошую статью:

http://0b4af6cdc2f0c5998459-c0245c5c937c5dedcca3f1764ecc9b2f.r43.cf2.rackcdn.com/9353-login1210_khurana.pdf

Я думаю, что действительно хороший ответ на ваш вопрос можно найти на официальном сайте .

« не подходит для любой проблемы.

Во-первых, убедитесь, что у вас достаточно данных.Если у вас есть сотни миллионов или миллиарды строк, то - хороший кандидат. Если у вас есть только несколько тысяч / миллион строк, то лучше использовать традиционную СУБД из-за того, что все ваши данные могут оказаться на одном узле (или двух), а остальная часть кластера может бездействовать.

Во-вторых,убедитесь, что вы можете жить без всех дополнительных функций, которые предоставляет СУБД (например, типизированные столбцы, вторичные индексы, транзакции, расширенные языки запросов и т. д.) Приложение, созданное на основе RDBMS, не может быть «перенесено» на , например, путем простого изменения драйвера JDBC. Рассмотрите возможность перехода от СУБД к в качестве полной редизайна, а не порта.

В-третьих, убедитесь, что у вас достаточно оборудования. Даже HDFS не справляется с чем-то меньшим, чем 5 узлов данных (из-за таких вещей, как блочная репликация HDFS, которая имеет значение по умолчанию 3), плюс NameNode.

может довольно хорошо работать автономно на ноутбуке, но это следует рассматривать только как конфигурацию разработки. "

https://hbase.apache.org/book.html

Можете ли вы оптимизировать свою RDBMS? Добавление индексов, денормализация объединений, которые стоят слишком дорого ... Есть много путей, чтобы рассмотреть, и я не эксперт.Ваши данные большие? Это очень расплывчато, и у вас есть пространство между RDBMS и Big Data, где вы не можете быть уверены, какой из них использовать. Миллионы строк по-прежнему могут эффективно обрабатываться СУБД.Вам нужны отношения в ваших данных? База данных NoSQL не использует отношения, это может быть сложно для людей с опытом работы с SQL. Существуют фреймворки, которые дают SQL для HBase, но в целом плохая идея иметь модель RDBMS при использовании больших данных

Если вы можете ответить на эти вопросы и считаете, что NoSQL - это упражнение, спросите свою команду, как они к этому относятся. База данных NoSQL поставляется с проблемой, с которой вы никогда не столкнетесь в мире SQL. Сначала они должны создать прототип, чтобы понять, как все это работает, и, возможно, сделать для них какое-то обучение.

В итоге:
- Найти, если вам нужна нереляционная база данных
- Выберите правильный (Hbase действительно то, что вам нужно? Почему бы не рассмотреть Cassandra или MongoDB?)

Ваш ответ на вопрос