Hadoop - отличный инструмент для решения бизнес-задач. Само по себе это не решение BI. Hadoop берет Data_A и выводит Data_B. Все, что нужно для Bi, но не в полезной форме, можно обработать с помощью MapReduce и вывести полезную форму данных. Будь то CSV, HIVE, HBase, MSSQL или что-либо еще, использованное для просмотра данных.
Я считаю, что Hadoop должен быть инструментом ETL. Вот для чего мы его используем. Мы каждый час обрабатываем файлы журналов и храним их в Hive, а также выполняем ежедневные агрегации, которые загружаются на сервер MSSQL и просматриваются через слой визуализации.
Основные конструктивные соображения, с которыми я столкнулся:
- Гибкость данных: Хотите ли вы, чтобы ваши пользователи просматривали предварительно агрегированные данные или имели возможность настраивать запрос и смотреть на данные так, как они хотят
- Скорость: Как долго вы хотите, чтобы ваши пользователи ждали данных? Улей (например) медленный. Для получения результатов требуются минуты, даже на довольно небольших наборах данных. Чем больше пройденных данных, тем больше времени потребуется для получения результата.
- Визуализация: Какой тип визуализации вы хотите использовать? Вы хотите изготовить на заказ много деталей или использовать что-то с полки? Какие ограничения и гибкость необходимы для вашей визуализации? Насколько гибкой и изменчивой должна быть визуализация?
НТН
Обновление: В ответ на комментарий @ Bhat о недостатке визуализации ...
Отсутствие инструмента визуализации, который позволил бы нам эффективно использовать данные, хранящиеся в HBase, был основным фактором при переоценке нашего решения. Мы сохранили необработанные данные в Hive, предварительно агрегировали данные и хранили их в HBase. Чтобы использовать это, мы собирались написать собственный соединитель (сделал эту часть) и слой визуализации. Мы посмотрели на то, что мы могли бы произвести, и что можно было бы приобрести на коммерческой основе, и пошли по коммерческому пути.
Мы по-прежнему используем Hadoop в качестве инструмента ETL для обработки наших блогов, и это здорово. Мы просто отправляем необработанные данные ETL в коммерческую базу данных больших данных, которая займет место Hive и HBase в нашем проекте.
Hadoop на самом деле не может сравниться с MSSQL или другим хранилищем данных. Hadoop не выполняет никакого хранения (игнорируя HDFS), он обрабатывает данные. Запуск MapReduces (что делает Hive) будет выполняться медленнее, чем MSSQL (или около того).