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

Индексация


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

По причине предельной простоты модели MR в инфраструктуре MR встроенные индексы не поддерживаются. Программисты должны сами реализовывать все индексы, которые могут понадобиться для ускорения доступа к данным, в своих приложениях. Это непросто, поскольку нужно еще инструментировать механизмы выборки данных инфраструктуры, чтобы в них использовались эти индексы при распространении данных в выполняемые экземпляры Map. И снова, несмотря на то, что каждому MR-программисту приходится заново реализовывать одну и ту же базовую функциональную возможность, эта стратегия приемлема, если не требуется совместное использование индексов несколькими программистами.

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



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