Чему может научиться MR у СУБД? Сторонникам MR следует обучиться технологиям и методам эффективного параллельного выполнения запросов. Инженерам нужно пользоваться опытом своих предшественников, а не повторять сделанную ими работу. В подсистемах выполнения запросов параллельных СУБД имеется много хороших идей, которые следовало бы усвоить разработчикам систем MR.
Мы также полагаем, что для любой системы обработки данных полезны языки более высокого уровня. Потрясающий успех реляционных СУБД во многом связан с тем, что они позволили программистам подняться на более высокий, более продуктивный уровень абстракции, на котором они могли просто формулировать системе свои потребности, а не составлять какой-либо алгоритм, в соответствии с которым система удовлетворяла бы эти потребности. В своем исследовании мы установили, что написать код на языке SQL для каждой задачи тестового набора оказывается существенно проще, чем написать соответствующий процедурный код для MR.
Следует форсировать работы по созданию интефейсов высокого уровня поверх MR/Hadoop. Мы приветствуем Hive [21], Pig [15], Scope [6], Dryad/Linq [12] и другие проекты, прокладывающие путь в этом направлении.
Чему могут научиться у MR СУБД? У большинства СУБД далеко не идеален процесс их начальной раскрутки, от установки до приведения в готовность к выполнению запросов. Коммерческие СУБД должны развиваться по направлению к простой установке с помощью одного нажатия кнопки, правильно работающей автоматический настройке, улучшенным Web-сайтам с примерами кода, улучшенным генераторам запросов и к улучшенной документации.
Многие системы баз данных не могут работать с таблицами, сохраняемыми в файловых системах (с данными "по месту"). Рассмотрим случай, в котором СУБД используется для хранения некоторого очень крупного набора данных, над которым пользователь желает выполнить анализ с привлечением небольшого частного набора данных. Чтобы получить доступ к этому небольшому набору данных, пользователь сначала должен загрузить данные в СУБД. Если не планируется многократное выполнение анализа, было бы лучше просто указать СУБД на данные на локальном диске, а не выполнять фазу загрузки. Нет никаких разумных оснований к тому, чтобы СУБД не могла работать с данными "по месту". Хотя у некоторых систем баз данных (например, у PostgreSQL, DB2 и MS SQL Server) соответствующие возможности имеются, требуется дополнительная гибкость.
8. Заключение
Большая часть обсуждавшихся выше архитектурных различий происходит из различий в ориентации двух рассматриваемых классов систем. Параллельные СУБД преуспевают в области эффективной обработки запросов к крупным наборам данных. Системы в стиле MR отличаются в областях сложной аналитики и ETL. Системы одного класса никогда не блещут достоинствами в ситуациях, выигрышных для систем другого класса. Поэтому эти две технологии являются взаимодополняющими, и мы полагаем, что MR-системы, выполняющие ETL, займут место систем предварительной обработки данных для СУБД.
Для решения многих сложных аналитических проблем требуются возможности, обеспечиваемые системами обоих классов. Следовательно, нужны интерфейсы между системами MR и СУБД, позволяющие каждой системе делать то, к чему она лучше всего пригодна. Может оказаться гораздо эффективнее использовать такую гибридную систему, чем пытаться реализовать все приложение целиком на основе только СУБД или MR. Другими словами, чем "умнее" программное обеспечение, тем лучше.
9. Благодарность
Эта работа частично поддерживалась грантами Национального научного фонда США CRI-0707437, CluE-0844013 и CluE-0844480.
DeWitt, D.J., Gerber, R.H., Graefe, G., Heytens, M.L., Kumar, K.B., and Muralikrishna, M. GAMMA - A High Performance Dataflow Database Machine. In Proceedings of the 12th International Conference on Very Large Databases. Morgan Kaufmann Publishers, Inc., 1986, 228–237.
Patterson, D.A. Technical perspective: The data center is the computer. Commun. ACM 51, 1 (Jan. 2008), 105.
Pavlo, A., Paulson, E., Rasin, A., Abadi, D.J., DeWitt, D.J., Madden, S.R., and Stonebraker, M. A comparison of approaches to large-scale data analysis. In Proceedings of the 35th SIGMOD International Conference on Management of Data. ACM Press, NewYork, 2009, 165–178. Имеется перевод на русский язык: Эндрю Павло, Эрик Паулсон, Александр Разин, Дэниэль Абади, Дэвид Девитт, Сэмюэль Мэдден, Майкл Стоунбрейкер. Сравнение подходов к крупномасштабному анализу данных.
Stonebraker, M. and Rowe, L. The Design of Postgres. In Proceedings of the SIGMOD Conference, 1986, 340–355.
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...