|
| ||||||||||||
| ||||||||||||
|
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. |
|
CITForum © 1997–2025