2012-08-28 3 views
0

Какое хранилище вы рекомендуете для очень большого количества данных? (≈ 50 миллионов записей в день). Для этого достаточно подходящей ситуации для таких систем, как Hadoop или RDBMS?Подходящий способ хранения для огромного количества данных

+0

Сколько времени вы планируете хранить в данных? Насколько сложна схема? Является ли это в значительной степени звездной схемой с одной большой таблицей фактов и множеством небольших (-ish) таблиц измерений? Какие вопросы вы собираетесь выполнять в своих данных? Будут ли они включать целые таблицы или только конкретные данные по дате (ежедневно, еженедельно, ежемесячно и т. Д.)? – Olaf

+0

Необработанные данные должны быть предварительно обработаны, проанализированы и агрегированы в данные отчета. Отчеты не будут удалены, исходные данные будут удалены после обработки. Отчеты будут сохранены в виде числовых данных. Запросы - первичные статистические запросы (avg, sum, min, max) для конкретного диапазона данных. – Artegon

ответ

1

С учетом объема данных, которые вы описываете, вы действительно можете вдаваться в объект «Большие данные». Основываясь на количестве предоставленных вами сведений, я бы предложил загрузить исходные данные в кластер Hadoop, запустить работу с картой/сокращением, чтобы проанализировать ее и загрузить в каталоги на основе даты. Затем вы можете определить внешнюю таблицу Hive, разделенную по дате (ежедневно? Еженедельно?), Сопоставленную с результатами вашей карты/сокращения заданий.

Следующий шаг будет зависеть от сложности ваших отчетов и необходимого времени отклика. Если вы можете легко выразить их в SQL, вы можете просто запускать запросы в таблице Hive. Если они более подробно разработаны, вам, возможно, придется писать пользовательские задания на карте/сокращение. Многие предлагают Pig для этого, но я лично более совместим с прямой Java.

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

+0

Теперь, когда мы работаем над прототипом и нет такого огромного количества данных, данные хранятся в реляционной базе данных. В производстве это будет невозможно, теперь я думаю о будущем потоке данных в производстве - что вы рекомендуете, если отчет должен быть подан через веб-интерфейс и скорость будет важна? У меня есть идея хранить необработанные данные в Hadoop и обработанное хранилище данных в реляционной базе данных. Спасибо за ваш совет. – Artegon

+0

«хранить исходные данные в Hadoop и обрабатывать хранилище данных в реляционной базе данных» - в значительной степени суммирует мой ответ. Если вы можете выразить свое резюме как SQL-запросы, рассмотрите запрос данных в Hadoop с помощью Hive. Мне нравится писать карту/сокращение на Java, но если я могу выразить резюме в одном SQL-заявлении, нет вопросов, какой путь идти. – Olaf

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