Подтвердить что ты не робот

Можно ли сделать OLAP в BigTable?

В прошлом я использовал для создания WebAnalytics использование кубов OLAP, работающих в MySQL. Теперь куб OLAP, который я использовал, это просто большая таблица (хорошо, она была немного более умна, чем та,), где каждая строка представляет собой в основном измерительный или или совокупный набор измерений. Каждое измерение имеет кучу размеров (например, pagename, useragent, ip и т.д.) И множество значений (например, количество просмотров страниц, количество посетителей и т.д.).

Запросы, которые вы запускаете в такой таблице, обычно имеют форму (meta-SQL):

SELECT SUM(hits), SUM(bytes),
FROM MyCube
WHERE date='20090914' and pagename='Homepage' and browser!='googlebot'
GROUP BY hour

Таким образом, вы получаете итоговые значения за каждый час выбранного дня с указанными фильтрами. Одна загвоздка заключалась в том, что эти кубы обычно означали полное сканирование таблицы (по разным причинам), и это означало практическое ограничение размера (в MiB), что вы могли бы сделать эти вещи.

В настоящее время я изучаю все возможности Hadoop и подобных.

Выполнение вышеуказанного запроса как mapreduce на BigTable выглядит достаточно просто: Просто сделайте "час" ключом, фильтруйте на карте и уменьшайте, суммируя значения.

Вы можете запустить такой запрос, как я показал выше (или, по крайней мере, с тем же выходом), что и система BigTable в режиме реального времени (то есть через пользовательский интерфейс и пользователь получает ответ ASAP) вместо пакетного режима

Если нет; какова соответствующая технология, чтобы сделать что-то подобное в области BigTable/Hadoop/HBase/Hive и подобных?

4b9b3361

Ответ 1

Это даже было сделано (вроде).

Механизм агрегации/подсчета LastFm: http://github.com/zohmg/zohmg

В google search появился проект google-кода "mroll", но у него нет ничего, кроме контактной информации (без кода, ничего). Тем не менее, возможно, захочется обратиться к этому парню и посмотреть, что случилось. http://code.google.com/p/mroll/

Ответ 2

Мой ответ относится к HBase, но в равной степени относится и к BigTable.

Urban Airship open-sourced datacube, который, я думаю, близок к тому, что вы хотите. См. Их презентация здесь.

Adobe также имеет несколько презентаций (здесь и здесь) о том, как они делают "OLAP с малой задержкой" с HBase.

Ответ 3

Нам удалось создать низкоуровневую OLAP в HBase, предварительно подготовив SQL-запрос и сопоставив его с соответствующими квалификаторами Hbase. Для более подробной информации посетите сайт ниже.

http://soumyajitswain.blogspot.in/2012/10/hbase-low-latency-olap.html

Ответ 4

Если вы ищете подход к сканированию таблицы, считаете ли вы, что Google BigQuery? BigQuery делает автоматическое масштабирование на обратной стороне, что дает интерактивный ответ. Хорошая сессия Иордании Тигани из мероприятия 2012 года ввода-вывода Google объясняет некоторые из внутренних дел.

http://www.youtube.com/watch?v=QI8623HlYd4

Это не MapReduce, но оно ориентировано на высокоскоростное сканирование таблицы, как то, что вы описали.