Год эпохи перемен в технологии баз данных


В чем причины?


Преимущество в производительности, демонстрируемое параллельными параллельными СУБД, оказывается возможным за счет использования технологий, совершенствуемых в течение десятилетий:

  • индексация на основе B-деревьев для оптимизации выборки данных;
  • новые механизмы хранения данных (в частности, поколоночное хранение);
  • эффективные методы сжатия данных, позволяющие выполнять операции прямо над сжатыми данными;
  • параллельные алгоритмы выполнения операций над реляционными данными.

С другой стороны, при использовании MapReduce потребовалось существенно меньше времени на загрузку данных: иногда это происходило в три раза быстрее, чем в случае Vertica, и в 20 раз быстрее, чем для СУБД-X (в основном, из-за отсутствия схемы данных). Существенно проще происходит установка и конфигурирование MapReduce, чем аналогичные действия для параллельных СУБД. Авторы статьи приходят к выводу, что это является одним из основных факторов, привлекающих к MapReduce разработчиков приложений. Другими факторами является простота использования (SQL часто оказывается слишком сложным для начинающих программистов аналитических приложений; с другой стороны примитивность MapReduce приводит к росту трудозатрат на разработку приложений) и большая устойчивость к сбоям отдельных узлов кластера.

Принципиальным отличием MapReduce от систем баз данных является отсутствие схемы. В результате возникает потребность разбора записей на стадии выполнения приложения, уменьшается польза от сжатия данных. Все это является одной из причин снижения производительности. Кроме того, при отсутствии схемы невозможно обеспечить унифицированное хранение информации, требуемой для оптимизации декларативных запросов: об имеющихся индексах, о применяемых способах разделения таблиц, о гистограммах, описывающих распределения данных и т.д.

Общим выводом статьи является потребность в совершенствовании обеих технологий. MapReduce нуждается в более выразительных средствах программирования, чтобы можно было снизить упомянутые выше трудозатраты на разработку. В параллельных СУБД требуются более совершенные методы распараллеливания определяемых пользователями функций. Первыми признаками грядущей интеграции SQL и MapReduce являются системы Greenplum (см. разд. 6) и nCluster компании Aster Data (см. статью Eric Friedman, Peter Pawlowski, John Cieslewicz «SQL/MapReduce: A practical approach to selfdescribing, polymorphic, and parallelizable userdefined functions», Proceeding of the VLDB ’09 August 2428, 2009, Lyon, France). Хочу также заметить, что в августе 2009 г. поддержка MapReduce появилась и в компании Vertica, являющейся, как уже говорилось, детищем ранее неутомимого борца с этим подходом Майкла Стоунбрейкера.



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