2016-06-13 3 views
2

Я очень новый в большом пространстве данных.Что нужно учитывать перед выбором hbase?

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

ответ

4

One of my favourite book describes..

These are points to make note before taking decision

Приходит к последнему пункту @ Уайтфрета: есть какая-то вещь, называемая CAP theorm, на основе которой можно принять решение. enter image description here

  • Последовательности (все узлы увидеть те же данные одновременно)

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

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

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

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

2

Это сложный вопрос, есть много вещей, чтобы рассмотреть.

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

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

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

1

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

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

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

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

«HBase не подходит для каждой проблемы.

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

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

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

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

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

Смежные вопросы