Классика баз данных - статьи

       

Аннотация


Функции, определяемые пользователями (user-defined function, UDF), – это мощный механизм, позволяющий пользователям расширять функциональные возможности систем баз данных. Несмотря на всю полезность существующих механизмов UDF, в них имеются многочисленные ограничения, включающие требование объявления входной и результирующей схем во время инсталляции и недостаточную возможность распараллеливания выполнения. Мы представляем новый подход к реализации UDF, называемый SQL/MapReduce (SQL/MR) и позволяющий преодолеть многие из этих ограничений. Мы используем идеи парадигмы программирования MapReduce для обеспечения пользователей простым API, с использованием которого они могут реализовать UDF на предпочитаемом ими языке. Кроме того, наш подход обеспечивает максимальную гибкость, поскольку схема результата UDF специфицируется самой функцией во время формирования плана выполнения запроса. Это означает, что SQL/MR-функция является полиморфной. Она может обрабатывать произвольные входные данные, поскольку ее поведение, как и результирующая схема, динамически определяется на основе информации, доступной во время формирования плана выполнения запроса, такой как входная схема функции и специальные параметры, задаваемые пользователями. Это также способствует повторному использованию, поскольку одна и та же SQL/MR-функция может применяться с различными входными схемами и задаваемыми пользователями параметрами.

В этой статье мы описываем побудительные мотивы этого нового подхода к поддержке UDF, а также его реализацию в системе nCluster компании Aster Data Systems. Мы демонстрируем, что в контексте массивно-параллельных систем баз данных без совместно используемых ресурсов эта модель способствует возможности сильно масштабируемых вычислений внутри системы баз данных. Мы также приводим примеры новых приложений, получающих приемущества от использования этой новой инфраструктуры UDF.



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