Как создать разделы в таблице Hbase как таблицы разделов таблицы улья

Мы планируем перейти с CDH3 на CDH4, поскольку в рамках этой миграции мы также планируем вывести HBASE в систему, так как она также обновляет данные, в CDH3 мы используем Hive как склад.

Здесь у нас основная проблема миграции, Hive поддерживает разделы для таблиц. И наша система имеет множество таблиц в разных схемах, а в некоторых таблицах есть разделы, основанные на дате, у нас есть история данных за последние 5 лет (в некоторых таблицах существует 365 * 5 разделов).

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

Причина, по которой мы собираемся работать в HBASE, - это поддержка обновлений.

Если HBASE не поддерживает это, что является другим (например, MangoDB, Cassandra), мы поддерживаем наше поведение.

Его действительно большая помощь, если мы найдем хотя бы некоторые решения для работы.

2 ответа

HBase имеет понятие, близкое к разделу, которое называется region. однако Эти разделы в HBase не работают как разделы Hive (или RDBMS). Каждый регион содержит ряд ключей, но вы можете разбить диапазон клавиш на более мелкие области, разделив или разделив его - например, если ваша исходная область содержит клавиши 0-9, вы можете разделить ее на две небольшие области 0-4 и 5-9 или десять разделов 0,1,2... и т.д.

Если ваш ключ будет составным, так что дата будет первой частью, за которой следует любой ваш ключ, вы можете предварительно разделить hbase так, чтобы каждый день получал одну или несколько областей.

Следует отметить, однако, что ключ, в котором наиболее значимые байты являются последовательными, замедлит ваши записи (может быть, не проблема, если вы выполняете разовые нагрузки) проблема, называемая "горячая точка" - вы можете читайте об этом и примерный подход, преодолевающий его в блоге Alex Baranau из sematext


Я боюсь, вы не можете делить данные в HBase, как в Hive. Оба эти средства сильно отличаются друг от друга как по дизайну, так и поведению. Данные в HBase уже разбиты на разделы, поскольку HBase разделяет пространство ключей, и каждый раздел - это то, что мы называем таблицей. Если вам все еще требуется более мелкое зернистое разделение, вы можете добиться этого, используя разумные семейства столбцов.

Например, вы можете иметь семейство столбцов для каждого года. Итак, у вас будет таблица с 5 семействами столбцов.

Изменить:

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

licensed under cc by-sa 3.0 with attribution.