Сравнение подходов к крупномасштабному анализу данных


Введение


В последнее время специализированные издания переполнены новостями о революции «кластерных вычислений». Эта парадигма состоит в использовании большого числа (низкопроизводительных) процессоров, работающих в параллель для решения вычислительной проблемы. По существу, предлагается построение центра данных путем объединения большого числа низкопроизводительных серверов вместо использования меньшего числа высокопроизводительных серверов. Рост интереса к кластерам способствует распространению средств их программирования. Одним из первых и наиболее известных подобных средств является MapReduce (MR) . Подход MapReduce привлекателен тем, что обеспечивает простую модель, на основе которой пользователи могут выражать сравнительно сложные распределенные программы, что порождает значительные интерес в образовательном сообществе. Например, IBM и Google обнародовали планы по обеспечению доступности 1000-процессорного кластера MapReduce для обучения студентов распределенному программированию.

При наличии этого интереса к MapReduce естественно задать вопрос: «А почему бы вместо этого не использовать какую-нибудь параллельную СУБД?». Параллельные системы баз данных (которые все основаны на общих архитектурных принципах) коммерчески доступны уже почти двадцать лет, и на рынке их около десятка, включая Teradata, Aster Data, Netezza, DATAllegro (и, следовательно, вскоре Microsoft SQL Server через посредство проекта Madison), Dataupia, Vertica, ParAccel, Neoview, Greenplum, DB2 (посредством Database Partitioning Feature) и Oracle (посредством Exadata). Это надежные, высокопроизводительные вычислительные платформы. Подобно MapReduce, они обеспечивают среду высокоуровневого программирования и полную распараллеливаемость. Хотя может показаться, что MR и параллельные системы баз данных нацелены на разную публику, на самом деле, можно написать почти любую задачу параллельной обработки либо в виде некоторого набора запросов к базе данных (возможно, с использованием определяемых пользователями функций и агрегатов для фильтрации и комбинирования данных), либо в виде набора заданий MapReduce.




Начало  Назад  Вперед