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

Обсуждение


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

Между тем, СУБД обеспечивают отказоустойчивость на уровне транзакций. Исследователи СУБД часто отмечают, что при возрастании размеров баз данных и числа обрабатывающих узлов, увеличивается и потребность в отказоустойчивости на уровне более мелких элементов. СУБД без труда адаптируются к этой потребности путем пометки одной или нескольких операций в плане запроса как "операций рестарта". Система поддержки времени выполнения сохраняет результаты этих операций на диске, способствуя рестарту "на уровне операций". Можно пометить любое число операций, что позволяет настраивать гранулярность рестартов. Такой механизм легко интегрируется в эффективную среду выполнения запросов СУБД, допуская различную гранулярность рестартов. Нам известны, по крайней мере, две исследовательские группы (из Вашингтонского университета и Калифорнийского университета в Беркли), которые изучают возможности балансировки накладных расходов во время выполнения и потерь работы в результате отказов системы.

В целом, мы ожидаем, что ETL и сложная аналитика будут производиться с использованием систем MR, а для поддержки рабочих нагрузок с большим числом запросов будут применяться СУБД. Поэтому, по нашему мнению, наилучшее решение состоит в сопряжении среды MR с СУБД, чтобы в этой среде можно было выполнять сложную аналитическую обработку, и обеспечении интерфейса с СУБД для выполнения встраиваемых запросов. В HadoopDB , Hive , Aster, Greenplum, Cloudera и Vertica имеются коммерчески доступные продукты и прототипы, основанные на таком "гибридном" подходе.



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