Подходит ли HBase для хранения и запроса данных журнала? - PullRequest
3 голосов
/ 19 апреля 2011


Я думаю об использовании HBase для хранения журналов (данных веб-журналов), каждый журнал будет иметь около 20 различных значений (скажем, столбцы), я хочу запускать запросы, которые фильтруют результаты на основе этих столбцов.

Моя первоначальная идея состояла в том, чтобы сохранять каждый журнал (ячейку) несколько раз под каждым столбцом, который является значением каждого поля в журнале. Это приведет к увеличению размера данных примерно в 20 раз, но я думаю, что это дает хорошее увеличение производительности. Ключ строки будет меткой времени с префиксом, который является идентификатором источника.
Каждый источник будет генерировать около 40-100 миллионов строк журнала (может быть десятки тысяч источников).
Мне также нужна низкая задержка, возможно, ниже 10 секунд (поэтому такие решения, как Hive, в настоящее время недоступны)

Как вы думаете, это правильный дизайн схемы? Если не то, что, по вашему мнению, было бы правильным, или, может быть, я должен использовать что-то еще (что)?
Спасибо за все ваши ответы.

1 Ответ

3 голосов
/ 20 апреля 2011

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

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

Это помогает снизить уровень увеличения и дублирования данных, поскольку необработанные данные сохраняются только один раз, а затем необходимые агрегации.Использование Hive для хранения необработанных данных обеспечивает большую гибкость при агрегировании по разным измерениям и различным манипуляциям с данными.

В зависимости от ваших конкретных целей, HBase может быть единственным требованием к хранилищу, но если цельЯ считаю, что Hive и HBase будут лучше работать вместе.

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

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

Я надеюсь, что мои бродяги оказали некоторую помощь каким-то образом.:)

...