В прошлом я использовал WebAnalytics, используя кубы OLAP, работающие на MySQL. Теперь куб OLAP, как я использовал, это просто большая таблица (хорошо, она была немного более умна, чем та,), где каждая строка представляет собой в основном измерительный или или совокупный набор измерений. Каждое измерение имеет кучу размеров (например, pagename, useragent, ip и т. Д.) И множество значений (например, количество просмотров страниц, количество посетителей и т. Д.).Может ли OLAP быть выполнен в BigTable?
Запросы, которые вы запускаете на столе, как это, как правило, в форме (мета-SQL):
SELECT SUM(hits), SUM(bytes),
FROM MyCube
WHERE date='20090914' and pagename='Homepage' and browser!='googlebot'
GROUP BY hour
Таким образом, вы получите итоговые суммы за каждый час выбранного дня с указанными фильтрами. Одна из проблем заключалась в том, что эти кубы обычно означали полное сканирование таблицы (по разным причинам), и это означало практическое ограничение размера (в МиВ), которое вы могли бы сделать.
В настоящее время я изучаю входы и выходы Hadoop и подобных.
Выполнение вышеуказанного запроса как mapreduce на BigTable выглядит достаточно просто: Просто сделайте «час» ключом, фильтруйте на карте и уменьшайте, суммируя значения.
Можете ли вы запустить запрос, как я показал выше (или, по крайней мере, с тем же выходом), что и система BigTable в режиме реального времени (то есть через пользовательский интерфейс, а пользователь получает их ответ как можно скорее), а не пакет Режим?
Если нет; какова соответствующая технология, чтобы сделать что-то подобное в области BigTable/Hadoop/HBase/Hive и подобных?
Благодарность за zohmg sugegstion. Согласно их веб-сайту: «Основная идея состоит в том, чтобы предварительно вычислить агрегаты и сохранить их с точки зрения эффективности». Моя идея - начать с набора данных и совокупности на основе потребностей пользователей в данный момент. –
Вы хотите предварительно сгруппировать, чтобы для каждой уникальной комбинации измерений у вас было не более одной строки; тогда агрегация времени выполнения представляет собой вопрос об откачивании соответствующего поперечного сечения куба. Zohmg может указать вам, как это сделать. Я знаю, по крайней мере, одну рекламную сеть, которая использует HyperTable или HBase для работы в режиме реального времени для своих клиентов, поэтому это выполнимо. – SquareCog
Zohmg теперь отказывается. – rjha94