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

       

MR как инфрастуктуру UDF следующего


Мы разрабатывали SQL/ MR как инфрастуктуру UDF следующего поколения, в которой функции являются:
  1. самоописываемыми и динамически полиморфными – это значит, что входная схема SQL/MR-функции определяется неявным образом во время обработки запроса, и выходная схема определяется программным образом самой функцией во время выполнения запроса;

  2. естественным образом параллелизуемыми – как для многоядерных машин, так и для массивно-параллельных кластеров;

  3. поддающимися композиции, поскольку мы определяем их поведение на входе и выходе таким образом, что внешне они подобны подзапросам SQL (и, следовательно, с вызовом функции можно обращаться, как с таблицей);

  4. эквивалентными подзапросам, что позволяет системе применять обычную оценочную оптимизацию запросов на основе статистики и методы динамической реорганизации запросов.

В нашей реализации инфрастуктуры SQL/MR:
  1. функции могут организовывать структуры в своей собственной памяти и в файлах;

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

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

Наша модель совместима с множеством языков программирования, включая управляемые языки (managed language, Java, C#), традиционные языки (C, C++) и скриптовые языки (Python, Ruby).
Эти особенности позволяют реализовывать SQL/MR-функции, как истинно библиотечные функции, работающие над произвольными входными данными; конкретное поведение функций определяется во время обработки запросов, в контексте которых они используются. Это позволяет экспертам разрабатывать мощные функции, которые могут затем использоваться другими людьми в иных контекстах без изменения кода. Инфраструктура SQL/MR и ее реализация делают систему nCluster компании Aster Data дружественной по отношению к приложениям.
Оставшаяся часть статьи организована следующим образом.В разд. 2 обсуждаются близкие по тематике работы. В разд. 3 и 4 рассматриваются синтаксис SQL/MR и реализация инфраструктуры. В разд. 5 демонстрируются некоторые примеры SQL/MR-функций. Экспериментальные результаты, демонстрирующие масштабируемость и производительность SQL/MR-функций, представлены в разд. 6. Разд. 6 содержит заключительные замечания.

Содержание  Назад  Вперед