MapReduce и параллельные СУБД

         

Взаимообучение


Чему может научиться MR у СУБД? Сторонникам MR следует обучиться технологиям и методам эффективного параллельного выполнения запросов. Инженерам нужно пользоваться опытом своих предшественников, а не повторять сделанную ими работу. В подсистемах выполнения запросов параллельных СУБД имеется много хороших идей, которые следовало бы усвоить разработчикам систем MR.

Мы также полагаем, что для любой системы обработки данных полезны языки более высокого уровня. Потрясающий успех реляционных СУБД во многом связан с тем, что они позволили программистам подняться на более высокий, более продуктивный уровень абстракции, на котором они могли просто формулировать системе свои потребности, а не составлять какой-либо алгоритм, в соответствии с которым система удовлетворяла бы эти потребности. В своем исследовании мы установили, что написать код на языке SQL для каждой задачи тестового набора оказывается существенно проще, чем написать соответствующий процедурный код для MR.

Следует форсировать работы по созданию интефейсов высокого уровня поверх MR/Hadoop. Мы приветствуем Hive , Pig , Scope , Dryad/Linq и другие проекты, прокладывающие путь в этом направлении.

Чему могут научиться у MR СУБД? У большинства СУБД далеко не идеален процесс их начальной раскрутки, от установки до приведения в готовность к выполнению запросов. Коммерческие СУБД должны развиваться по направлению к простой установке с помощью одного нажатия кнопки, правильно работающей автоматический настройке, улучшенным Web-сайтам с примерами кода, улучшенным генераторам запросов и к улучшенной документации.

Многие системы баз данных не могут работать с таблицами, сохраняемыми в файловых системах (с данными "по месту"). Рассмотрим случай, в котором СУБД используется для хранения некоторого очень крупного набора данных, над которым пользователь желает выполнить анализ с привлечением небольшого частного набора данных. Чтобы получить доступ к этому небольшому набору данных, пользователь сначала должен загрузить данные в СУБД. Если не планируется многократное выполнение анализа, было бы лучше просто указать СУБД на данные на локальном диске, а не выполнять фазу загрузки. Нет никаких разумных оснований к тому, чтобы СУБД не могла работать с данными "по месту". Хотя у некоторых систем баз данных (например, у PostgreSQL, DB2 и MS SQL Server) соответствующие возможности имеются, требуется дополнительная гибкость.



Содержание раздела