2010 г.
SQL/MapReduce: практический подход к поддержке самоописываемых, полиморфных и параллелизуемых функций, определяемых пользователями
Эрик Фридман, Питер Павловски и Джон Кислевич
Перевод: Сергей Кузнецов
Назад Содержание
7. Заключение
В этой статье мы представили SQL/MapReduce – новую инфраструктуру для определяемых пользователями функций. В этой инфраструктуре функции являются самоописываемыми, полиморфными и естественным образом параллелизуемыми – как для многоядерных процессоров, так и для массивно-параллельных кластеров. Функции принимают на входе и прозводят на выходе отношения; в этом смысле их поведение идентично подзапросам SQL. Это позволяет производить композиции функций, т.е. вызовы функций могут быть вложенными, а результаты вызовов можно соединять с результатами подзапросов или других функций. В действительности, SQL-запрос с вложенными подзапросами и вызовами функций теперь тривиальным образом определяет путь потока данных, связывающий подзапросы SQL и вызовы SQL/MR-функций. Поскольку функции ведут себя подобно подзапросам, мы обеспечиваем возможность оценочному повторному оптимизатору запросов собирать статистику во время выполнения запросов и изменять порядок выполнения функций и подзапросов для повышения производительности. SQL/MR-функции являются самоописываемыми во время обработки запросов, что позволяет им выбирать свое поведение и результирующую схему на основе контекста, в котором они используются. Этот самоописываемый динамический полиморфизм содействует созданию развитых аналитических библиотек, которые могут использоваться в самых разных контекстах.
Мы также представили реализацию инфраструктуры SQL/MapReduce в массивно-параллельной, без совместного использования ресурсов СУБД nCluster компании Aster. В этой реализации функции могут управлять собственными структурами в основной и дисковой памяти. СУБД управляет ресурсами, потребляемыми функциями, что обеспечивает безопасность выполнения функций для общей жизнеспособности системы.
Обеспечивая модель погружения мощных функций в среду параллельной базы данных, инфраструктура SQL/MR поддерживает дружественность СУБД по отношению к приложениям.
Благодарности
Мы признательны технической группе Aster Data Systems, без которой SQL/MR и эта статья были бы невозможны. В частности, мы благодарим Прасана Роя (Prasan Roy), Мохита Арона (Mohit Aron), Брента Чуна (Brent Chun) и Рангараяна Васудевана (Rangarajan Vasudevan). Мы также благодарны Эрли Льюису (Arley Lewis) за его техническое редактирование.
8. Литература
[1] Apache Software Foundation. Hadoop, March 2009.
[2] Apache Software Foundation. Hive, March 2009.
[3] Aster Data Systems. Aster nCluster database. White
paper, 2008. Available online: www.asterdata.com.
[4] M. Carey and L. Haas. Extensible database
management systems. SIGMOD Rec., 19(4):54–60, 1990.
[5] R. Chaiken, B. Jenkins, P.-A. Larson, B. Ramsey,
D. Shakib, S. Weaver, and J. Zhou. SCOPE: Easy and efficient parallel processing of massive data sets. In VLDB, pages 1265–1276, 2008.
[6] S. Chaudhuri and K. Shim. Optimization of queries with user-defined predicates. ACM Trans. Database Syst., 24(2):177–228, 1999.
[7] J. Dean and S. Ghemawat. MapReduce: Simplified data processing on large clusters. In OSDI, pages 137–150, 2004.
[8] D. DeWitt and J. Gray. Parallel database systems: The future of high performance database systems. Commun. ACM, 35(6):85–98, 1992.
[9] M. Greenwald and S. Khanna. Space-efficient online computation of quantile summaries. In SIGMOD Conference, pages 58–66, 2001.
[10] J. M. Hellerstein and J. F. Naughton. Query execution techniques for caching expensive methods. In SIGMOD, pages 423–434, 1996.
[11] J. M. Hellerstein and M. Stonebraker. Predicate migration: Optimizing queries with expensive
predicates. In SIGMOD, pages 267–276, 1993.
[12] IBM. IBM DB2 Universal Database Application
Development Guide: Programming Server Applications, 2004. Version 8.2.
[13] M. Isard, M. Budiu, Y. Yu, A. Birrell, and D. Fetterly. Dryad: Distributed data-parallel programs from sequential building blocks. In EuroSys, pages 59–72, 2007.
[14] M. Jaedicke and B. Mitschang. On parallel processing of aggregate and scalar functions in object-relational DBMS. In SIGMOD, pages 379–389, 1998.
[15] M. Jaedicke and B. Mitschang. User-defined table operators: Enhancing extensibility for ORDBMS. In VLDB, pages 494–505, 1999.
[16] Microsoft Corporation. Table-valued user-defined functions, June 2009. http://msdn.microsoft.com/.
[17] C. Olston, B. Reed, U. Srivastava, R. Kumar, and
A. Tomkins. Pig latin: A not-so-foreign language for
data processing. In SIGMOD, pages 1099–1110, 2008.
[18] Oracle. Oracle Database PL/SQL Language Reference,
2008. Version 11g Release 1.
[19] M. Stonebraker. Inclusion of new types in relational database systems. In ICDE, pages 262–269, 1986.
[20] M. Stonebraker, J. Anton, and E. Hanson. Extending a database system with procedures. ACM Trans.
Database Syst., 12(3):350–376, 1987.
[21] M. Stonebraker and G. Kemnitz. The POSTGRES
next generation database management system.
Commun. ACM, 34(10):78–92, 1991.
[22] M. Stonebraker, L. A. Rowe, and M. Hirohama. The
implementation of POSTGRES. IEEE Trans. Knowl.
Data Eng., 2(1):125–142, 1990.
Назад Содержание