Задача соединения
Последняя задача, которую мы здесь обсудим, – это достаточно сложное соединение двух таблиц с применением дополнительных операций агрегации и фильтрации. Набор данных о посещениях пользователями Web-сайтов соединяется с дополнительной 100-гигабайтной таблицей значений PageRank для 18 миллионов URL (1 гигабайт на узел). Задача соединения состоит из двух подзадач, выполняющих сложные вычисления над этими двумя наборами данных. В первой части задачи каждая система должна найти IP-адреса, для которых получен наибольший доход от рекламы в течение заданного временного промежутка посещений пользователей. После получения этих промежуточных записей системы должны вычислить среднее значение PageRank для всех страниц, посещенных в течение этого промежутка времени.
СУБД должны хорошо выполнять аналитические запросы со сложными операциями соединения (см. таблицу). СУБД-X оказалась быстрее, чем Hadoop, в 36 раз, а Vertica – в 21 раз. В общем случае, время выполнения запросов для типичных задач пользователей находится в промежутке между этими крайними значениями. В следующем разделе мы исследуем причины появления таких результатов.