Почему не использовать что-то вроде MapReduce?
Эта страница объясняет, почему стоит использовать ClickHouse вместо MapReduce
Такие системы, как MapReduce, можно отнести к системам распределённых вычислений, в которых операция reduce основана на распределённой сортировке. Наиболее распространённое open-source-решение этого класса — Apache Hadoop.
Эти системы не подходят для онлайн-запросов из-за высокой задержки. Иными словами, их нельзя использовать в качестве серверной части веб-интерфейса. Они также плохо подходят для обновления данных в реальном времени. Распределённая сортировка — не лучший способ выполнять операции reduce, если результат операции и все промежуточные результаты (если они есть) находятся в оперативной памяти одного сервера, что обычно и происходит в случае онлайн-запросов. В такой ситуации оптимальным способом выполнения операций reduce будет хеш-таблица. Распространённый подход к оптимизации задач MapReduce — предварительная агрегация (частичный reduce) с использованием хеш-таблицы в оперативной памяти. Пользователь выполняет такую оптимизацию вручную. Распределённая сортировка — одна из основных причин снижения производительности при выполнении простых задач MapReduce.
Большинство реализаций MapReduce позволяют выполнять на кластере произвольный код. Но для OLAP декларативный язык запросов подходит лучше, поскольку позволяет быстрее проводить эксперименты. Например, в Hadoop есть Hive и Pig. Также стоит упомянуть Cloudera Impala или Shark (устаревший) для Spark, а также Spark SQL, Presto и Apache Drill. Производительность при выполнении таких задач заметно ниже, чем у специализированных систем, а относительно высокая задержка делает использование этих систем в качестве серверной части веб-интерфейса нереалистичным.
Последнее изменение 10 июня 2026 г.