map-reduce и параллельные аналитические базы данных

139
Map-Reduce и Map-Reduce и параллельные параллельные аналитические базы аналитические базы данных данных Сергей Кузнецов Сергей Кузнецов ИСП РАН, ЦИТФорум ИСП РАН, ЦИТФорум [email protected] [email protected]

Upload: hunter

Post on 08-Jan-2016

65 views

Category:

Documents


8 download

DESCRIPTION

Сергей Кузнецов ИСП РАН, ЦИТФорум [email protected]. Map-Reduce и параллельные аналитические базы данных. Введение (1). Клермонтский отчет: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Map-Reduce и параллельные аналитические базы данных

Map-Reduce и параллельные Map-Reduce и параллельные аналитические базы данныханалитические базы данных

Сергей КузнецовСергей Кузнецов

ИСП РАН, ЦИТФорумИСП РАН, ЦИТФорум

[email protected]@ispras.ru

Page 2: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 22

Введение (1)Введение (1)

Клермонтский отчет:Клермонтский отчет:– ... сбор, интеграция и анализ данных ... сбор, интеграция и анализ данных

больше не считаются расходами на больше не считаются расходами на ведение бизнеса; данные – это ключ к ведение бизнеса; данные – это ключ к достижению эффективности и достижению эффективности и прибыльности бизнеса. В результате прибыльности бизнеса. В результате быстро развивается индустрия, быстро развивается индустрия, поддерживающая анализ данныхподдерживающая анализ данных

Page 3: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 33

Введение (2)Введение (2)К концу прошлого века аналитические К концу прошлого века аналитические средства баз данных можно было средства баз данных можно было пересчитать по пальцам одной рукипересчитать по пальцам одной руки

IBM DB2, Teradata, Sybase IQ, Oracle, IBM DB2, Teradata, Sybase IQ, Oracle, частично Microsoft SQL Serverчастично Microsoft SQL Server– только в DB2 и Teradata поддерживалась только в DB2 и Teradata поддерживалась

архитектура архитектура sharing-nothingsharing-nothing– только в Sybase IQ использовалось только в Sybase IQ использовалось

поколоночное хранение таблиц поколоночное хранение таблиц

Page 4: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 44

Введение (Введение (33))CC начала 2000-х активизировалось начала 2000-х активизировалось направление Data Warehouse Appliance направление Data Warehouse Appliance или Analytic Applianceили Analytic Appliance– аббревиатура DWAAаббревиатура DWAAОсновная цель - создание аппаратно-Основная цель - создание аппаратно-программных средств, программных средств, – существенно более дешевых, чем у существенно более дешевых, чем у

предлагаемых поставщиками предлагаемых поставщиками универсальных СУБД, но при этом универсальных СУБД, но при этом

– обеспечивающих бобеспечивающих боольшую льшую производительность и масштабируемость производительность и масштабируемость при работе со сверхбольшими хранилищами при работе со сверхбольшими хранилищами данных данных

Page 5: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 55

Введение (4)Введение (4)Аналитические параллельные СУБД (1)Аналитические параллельные СУБД (1)

Направление DWAA появилось еще в Направление DWAA появилось еще в 1980-е гг.1980-е гг.

Соответствующие пионерские продукты Соответствующие пионерские продукты были созданы в компании Britton Lee были созданы в компании Britton Lee Inc., которая в 1989 г. была сначалаInc., которая в 1989 г. была сначала– переименована в ShareBase Corporation, а переименована в ShareBase Corporation, а

затем затем – поглощена компанией Teradata, которая к поглощена компанией Teradata, которая к

этому времени тоже придерживалась этому времени тоже придерживалась подхода DWAA подхода DWAA

Page 6: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 66

Введение (5)Введение (5)Аналитические параллельные СУБД (2)Аналитические параллельные СУБД (2)

Аппаратно-программное решение, Аппаратно-программное решение, основанное на ассоциативной основанное на ассоциативной адресации элементов хранения адресации элементов хранения данных, имелось у компании ICLданных, имелось у компании ICL– Content Addressable File StoreContent Addressable File Store

Однако на рынке систем Однако на рынке систем поддержки хранилищ данных на поддержки хранилищ данных на основе подхода DWAA с тех пор основе подхода DWAA с тех пор осталась только Teradata осталась только Teradata

Page 7: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 77

Введение (6)Введение (6)Аналитические параллельные СУБД (3)Аналитические параллельные СУБД (3)

Возрождение направления DWAA в Возрождение направления DWAA в начале 2000-х связано с ростом начале 2000-х связано с ростом заинтересованности компаний в заинтересованности компаний в недорогих и эффективных недорогих и эффективных решениях для поддержки решениях для поддержки хранилищ данных и их анализахранилищ данных и их анализаСтали возникать софтверные Стали возникать софтверные стартапы, первым из которых стартапы, первым из которых стала компания Netezza стала компания Netezza

Page 8: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 88

Введение (7)Введение (7)Аналитические параллельные СУБД (4)Аналитические параллельные СУБД (4)

Эффективное DWAA-решение на основе Эффективное DWAA-решение на основе – программируемых вентильных матриц (Field программируемых вентильных матриц (Field

Programmable Gate Array, FPGA) и Programmable Gate Array, FPGA) и – процессоров PowerPCпроцессоров PowerPCИспользование FPGA в контроллерах Использование FPGA в контроллерах магнитных дисков позволяет магнитных дисков позволяет осуществлять "на лету" первичную осуществлять "на лету" первичную фильтрацию данныхфильтрацию данныхПрименение PowerPC вместо Intel (по Применение PowerPC вместо Intel (по утверждению компании) позволяет утверждению компании) позволяет снизить энергопотребление и расходы снизить энергопотребление и расходы на охлаждение на охлаждение

Page 9: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 99

Введение (8)Введение (8)Аналитические параллельные СУБД (5)Аналитические параллельные СУБД (5)

С тех пор появилось еще около десяти С тех пор появилось еще около десяти новых компаний, ориентирующихся на новых компаний, ориентирующихся на разработку DWAA с применением почти разработку DWAA с применением почти всегдавсегда– разновидностей массивно-параллельной разновидностей массивно-параллельной

архитектуры (MPP)архитектуры (MPP)– "sharing-nothing""sharing-nothing"

Vertica SystemsVertica Systems– MPP, MPP, – поколоночное хранение таблиц поколоночное хранение таблиц

Page 10: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 1010

Введение (9)Введение (9)Аналитические параллельные СУБД (6)Аналитические параллельные СУБД (6)

DATAllegro Inc. DATAllegro Inc. – недавно поглощена Microsoftнедавно поглощена Microsoft– проект Madison, ставший основой SQL проект Madison, ставший основой SQL

Server 2008 R2 Parallel Data WarehouseServer 2008 R2 Parallel Data Warehouse– MPPMPP– основана на использовании СУБД основана на использовании СУБД

Ingres Ingres – тем самым, таблицы хранятся по тем самым, таблицы хранятся по

строкам строкам

Page 11: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 1111

Введение (10)Введение (10)Аналитические параллельные СУБД (7)Аналитические параллельные СУБД (7)

GreenplumGreenplum– MPPMPP– система основана на использовании СУБД система основана на использовании СУБД

PostgreSQL PostgreSQL – тем самым, таблицы хранятся по строкам тем самым, таблицы хранятся по строкам Aster Data SystemsAster Data Systems– MPPMPP– таблицы хранятся по строкам таблицы хранятся по строкам KognitioKognitio– MPPMPP– таблицы хранятся по строкам таблицы хранятся по строкам

Page 12: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 1212

Введение (11)Введение (11)Аналитические параллельные СУБД (8)Аналитические параллельные СУБД (8)

EXASOL AGEXASOL AG– MPPMPP– поколоночное хранение таблицпоколоночное хранение таблиц

Calpont CorporationCalpont Corporation– MPP, поколоночное хранение таблицMPP, поколоночное хранение таблиц– система (InfiniDB) внешне схожа с MySQL система (InfiniDB) внешне схожа с MySQL

Dataupia CorporationDataupia Corporation– MPPMPP– таблицы хранятся по строкам таблицы хранятся по строкам

Page 13: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 1313

Введение (12)Введение (12)Аналитические параллельные СУБД (9)Аналитические параллельные СУБД (9)

IInfobrightnfobright– поколоночное хранение таблицпоколоночное хранение таблиц– система основана на MySQLсистема основана на MySQL– ориентирована на использование многоядерных ориентирована на использование многоядерных

процессоровпроцессоров– массивный параллелизм не используетсямассивный параллелизм не используется

KickfireKickfire– поколоночное хранение таблицпоколоночное хранение таблиц– используется специальная аппаратура, ускоряющая используется специальная аппаратура, ускоряющая

выполнение SQL-запросоввыполнение SQL-запросов– система создана на основе MySQL система создана на основе MySQL – не основана на массивно-параллельной архитектуре не основана на массивно-параллельной архитектуре

Page 14: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 1414

Введение (1Введение (133))Аналитические параллельные СУБД (Аналитические параллельные СУБД (1010))

Подход DWAA проникает и в продукты Подход DWAA проникает и в продукты основных поставщиков SQL-ориентированных основных поставщиков SQL-ориентированных СУБДСУБДРазаботка компании DATAllegro стала основой Разаботка компании DATAllegro стала основой массивно-параллельного варианта Microsoft массивно-параллельного варианта Microsoft SQL ServerSQL Server– SQL Server 2008 R2 Parallel Data WarehouseSQL Server 2008 R2 Parallel Data Warehouse

Oracle обеспечивает специализированное Oracle обеспечивает специализированное массивно-параллельное хранилище табличных массивно-параллельное хранилище табличных данных Oracle Exadata Storage Serverданных Oracle Exadata Storage Server– позволяющее значительно ускорить работу основной позволяющее значительно ускорить работу основной

СУБД СУБД

Page 15: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 1515

Введение (14)Введение (14)Аналитические параллельные СУБД (Аналитические параллельные СУБД (111)1)

У разных решений категории DWAA имеются свои интересные У разных решений категории DWAA имеются свои интересные технические особенности, заслуживающие более глубокого технические особенности, заслуживающие более глубокого обсуждения, анализа и сравненияобсуждения, анализа и сравненияИх можно классифицировать и сравнивать по разным Их можно классифицировать и сравнивать по разным критериямкритериямОднако это не является целью докладаОднако это не является целью докладаНекоторую попытку такого анализа представляет собой обзор Некоторую попытку такого анализа представляет собой обзор – Richard Hackathorn, Colin White. Data Warehouse Appliances: Richard Hackathorn, Colin White. Data Warehouse Appliances:

Evolution or Revolution?Evolution or Revolution? – http://www.beyeresearch.com/study/4639http://www.beyeresearch.com/study/4639

Значительный рост интереса к направлению DWAA, к Значительный рост интереса к направлению DWAA, к специализированным СУБД вообще и к СУБД Vertica в специализированным СУБД вообще и к СУБД Vertica в частности вызвала статьячастности вызвала статья– Майкл Стоунбрейкер, Угур Кетинтемел. Один размер пригоден для Майкл Стоунбрейкер, Угур Кетинтемел. Один размер пригоден для

всех: идея, время которой пришло и ушловсех: идея, время которой пришло и ушло – http://citforum.ru/database/articles/one_size_fits_all/http://citforum.ru/database/articles/one_size_fits_all/

Page 16: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 1616

Введение (15)Введение (15)При чем здесь MapReduce? (1)При чем здесь MapReduce? (1)

Сосредоточимся на частном, но очень важном Сосредоточимся на частном, но очень важном в настоящее время вопросе взаимоотношений в настоящее время вопросе взаимоотношений технологий массивно-параллельных технологий массивно-параллельных аналитических СУБД и MapReduceаналитических СУБД и MapReduceКонтекст DWAA является естественным, Контекст DWAA является естественным, поскольку большинство СУБД, созданных на поскольку большинство СУБД, созданных на основе подхода DWAA, являются массивно-основе подхода DWAA, являются массивно-параллельными без использования общих параллельными без использования общих ресурсовресурсовСистемы создавались в расчете на Системы создавались в расчете на использование в кластерной аппаратной использование в кластерной аппаратной архитектуре, и они сравнительно легко могут архитектуре, и они сравнительно легко могут быть перенесены в "облачную" среду быть перенесены в "облачную" среду динамически конфигурируемых кластеров динамически конфигурируемых кластеров

Page 17: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 1717

Введение (16)Введение (16)При чем здесь MapReduce? (2)При чем здесь MapReduce? (2)

Появление "родной" для "облачной" среды Появление "родной" для "облачной" среды технологии MapReduce и в особенности технологии MapReduce и в особенности – энтузиазм по части ее использования, проявленный энтузиазм по части ее использования, проявленный

многими потенциальными пользователями многими потенциальными пользователями параллельных СУБД, параллельных СУБД,

очень озаботили представителей направления очень озаботили представителей направления DWAADWAAСначала авторитетные представители Сначала авторитетные представители сообщества баз данных и одновременно сообщества баз данных и одновременно активные сторонники подхода DWAA Майкл активные сторонники подхода DWAA Майкл Стоунбрейкер и Дэвид Девитт старались Стоунбрейкер и Дэвид Девитт старались убедить общественность в том, что MapReduceубедить общественность в том, что MapReduce– это технология, уступающая технологии это технология, уступающая технологии

параллельных баз данных по всем статьямпараллельных баз данных по всем статьям

Page 18: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 1818

Введение (17)Введение (17)При чем здесь MapReduce? (3)При чем здесь MapReduce? (3)

Потом была проведена серия экспериментов, Потом была проведена серия экспериментов, продемонстрировавшая, что при решении типичных продемонстрировавшая, что при решении типичных простых аналитических задач MapReduce простых аналитических задач MapReduce – уступает в производительности не только поколоночной уступает в производительности не только поколоночной

СУБД Vertica, но и традиционной массивно-параллельной СУБД Vertica, но и традиционной массивно-параллельной СУБД с хранением таблиц по строкамСУБД с хранением таблиц по строкам

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

– http://citforum.ru/database/articles/mr_vs_dbms/http://citforum.ru/database/articles/mr_vs_dbms/ Доводы и результаты экспериментов были весьма Доводы и результаты экспериментов были весьма солидными и убедительными, и солидными и убедительными, и – вряд ли кто-нибудь из людей, знакомых с обеими вряд ли кто-нибудь из людей, знакомых с обеими

технологиями, сомневается в том, что технологиями, сомневается в том, что – MapReduce не вытеснит параллельные СУБД, и что MapReduce не вытеснит параллельные СУБД, и что – эти технологии будут благополучно сосуществовать в эти технологии будут благополучно сосуществовать в

"облаках" и в среде кластерных архитектур вообще"облаках" и в среде кластерных архитектур вообще

Page 19: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 1919

Введение (18)Введение (18)При чем здесь MapReduce? (4)При чем здесь MapReduce? (4)

Однако возникает другой вопрос: Однако возникает другой вопрос: – нет ли в технологии MapReduce каких-либо нет ли в технологии MapReduce каких-либо

положительных черт, которых не хватает положительных черт, которых не хватает параллельным СУБД? параллельным СУБД?

Можно ли каким-либо образом добавить эти Можно ли каким-либо образом добавить эти черты в параллельные СУБД, сохранив их черты в параллельные СУБД, сохранив их основные качества: основные качества: – декларативный доступ на языке SQL, декларативный доступ на языке SQL, – оптимизацию запросов и т.д.оптимизацию запросов и т.д.

Понятно, что у параллельных СУБД имеется Понятно, что у параллельных СУБД имеется масса положительных черт, которыми не масса положительных черт, которыми не обладает MapReduce, но похоже, что обладает MapReduce, но похоже, что добавление их к MapReduce добавление их к MapReduce – изменило бы суть этой технологии, превратив ее в изменило бы суть этой технологии, превратив ее в

технологию параллельных СУБД технологию параллельных СУБД

Page 20: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 2020

Введение (19)Введение (19)При чем здесь MapReduce? (5)При чем здесь MapReduce? (5)

На эти два вопроса удалось получить положительный На эти два вопроса удалось получить положительный ответответВ нескольких проектах, связанных с направлением В нескольких проектах, связанных с направлением DWAA, удалось воспользоваться такими DWAA, удалось воспользоваться такими преимуществами MapReduce, как преимуществами MapReduce, как – масштабируемость до десятков тысяч узлов, масштабируемость до десятков тысяч узлов, – отказоустойчивость, отказоустойчивость, – дешевизна загрузки данных, дешевизна загрузки данных, – возможность использования явно написанного кода, возможность использования явно написанного кода,

который хорошо распараллеливаетсякоторый хорошо распараллеливаетсяНи в одном проекте не удалось воспользоваться сразу Ни в одном проекте не удалось воспользоваться сразу всеми этими преимуществами, но имеющиеся всеми этими преимуществами, но имеющиеся достижения позволяют достижения позволяют – добавить в параллельные СУБД важные качества, добавить в параллельные СУБД важные качества,

которыми они до сих по не обладали которыми они до сих по не обладали

Page 21: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 2121

Введение (20)Введение (20)При чем здесь MapReduce? (6)При чем здесь MapReduce? (6)

Рассмотрим три подхода к интеграции Рассмотрим три подхода к интеграции технологий MapReduce и параллельных технологий MapReduce и параллельных СУБД, предложенных и реализованных СУБД, предложенных и реализованных специалистамиспециалистами– компаний Greenplum и Aster Dataкомпаний Greenplum и Aster Data– университетов Yale и Brownуниверситетов Yale и Brown– компании Vertica, компании Vertica,

которые можно было бы назвать:которые можно было бы назвать:– MapReduce внутри параллельной СУБД MapReduce внутри параллельной СУБД – СУБД внутри среды MapReduce и СУБД внутри среды MapReduce и – MapReduce сбоку от параллельной СУБД MapReduce сбоку от параллельной СУБД

Page 22: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 2222

Введение (21)Введение (21)При чем здесь MapReduce? (7)При чем здесь MapReduce? (7)

Первый подход ориентирован на поддержку написания и Первый подход ориентирован на поддержку написания и выполнения хранимых на стороне сервера баз данных выполнения хранимых на стороне сервера баз данных пользовательских функций, которые хорошо пользовательских функций, которые хорошо распараллеливаются в кластерной средераспараллеливаются в кластерной среде– используется преимущество MapReduce по применению явно используется преимущество MapReduce по применению явно

написанного кода и его распараллеливанию написанного кода и его распараллеливанию Второй подход направлен на использование MapReduce в Второй подход направлен на использование MapReduce в качестве инфраструктуры параллельной СУБД, в качестве качестве инфраструктуры параллельной СУБД, в качестве базовых компонентов которой используются традиционные не базовых компонентов которой используются традиционные не параллельные СУБДпараллельные СУБД– применение MapReduce позволяет добиться неограниченной применение MapReduce позволяет добиться неограниченной

масштабируемости получаемой системы и ее отказоустойчивости масштабируемости получаемой системы и ее отказоустойчивости на уровне выполнения запросов на уровне выполнения запросов

При применении третьего подхода MapReduce используется При применении третьего подхода MapReduce используется для выполнения процедуры ETL над исходными данными до для выполнения процедуры ETL над исходными данными до их загрузки в систему параллельных баз данныхих загрузки в систему параллельных баз данных– используется преимущество MapReduce в отношении дешевой используется преимущество MapReduce в отношении дешевой

загрузки данных до их обработкизагрузки данных до их обработки

Page 23: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 2323

MapReduce: модель и реализации MapReduce: модель и реализации (1)(1)

Программная модель MapReduce была Программная модель MapReduce была придумана несколько лет тому назад в придумана несколько лет тому назад в компании Google, и там же была компании Google, и там же была выполнена выполнена – первая реализация этой модели на основе первая реализация этой модели на основе

распределенной файловой системы GFS распределенной файловой системы GFS (Google File System)(Google File System)

Эта реализация активно используется в Эта реализация активно используется в программных продуктах самой Google, программных продуктах самой Google, но является но является – сугубо проприетарной и недоступна для сугубо проприетарной и недоступна для

использования вне Google использования вне Google

Page 24: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 2424

MapReduce: модель и реализации MapReduce: модель и реализации (2)(2)

Свободно доступная реализация Hadoop Свободно доступная реализация Hadoop MapReduce была выполнена в проекте Hadoop MapReduce была выполнена в проекте Hadoop сообщества Apacheсообщества ApacheОна основана на использовании распределенной Она основана на использовании распределенной файловой системы HDFS (Hadoop Distributed File файловой системы HDFS (Hadoop Distributed File System) System) Реальную популярность MapReduce принесла Реальную популярность MapReduce принесла именно реализация Hadoop в силу своей именно реализация Hadoop в силу своей доступности и открытостидоступности и открытостиШирокое использование Hadoop MapReduce в Широкое использование Hadoop MapReduce в различных исследовательских и различных исследовательских и исследовательских проектах приносит исследовательских проектах приносит несомненную пользу этой системе, несомненную пользу этой системе, – стимулируя разработчиков к ее постоянному стимулируя разработчиков к ее постоянному

совершенствованию совершенствованию

Page 25: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 2525

MapReduce: модель и реализации MapReduce: модель и реализации (3)(3)

Однако реализация Hadoop MapReduce Однако реализация Hadoop MapReduce полностью основана на спецификациях Google, полностью основана на спецификациях Google, и поэтому каноническим описанием технологии и поэтому каноническим описанием технологии была и остается статьябыла и остается статья– Jeffrey Dean and Sanjay Ghemawat. MapReduce: Jeffrey Dean and Sanjay Ghemawat. MapReduce:

Simplified Data Processing on Large ClustersSimplified Data Processing on Large Clusters– http://labs.google.com/papers/mapreduce.htmlhttp://labs.google.com/papers/mapreduce.html

Заметим, что в документации Hadoop Заметим, что в документации Hadoop MapReduce используется несколько отличная MapReduce используется несколько отличная терминологиятерминологияВ этой части доклада из уважения к первенству В этой части доклада из уважения к первенству Google используются оригинальные термины, Google используются оригинальные термины, – в следующих разделах, там где будет иметься в виду в следующих разделах, там где будет иметься в виду

конкретно реализация Hadoop MapReduce, будет конкретно реализация Hadoop MapReduce, будет использоваться терминология Hadoopиспользоваться терминология Hadoop

Page 26: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 2626

MapReduce: модель и реализации MapReduce: модель и реализации (3)(3)Общая модель программирования MapReduce (1)Общая модель программирования MapReduce (1)

Вычисления производятся Вычисления производятся – над множествами входных пар "ключ-значение", и над множествами входных пар "ключ-значение", и

в результате каждого вычисления также в результате каждого вычисления также производится производится – некоторое множество результирующих пар "ключ-некоторое множество результирующих пар "ключ-

значение"значение"

Для представления вычислений в среде Для представления вычислений в среде MapReduce используются две основные MapReduce используются две основные функции: функции: – MapMap и и – ReduceReduce

Обе функции явно кодируются разрабочиками Обе функции явно кодируются разрабочиками приложений в среде MapReduce приложений в среде MapReduce

Page 27: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 2727

MapReduce: модель и реализации MapReduce: модель и реализации (4)(4)Общая модель программирования MapReduce (2)Общая модель программирования MapReduce (2)

Функция Функция MapMap в цикле обрабатывает каждую в цикле обрабатывает каждую пару из множества входных пар и производит пару из множества входных пар и производит множество промежуточных пар "ключ-множество промежуточных пар "ключ-значение"значение"Среда MapReduce групирует все Среда MapReduce групирует все промежуточные значения с одним и тем же промежуточные значения с одним и тем же ключом ключом II и передает их функции и передает их функции ReduceReduce. . Функция Функция ReduceReduce получает значение ключа получает значение ключа II и и множество значений, связанных с этим множество значений, связанных с этим ключомключомВ типичных ситуациях каждая группа В типичных ситуациях каждая группа обрабатывается (в цикле) таким образом, что обрабатывается (в цикле) таким образом, что в результате одного вызова функции в результате одного вызова функции образуется не более одного результирующего образуется не более одного результирующего значения значения

Page 28: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 2828

MapReduce: модель и реализации MapReduce: модель и реализации (5)(5)Реализация в распределенной среде (1)Реализация в распределенной среде (1)

Реализации MapReduce от Google и Hadoop ориентированы на Реализации MapReduce от Google и Hadoop ориентированы на использование в кластерной распределенной среде со использование в кластерной распределенной среде со следующими основными характеристиками:следующими основными характеристиками:– узлы среды выполнения MR-приложений представляют собой узлы среды выполнения MR-приложений представляют собой

компьютеры общего назначения с операционной системой Linux;компьютеры общего назначения с операционной системой Linux;– используется стандартное сетевое оборудование с адаптерами, используется стандартное сетевое оборудование с адаптерами,

рассчитанными на скорости передачи в 100 мегабит в секунду или рассчитанными на скорости передачи в 100 мегабит в секунду или 1 гигабит в секунду, 1 гигабит в секунду,

но средняя пропускная способность существенно ниже;но средняя пропускная способность существенно ниже;– кластер состоит из сотен или тысяч машин, так что вполне кластер состоит из сотен или тысяч машин, так что вполне

вероятны отказы отдельных узлов;вероятны отказы отдельных узлов;– для хранения данных используются недорогие дисковые для хранения данных используются недорогие дисковые

устройства, подключенные напрямую к отдельным машинам;устройства, подключенные напрямую к отдельным машинам;– для управления данными, хранящимися на этих дисках, для управления данными, хранящимися на этих дисках,

используется распределенная файловая система;используется распределенная файловая система;– пользователи представляют свои задания в систему пользователи представляют свои задания в систему

планирования; каждое задание состоит из некоторого набора планирования; каждое задание состоит из некоторого набора задач, которые отображаются планировщиком на некоторый задач, которые отображаются планировщиком на некоторый набор узлов кластеранабор узлов кластера

Page 29: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 2929

MapReduce: модель и реализации MapReduce: модель и реализации (6)(6)Реализация в распределенной среде (2)Реализация в распределенной среде (2)

Выполнение MR-приложения (1)Выполнение MR-приложения (1)

Вызовы Вызовы MapMap распределяются по нескольким распределяются по нескольким узлам кластера путем разделения входных узлам кластера путем разделения входных данных на данных на MM непересекающихся групп (split) непересекающихся групп (split)Входные группы могут параллельно Входные группы могут параллельно обрабатываться на разных машинахобрабатываться на разных машинахВызовы Вызовы ReduceReduce распределяются путем распределяются путем разделения пространства промежуточных разделения пространства промежуточных ключей на ключей на RR частей с использованием частей с использованием некоторой функции разделениянекоторой функции разделения– например, функции хэшированиянапример, функции хэширования

Число разделов Число разделов RR и функция разделения и функция разделения задаются пользователем задаются пользователем

Page 30: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 3030

MapReduce: модель и реализации MapReduce: модель и реализации (7)(7)Реализация в распределенной среде (3)Реализация в распределенной среде (3)

Выполнение MR-приложения (2)Выполнение MR-приложения (2)

Выполнение MR-программы происходит следующим Выполнение MR-программы происходит следующим образомобразомСначала среда MapReduce расщепляет входной файл на Сначала среда MapReduce расщепляет входной файл на MM частей, частей, – размер которых может задаваться пользователемразмер которых может задаваться пользователем

Затем сразу в нескольких узлах кластера запускается Затем сразу в нескольких узлах кластера запускается основная программа MapReduceосновная программа MapReduceОдин из экземпляров этой программы играет Один из экземпляров этой программы играет специальную роль и называется специальную роль и называется распорядителем распорядителем (master)(master)Остальные экземпляры являются Остальные экземпляры являются исполнителями исполнителями (worker)(worker), , – которым распорядитель назначает работукоторым распорядитель назначает работу

Распорядитель должен назначить исполнителям для Распорядитель должен назначить исполнителям для выполнения выполнения MM задач задач MapMap и и RR задач задач ReduceReduce

Page 31: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 3131

MapReduce: модель и реализации MapReduce: модель и реализации (8)(8)Реализация в распределенной среде (4)Реализация в распределенной среде (4)

Выполнение MR-приложения (3)Выполнение MR-приложения (3)

Исполнитель задачи Исполнитель задачи MapMap – читает содержимое соответствующей группы, читает содержимое соответствующей группы, – разбирает пары "ключ-значение" входных данных и разбирает пары "ключ-значение" входных данных и – передает каждую пару в определенную пользователем передает каждую пару в определенную пользователем

функцию функцию MapMapПромежуточные пары "ключ-значение", производимые Промежуточные пары "ключ-значение", производимые функцией функцией MapMap, буферизуются в основной памяти, буферизуются в основной памятиПериодически буферизованные пары, разделяемые на Периодически буферизованные пары, разделяемые на RR областей на основе функции разделения, записываются в областей на основе функции разделения, записываются в локальную дисковую память исполнителялокальную дисковую память исполнителяКоординаты этих сохраненных на диске буферизованных Координаты этих сохраненных на диске буферизованных пар отсылаются распорядителю, который, пар отсылаются распорядителю, который, – передает эти координаты исполнителям задачи передает эти координаты исполнителям задачи ReduceReduce

ii-ый -ый ReduceReduce-исполнитель снабжается координатами всех -исполнитель снабжается координатами всех ii-ых областей буферизованных пар, произведенных всеми -ых областей буферизованных пар, произведенных всеми MM MapMap-исполнителями -исполнителями

Page 32: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 3232

MapReduce: модель и реализации MapReduce: модель и реализации ((99))Реализация в распределенной среде (Реализация в распределенной среде (55))

Выполнение MR-приложения (Выполнение MR-приложения (44))

После получения этих координат исполнитель После получения этих координат исполнитель задачи задачи ReduceReduce с использованием механизма с использованием механизма RPCRPC – переписывает данные с локальных дисков переписывает данные с локальных дисков

исполнителей задачи исполнителей задачи MapMap в свою память или на в свою память или на локальный дисклокальный диск

После переписи всех промежуточных данных После переписи всех промежуточных данных выполняется их сортировка по значениям выполняется их сортировка по значениям промежуточного ключа промежуточного ключа – для образования групп с одинаковым значением для образования групп с одинаковым значением

ключаключа

Если объем промежуточных данных слишком Если объем промежуточных данных слишком велик для выполнения сортировки в основной велик для выполнения сортировки в основной памяти,памяти,– используется внешняя сортировка используется внешняя сортировка

Page 33: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 3333

MapReduce: модель и реализации MapReduce: модель и реализации ((1010))Реализация в распределенной среде (Реализация в распределенной среде (55))

Выполнение MR-приложения (Выполнение MR-приложения (44))

Далее Далее ReduceReduce-исполнитель организует цикл -исполнитель организует цикл по отсортированным промежуточным данным по отсортированным промежуточным данным и для каждого уникального значения ключа и для каждого уникального значения ключа – вызывает пользовательскую функцию вызывает пользовательскую функцию ReduceReduce с с

передачей ей в качестве аргумента значения ключа передачей ей в качестве аргумента значения ключа и соответствующего множества значенийи соответствующего множества значений

Результирующие пары функции Результирующие пары функции ReduceReduce добавляются в окончательный добавляются в окончательный результирующий файл данного результирующий файл данного ReduceReduce--исполнителяисполнителяПосле завершения всех задач После завершения всех задач MapMap и и ReduceReduce распорядитель активизирует программу распорядитель активизирует программу пользователя, вызывавшую MapReduce пользователя, вызывавшую MapReduce

Page 34: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 3434

MapReduce: модель и реализации MapReduce: модель и реализации ((111)1)Реализация в распределенной среде (6)Реализация в распределенной среде (6)

Выполнение MR-приложения (5)Выполнение MR-приложения (5)

После успешного завершения выполнения После успешного завершения выполнения задания MapReduce результаты размещаются задания MapReduce результаты размещаются в в RR файлах распределенной файловой файлах распределенной файловой системысистемы– имена этих результирующих файлов задаются имена этих результирующих файлов задаются

пользователемпользователем

Обычно не требуется объединять их в один Обычно не требуется объединять их в один файл, потому что часто полученные файлы файл, потому что часто полученные файлы используются в качестве входных используются в качестве входных – для запуска следующего MR-задания или для запуска следующего MR-задания или – в каком-либо другом распределенном приложении, в каком-либо другом распределенном приложении,

которое может получать входные данные из которое может получать входные данные из нескольких файлов нескольких файлов

Page 35: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 3535

MapReduce: модель и реализации MapReduce: модель и реализации ((112)2)Реализация в распределенной среде (7)Реализация в распределенной среде (7)

Отказоустойчивость (1) Отказоустойчивость (1) Отказ исполнителя (1)Отказ исполнителя (1)

Распорядитель периодически посылает каждому Распорядитель периодически посылает каждому исполнителю контрольные сообщенияисполнителю контрольные сообщенияЕсли некоторый исполнитель не отвечает на такое Если некоторый исполнитель не отвечает на такое сообщение в течение некоторого установленного сообщение в течение некоторого установленного времени, времени, – распорядитель считает его вышедшим из строяраспорядитель считает его вышедшим из строя

В этом случае все задачи В этом случае все задачи MapMap, уже выполненные и еще , уже выполненные и еще выполнявшиеся этим исполнителем, выполнявшиеся этим исполнителем, – переводятся в свое исходное состояние, и переводятся в свое исходное состояние, и – можно заново планировать их выполнение другими можно заново планировать их выполнение другими

исполнителямиисполнителямиАналогично распорядитель поступает со всеми Аналогично распорядитель поступает со всеми задачами задачами ReduceReduce, выполнявшимися отказавшим , выполнявшимися отказавшим исполнителем к моменту отказа исполнителем к моменту отказа

Page 36: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 3636

MapReduce: модель и реализации MapReduce: модель и реализации ((113)3)Реализация в распределенной среде (8)Реализация в распределенной среде (8)

Отказоустойчивость (2) Отказоустойчивость (2) Отказ исполнителя (2)Отказ исполнителя (2)

Завершившиеся задачи Завершившиеся задачи MapMap выполняются повторно по той причине, выполняются повторно по той причине, что что – их результирующие пары сохранялись на их результирующие пары сохранялись на

локальном диске отказавшего исполнителя локальном диске отказавшего исполнителя – и поэтому недоступны в других узлахи поэтому недоступны в других узлах

Завершившиеся задачи Завершившиеся задачи ReduceReduce повторно выполнять не требуется, повторно выполнять не требуется, поскольку поскольку – их результирующие пары сохраняются в их результирующие пары сохраняются в

глобальной распределенной файловой глобальной распределенной файловой системе системе

Page 37: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 3737

MapReduce: модель и реализации MapReduce: модель и реализации ((114)4)Реализация в распределенной среде (9)Реализация в распределенной среде (9)

Отказоустойчивость (3) Отказоустойчивость (3) Отказ исполнителя (3)Отказ исполнителя (3)

Если некоторая задача Если некоторая задача MapMap выполнялась исполнителем выполнялась исполнителем AA, а потом , а потом выполняется исполнителем выполняется исполнителем BB, то , то – об этом факте оповещаются все об этом факте оповещаются все

исполнители, выполняющие задачи исполнители, выполняющие задачи ReduceReduce

Любая задача Любая задача ReduceReduce, которая не , которая не успела прочитать данные, успела прочитать данные, произведенные исполнителем произведенные исполнителем AA, , – после этого будет читать данные от после этого будет читать данные от

исполнителя исполнителя BB

Page 38: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 3838

MapReduce: модель и реализации MapReduce: модель и реализации ((115)5)Реализация в распределенной среде (10)Реализация в распределенной среде (10)

Отказоустойчивость (4) Отказоустойчивость (4) Отказ распорядителя (1)Отказ распорядителя (1)

В реализациях MapReduce от Google и Hadoop В реализациях MapReduce от Google и Hadoop какая-либо репликация распорядителя не какая-либо репликация распорядителя не производитсяпроизводитсяПоскольку распорядитель выполняется только Поскольку распорядитель выполняется только в одном узле кластера, его отказ в одном узле кластера, его отказ маловероятен, и если он случается, то маловероятен, и если он случается, то – аварийно завершается все выполнение MapReduceаварийно завершается все выполнение MapReduce

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

данной контрольной точки данной контрольной точки

Page 39: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 3939

MapReduce: модель и реализации MapReduce: модель и реализации ((116)6)Реализация в распределенной среде (11)Реализация в распределенной среде (11)

Отказоустойчивость (5) Отказоустойчивость (5) Семантика при наличии отказов (1)Семантика при наличии отказов (1)

Если обеспечиваемые пользователями функции Если обеспечиваемые пользователями функции MapMap и и ReduceReduce являются детерминированными являются детерминированными– т.е. всегда выдают одни и те же результаты при т.е. всегда выдают одни и те же результаты при

одинаковых входных данных, одинаковых входных данных,

то при их выполнении в среде распределенной то при их выполнении в среде распределенной реализации MapReduce при любых условиях реализации MapReduce при любых условиях обеспечивает тот же результат, как обеспечивает тот же результат, как – при последовательном выполнении всей программы при последовательном выполнении всей программы

при отсутствии каких-либо сбоевпри отсутствии каких-либо сбоев

Это свойство обеспечивается за счет Это свойство обеспечивается за счет атомарности фиксации результатов задач атомарности фиксации результатов задач MapMap и и ReduceReduce

Page 40: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 4040

MapReduce: модель и реализации MapReduce: модель и реализации ((117)7)Реализация в распределенной среде (12)Реализация в распределенной среде (12)

Отказоустойчивость (6) Отказоустойчивость (6) Семантика при наличии отказов (2)Семантика при наличии отказов (2)

Каждая выполняемая задача записывает свои Каждая выполняемая задача записывает свои результаты в частные временные файлырезультаты в частные временные файлыЗадача Задача ReduceReduce производит один такой файл, а производит один такой файл, а задача задача MapMap – – RR файлов, по одной на каждую файлов, по одной на каждую задачу задачу ReduceReduceПо завершении задачи По завершении задачи MapMap исполнитель исполнитель посылает распорядителю сообщение, в посылает распорядителю сообщение, в котором указываются имена котором указываются имена RR временных временных файловфайловПри получении такого сообщения При получении такого сообщения распорядитель запоминает эти имена файлов распорядитель запоминает эти имена файлов в своих структурах данныхв своих структурах данныхПовторные сообщения о завершении одной и Повторные сообщения о завершении одной и той же задачи той же задачи MapMap игнорируются игнорируются

Page 41: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 4141

MapReduce: модель и реализации MapReduce: модель и реализации ((118)8)Реализация в распределенной среде (13)Реализация в распределенной среде (13)

Отказоустойчивость (7) Отказоустойчивость (7) Семантика при наличии отказов (3)Семантика при наличии отказов (3)

При завершении задачи При завершении задачи ReduceReduce ее ее исполнитель атомарным образом исполнитель атомарным образом переименовывает временный файл переименовывает временный файл результатов в окончательный файлрезультатов в окончательный файлЕсли одна и та же задача Если одна и та же задача ReduceReduce выполняется выполняется несколькими исполнителями, то несколькими исполнителями, то – для одного и того же окончательного файла будет для одного и того же окончательного файла будет

выполнено несколько операций переименованиявыполнено несколько операций переименования

Если в используемой распределенной Если в используемой распределенной файловой системе операция переименования файловой системе операция переименования является атомарной, то является атомарной, то – в результате в файловой системе сохранятся в результате в файловой системе сохранятся

результаты только какого-либо одного выполнения результаты только какого-либо одного выполнения задачи задачи ReduceReduce

Page 42: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 4242

MapReduce: модель и реализации MapReduce: модель и реализации ((119)9)Реализация в распределенной среде (14)Реализация в распределенной среде (14)

Резервные задачи (1)Резервные задачи (1)

Чаще всего к увеличению общего Чаще всего к увеличению общего времени выполнения задания времени выполнения задания MapReduce приводит наличие MapReduce приводит наличие "отстающих" ("straggler")"отстающих" ("straggler")– узлов кластера, в которых выполнение узлов кластера, в которых выполнение

одной из последних задач одной из последних задач MapMap или или ReduceReduce занимает необычно долгое времязанимает необычно долгое время

– например, из-за некритичной например, из-за некритичной неисправности дискового устройстванеисправности дискового устройства

Для смягчения проблемы "остающих" в Для смягчения проблемы "остающих" в MapReduce применяется следующий MapReduce применяется следующий общий механизмобщий механизм

Page 43: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 4343

MapReduce: модель и реализации MapReduce: модель и реализации (20)(20)Реализация в распределенной среде (15)Реализация в распределенной среде (15)

Резервные задачи (2)Резервные задачи (2)

Когда задание близится к завершению, для Когда задание близится к завершению, для всех еще не завершившихся задач всех еще не завершившихся задач назначаются назначаются – дополнительные, резервные исполнителидополнительные, резервные исполнители

Задача считается выполненной, Задача считается выполненной, – когда завершается ее первичное или резервное когда завершается ее первичное или резервное

выполнениевыполнение

Этот механизм настраивается таким образом, Этот механизм настраивается таким образом, чтобы потребление вычислительных ресурсов чтобы потребление вычислительных ресурсов возрастало не более чем на несколько возрастало не более чем на несколько процентовпроцентовВ результате удается существенно сократить В результате удается существенно сократить время выполнения крупных MR-заданий время выполнения крупных MR-заданий

Page 44: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 4444

MapReduce: модель и реализации MapReduce: модель и реализации (21)(21)Расширенные возможности (1)Расширенные возможности (1)

Функция-комбинатор (1)Функция-комбинатор (1)

В некоторых случаях в результатах задачи В некоторых случаях в результатах задачи MapMap содержится содержится – значительное число повторящихся значений значительное число повторящихся значений

промежуточного ключа, промежуточного ключа,

а определенная пользователем задача а определенная пользователем задача ReduceReduce – является коммутативной и ассоциативнойявляется коммутативной и ассоциативной

В таких случаях пользователь может В таких случаях пользователь может определить дополнительную функцию-определить дополнительную функцию-комбинатор (комбинатор (CombinerCombiner), ), – выполняющую частичную агрегацию таких данных выполняющую частичную агрегацию таких данных

до их передачи по сетидо их передачи по сети

Функция Функция CombinerCombiner выполняется на той же выполняется на той же машине, что и задача машине, что и задача MapMap

Page 45: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 4545

MapReduce: модель и реализации MapReduce: модель и реализации (22)(22)Расширенные возможности (2)Расширенные возможности (2)

Функция-комбинатор (2)Функция-комбинатор (2)

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

Page 46: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 4646

MapReduce: модель и реализации MapReduce: модель и реализации (23)(23)Расширенные возможности (3)Расширенные возможности (3)

Форматы входных и результирующих данных (1)Форматы входных и результирующих данных (1)

В библиотеке MapReduce поддерживается возможность В библиотеке MapReduce поддерживается возможность чтения входных данных в нескольких разных форматахчтения входных данных в нескольких разных форматахНапример, в режиме "text" каждая строка трактуется Например, в режиме "text" каждая строка трактуется как пара "ключ-значение", где ключ – это смещение до как пара "ключ-значение", где ключ – это смещение до данной строки от начала файла, а значение – данной строки от начала файла, а значение – содержимое строкисодержимое строкиВ другом распространенном формате входные данные В другом распространенном формате входные данные представляются в виде пар "ключ-значение", представляются в виде пар "ключ-значение", отсортированных по значениям ключаотсортированных по значениям ключаВ каждой реализации формата входных данных В каждой реализации формата входных данных известно, каким образом следует расщеплять данные известно, каким образом следует расщеплять данные на осмысленные части, которые обрабатываются на осмысленные части, которые обрабатываются отдельными задачами Mapотдельными задачами Map– например, данные формата "text" расщепляются только по например, данные формата "text" расщепляются только по

границами строк границами строк

Page 47: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 4747

MapReduce: модель и реализации MapReduce: модель и реализации (24)(24)Расширенные возможности (4)Расширенные возможности (4)

Форматы входных и результирующих данных (2)Форматы входных и результирующих данных (2)

Пользователи могут добавить к реализации Пользователи могут добавить к реализации собственные форматы входных данных, собственные форматы входных данных, обеспечив новую реализацию интерфейса обеспечив новую реализацию интерфейса readerreader – в реализации Hadoop – в реализации Hadoop – RecordReaderRecordReader

ReaderReader не обязательно должен читать данные не обязательно должен читать данные из файла, из файла, – можно легко определить можно легко определить readerreader, читающий данные , читающий данные

из базы данных или из некоторой структуры в из базы данных или из некоторой структуры в виртуальной памяти. виртуальной памяти.

Аналогичным образом, поддерживаются Аналогичным образом, поддерживаются возможности генерации данных в разных возможности генерации данных в разных форматах, и форматах, и – имеется простая возможность определения новых имеется простая возможность определения новых

форматов результирующих данных форматов результирующих данных

Page 48: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 4848

MapReduce внутри параллельной СУБД (1)MapReduce внутри параллельной СУБД (1)

Очевидны преимущества клиент-серверных Очевидны преимущества клиент-серверных организаций СУБД: в такой архитектуре сервер баз организаций СУБД: в такой архитектуре сервер баз данных поддерживает крупную базу данных, которая данных поддерживает крупную базу данных, которая – сохраняется в одном экземпляре и сохраняется в одном экземпляре и – доступна большому числу приложений, выполняемых доступна большому числу приложений, выполняемых

прямо на стороне клиентов или в промежуточных серверах прямо на стороне клиентов или в промежуточных серверах приложенийприложений

Однако даже при использовании реляционной Однако даже при использовании реляционной – или, правильнее, SQL-ориентированнойили, правильнее, SQL-ориентированной

организации баз данных, когда от клиентов на сервер организации баз данных, когда от клиентов на сервер баз данных отправляются высокоуровневые баз данных отправляются высокоуровневые декларативные запросы, в обратную сторону, от декларативные запросы, в обратную сторону, от сервера к клиенту, сервера к клиенту, – пересылаются результирующие данные, вообще говоря, пересылаются результирующие данные, вообще говоря,

произвольно большого объема произвольно большого объема

Page 49: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 4949

MapReduce внутри параллельной СУБД (2)MapReduce внутри параллельной СУБД (2)

Естественно, возникает вопрос: не окажется ли Естественно, возникает вопрос: не окажется ли дешевле, дешевле, – чем пересылать данные с сервера на клиент для их чем пересылать данные с сервера на клиент для их

дальнейшей обработки, дальнейшей обработки, – переместить требуемую обработку данных на сервер, переместить требуемую обработку данных на сервер,

ближе к самим даннымближе к самим даннымВ явном виде идея перемещения вычислений на В явном виде идея перемещения вычислений на сторону сервера была высказана в статье Лоуренса сторону сервера была высказана в статье Лоуренса Роува и Майкла СтоунбрейкераРоува и Майкла Стоунбрейкера– Lawrence A. Rowe, Michael R. Stonebraker. The POSTGRES Lawrence A. Rowe, Michael R. Stonebraker. The POSTGRES

Data ModelData Model – http://www.vldb.org/conf/1987/P083.PDFhttp://www.vldb.org/conf/1987/P083.PDF

Намеки на эту идею можно найти и в более ранних Намеки на эту идею можно найти и в более ранних статьях М. Стоунбрейкера и др.,статьях М. Стоунбрейкера и др.,– еще не имевших непосредственного отношения к СУБД еще не имевших непосредственного отношения к СУБД

Postgres Postgres

Page 50: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 5050

MapReduce внутри параллельной СУБД (3)MapReduce внутри параллельной СУБД (3)

Поддержка определяемых пользователями хранимых Поддержка определяемых пользователями хранимых процедур, функций и методов, типов данных и процедур, функций и методов, типов данных и триггеров появилась во всех развитых SQL-триггеров появилась во всех развитых SQL-ориентированных СУБД ориентированных СУБД Соответствующие языковые средства Соответствующие языковые средства специфицированы в стандарте языка SQLспецифицированы в стандарте языка SQLБолее того, возникла новая проблема выбора – одну и Более того, возникла новая проблема выбора – одну и ту же функциональность приложения можно ту же функциональность приложения можно реализовать на стороне сервера, на сервере реализовать на стороне сервера, на сервере приложений и на клиентеприложений и на клиентеОднозначных методологий и рекомендаций, Однозначных методологий и рекомендаций, способствующих простому выбору, не существуетспособствующих простому выбору, не существуетНапример, очевидно, что если услугами одного сервера Например, очевидно, что если услугами одного сервера пользуется несколько приложений, то пользуется несколько приложений, то – перегрузка сервера хранимыми процедурами и перегрузка сервера хранимыми процедурами и

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

Page 51: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 5151

MapReduce внутри параллельной СУБД (4)MapReduce внутри параллельной СУБД (4)

Тем не менее, во всех традиционных серверных Тем не менее, во всех традиционных серверных организациях СУБД возможность переноса вычислений организациях СУБД возможность переноса вычислений на сторону сервера существует и не очень сложно на сторону сервера существует и не очень сложно реализуетсяреализуетсяОднако в параллельных СУБД дела обстоят гораздо Однако в параллельных СУБД дела обстоят гораздо хужехуже– в особенности, в СУБД категории sharing-nothingв особенности, в СУБД категории sharing-nothing

Выполнение SQL-запросов распараллеливается Выполнение SQL-запросов распараллеливается автоматически оптимизатором запросовавтоматически оптимизатором запросовНо оптимизатор запросов не может распараллелить Но оптимизатор запросов не может распараллелить определенную пользователем процедуру или функцию, определенную пользователем процедуру или функцию, – если она написана не на SQL, если она написана не на SQL, – а на одном из традиционных языков программированияа на одном из традиционных языков программирования

Page 52: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 5252

MapReduce внутри параллельной СУБД (5)MapReduce внутри параллельной СУБД (5)

Технически можно было бы такие процедуры и Технически можно было бы такие процедуры и функции вообще не распараллеливать, а функции вообще не распараллеливать, а выполнять в каком-либо одном узле кластеравыполнять в каком-либо одном узле кластераНо тогда Но тогда – в этом узле пришлось бы собрать все данные, в этом узле пришлось бы собрать все данные,

требуемые для выполнения процедуры или функции, требуемые для выполнения процедуры или функции, для чего потребовалась бы для чего потребовалась бы

массовая пересылка данных по сети, и массовая пересылка данных по сети, и – это свело бы на нет все преимущества параллельных это свело бы на нет все преимущества параллельных

СУБД, СУБД, производительность которых основывается именно на производительность которых основывается именно на параллельном выполнении параллельном выполнении

Page 53: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 5353

MapReduce внутри параллельной СУБД (6)MapReduce внутри параллельной СУБД (6)

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

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

Page 54: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 5454

MapReduce внутри параллельной СУБД (7)MapReduce внутри параллельной СУБД (7)

Несмотря на эти трудности, какая-то Несмотря на эти трудности, какая-то поддержка механизма распараллеливаемых поддержка механизма распараллеливаемых определяемых пользователями процедур и определяемых пользователями процедур и функций в параллельных аналитических СУБД функций в параллельных аналитических СУБД все-таки требуетсявсе-таки требуется– без этого аналитики вынуждены выполнять анализ без этого аналитики вынуждены выполнять анализ

данных на клиентских рабочих станциях, данных на клиентских рабочих станциях, постоянно пересылая на них из центрального постоянно пересылая на них из центрального хранилища данных данные весьма большого объемахранилища данных данные весьма большого объема

– другого способа работы у них просто нетдругого способа работы у них просто нет

Как показывает опыт двух производственных Как показывает опыт двух производственных разработок, для обеспечения возможностей разработок, для обеспечения возможностей серверного программирования в массивно-серверного программирования в массивно-параллельной среде систем баз данных параллельной среде систем баз данных – с пользой может быть применена модель MapReduce с пользой может быть применена модель MapReduce

Page 55: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 5555

MapReduce внутри параллельной СУБД (8)MapReduce внутри параллельной СУБД (8)

Речь идет о параллельных аналитических Речь идет о параллельных аналитических СУБД СУБД – Greenplum Database компании Greenplum и Greenplum Database компании Greenplum и – nnCluster компании Aster Data SystemsCluster компании Aster Data Systems

Общим в подходах обеих компаний является Общим в подходах обеих компаний является то, что то, что – модель MapReduce реализуется внутри СУБД, и модель MapReduce реализуется внутри СУБД, и – возможностями этих реализаций могут пользоваться возможностями этих реализаций могут пользоваться

разработчики аналитических приложенийразработчики аналитических приложений

Различие состоит в том, как можно Различие состоит в том, как можно пользоваться возможностями MapReduce: пользоваться возможностями MapReduce: – в Greenplum Database – наряду с SQL, в Greenplum Database – наряду с SQL, – а в а в nnCluster – из SQLCluster – из SQL

Page 56: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 5656

MapReduce внутри параллельной СУБД (9)MapReduce внутри параллельной СУБД (9)Greemplum – MapReduce наравне с SQL (1)Greemplum – MapReduce наравне с SQL (1)

Сначала немного поговорим об общей философии Сначала немного поговорим об общей философии компании Greemplum, приведшей ее, в частности, к компании Greemplum, приведшей ее, в частности, к идее поддержки технологии MapReduce наряду с идее поддержки технологии MapReduce наряду с технологией SQLтехнологией SQLПо мнению идеологов Greemplum и основных По мнению идеологов Greemplum и основных архитекторов Greenplum Databaseархитекторов Greenplum Database– Джозеф Хеллерстейн и др. МОГучие способности: новые Джозеф Хеллерстейн и др. МОГучие способности: новые

приемы анализа больших данныхприемы анализа больших данных – http://citforum.ru/database/articles/mad_skills/http://citforum.ru/database/articles/mad_skills/

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

Page 57: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 5757

MapReduce внутри параллельной СУБД (10)MapReduce внутри параллельной СУБД (10)Greemplum – MapReduce наравне с SQL (2)Greemplum – MapReduce наравне с SQL (2)

MAD Skills (1)MAD Skills (1)

Предлагается и реализуется новый подход к анализу Предлагается и реализуется новый подход к анализу данных, который идеологи (и маркетологи!) компании данных, который идеологи (и маркетологи!) компании связывают с аббревиатурой связывают с аббревиатурой MADMAD Интересная игра слов, которую трудно выразить на Интересная игра слов, которую трудно выразить на русском языкерусском языкеMMadad применительно к технологии означает, что эта применительно к технологии означает, что эта технология слегка безумна и уж во всяком случае не технология слегка безумна и уж во всяком случае не ортодоксальнаортодоксальнаС другой стороны, С другой стороны, mad skillsmad skills означает означает блестящие блестящие способностиспособности, а значит, предлагаемая технология, по , а значит, предлагаемая технология, по мнению ее творцов, обладает новыми полезнейшими мнению ее творцов, обладает новыми полезнейшими качествамикачествамиНо в Greenplum Но в Greenplum MADMAD – это еще и аббревиатура от – это еще и аббревиатура от – magneticmagnetic, , – agileagile и и – deepdeep

Page 58: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 5858

MapReduce внутри параллельной СУБД (1MapReduce внутри параллельной СУБД (111))Greemplum – MapReduce наравне с SQL (Greemplum – MapReduce наравне с SQL (33))

MAD Skills (2)MAD Skills (2)

Magnetic (магнетичность) Magnetic (магнетичность) применительно к хранилищу применительно к хранилищу данных означает, что оно должно быть данных означает, что оно должно быть "притягательным" по отношению к новым источникам "притягательным" по отношению к новым источникам данных, появляющимся в организацииданных, появляющимся в организацииДанные из новых источников должны легко и просто Данные из новых источников должны легко и просто включаться в хранилище данных с пользой для включаться в хранилище данных с пользой для аналитикованалитиковПри использовании традиционного ("ортодоксального") При использовании традиционного ("ортодоксального") подхода к организации хранилища данных, для подхода к организации хранилища данных, для подключения нового источника данных требуется подключения нового источника данных требуется разработка и применение соответствующей процедуры разработка и применение соответствующей процедуры ETL, а возможно, и изменение схемы хранилища ETL, а возможно, и изменение схемы хранилища данных,данных,– в результате чего подключение нового источника данных в результате чего подключение нового источника данных

часто затягивается на месяца, а иногда и вовсе кончается часто затягивается на месяца, а иногда и вовсе кончается ничем ничем

Page 59: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 5959

MapReduce внутри параллельной СУБД (12)MapReduce внутри параллельной СУБД (12)Greemplum – MapReduce наравне с SQL (4)Greemplum – MapReduce наравне с SQL (4)

MAD Skills (MAD Skills (33))

Agile (гибкость)Agile (гибкость) – это предоставляемая – это предоставляемая аналитикам возможность простым образом и в аналитикам возможность простым образом и в быстром темпе быстром темпе – воспринимать, воспринимать, – классифицировать, классифицировать, – производить и производить и – перерабатывать данныеперерабатывать данные

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

Page 60: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 6060

MapReduce внутри параллельной СУБД (13)MapReduce внутри параллельной СУБД (13)Greemplum – MapReduce наравне с SQL (5)Greemplum – MapReduce наравне с SQL (5)

MAD Skills (MAD Skills (44))

Deep (основательность)Deep (основательность) означает, что означает, что аналитикам должны предоставляться аналитикам должны предоставляться средства выполнения произвольно средства выполнения произвольно сложных статистических алгоритмов сложных статистических алгоритмов над всеми данными, находящимися в над всеми данными, находящимися в хранилище данных, хранилище данных, – без потребности во взятии образцов или без потребности во взятии образцов или

выбороквыборокХранилище данных должно служить Хранилище данных должно служить – как основательным репозиторием данных, как основательным репозиторием данных, – так и средой, поддерживающей выполнение так и средой, поддерживающей выполнение

сложных алгоритмовсложных алгоритмов

Page 61: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 6161

MapReduce внутри параллельной СУБД (14)MapReduce внутри параллельной СУБД (14)Greemplum – MapReduce наравне с SQL (6)Greemplum – MapReduce наравне с SQL (6)

MAD Skills (MAD Skills (55))

Более подробно рассмотрим один аспект MAD-Более подробно рассмотрим один аспект MAD-аналитики, который привел к реализации аналитики, который привел к реализации системы с поддержкой интерфейсов и SQL, и системы с поддержкой интерфейсов и SQL, и MapReduceMapReduceКак считают разработчики Greenplum Как считают разработчики Greenplum Database хозяевами будущего мира анализа Database хозяевами будущего мира анализа данных должны стать аналитикиданных должны стать аналитикиФактически, на это направлены все аспекты Фактически, на это направлены все аспекты MAD-аналитикиMAD-аналитикиНо, в частности, это означает всяческую Но, в частности, это означает всяческую поддержку написания и использования в поддержку написания и использования в среде хранилища данных разнообразных среде хранилища данных разнообразных аналитических алгоритмованалитических алгоритмов

Page 62: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 6262

MapReduce внутри параллельной СУБД (15)MapReduce внутри параллельной СУБД (15)Greemplum – MapReduce наравне с SQL (7)Greemplum – MapReduce наравне с SQL (7)

MAD Skills (MAD Skills (66))

Параллельная СУБД Greenplum Database делалась на основе Параллельная СУБД Greenplum Database делалась на основе СУБД PostgreSQL, являющейся законной наследницей PostgresСУБД PostgreSQL, являющейся законной наследницей PostgresПомимо своих прочих достоинств, Postgres была первой Помимо своих прочих достоинств, Postgres была первой расширяемойрасширяемой СУБД СУБД Пользователи Postgres могли определять собственные Пользователи Postgres могли определять собственные – процедуры и функции, процедуры и функции, – типы данных и даже типы данных и даже – методы доступа к структурам внешней памятиметоды доступа к структурам внешней памяти

Эти возможности расширений системы были переняты и Эти возможности расширений системы были переняты и развиты в PostgreSQLразвиты в PostgreSQLНаряду с традиционным в Postgres языком C, для Наряду с традиционным в Postgres языком C, для программирования серверных расширений в PostgreSQL программирования серверных расширений в PostgreSQL можно использовать, в частности, популярные скриптовые можно использовать, в частности, популярные скриптовые языки языки – Perl и Perl и – Python Python

Page 63: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 6363

MapReduce внутри параллельной СУБД (16)MapReduce внутри параллельной СУБД (16)Greemplum – MapReduce наравне с SQL (8)Greemplum – MapReduce наравне с SQL (8)

MAD Skills (MAD Skills (77))

В Greenplum Database на основе этих возможностей В Greenplum Database на основе этих возможностей расширений системы обеспечена расширенная среда, расширений системы обеспечена расширенная среда, позволяющая на уровне языка SQL оперировать такими позволяющая на уровне языка SQL оперировать такими математическими объектами, как векторы, функции и математическими объектами, как векторы, функции и функционалыфункционалыПользователи могут определять собственные Пользователи могут определять собственные статистические алгоритмы и в полуавтоматическом статистические алгоритмы и в полуавтоматическом режиме распараллеливать их выполнение по данным в режиме распараллеливать их выполнение по данным в массивно-параллельной средемассивно-параллельной среде– что часто является очень нетривиальной задачейчто часто является очень нетривиальной задачей

Однако в любом случае при использовании такого Однако в любом случае при использовании такого подхода к анализу данных пользователям-аналитикам подхода к анализу данных пользователям-аналитикам приходится иметь дело с декларативным языком SQL, а приходится иметь дело с декларативным языком SQL, а как считают идеологи Greenplum, как считают идеологи Greenplum, – для многих аналитиков и статистиков SQL-для многих аналитиков и статистиков SQL-

программирование является обременительным и программирование является обременительным и неудобным неудобным

Page 64: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 6464

MapReduce внутри параллельной СУБД (17)MapReduce внутри параллельной СУБД (17)Greemplum – MapReduce наравне с SQL (9)Greemplum – MapReduce наравне с SQL (9)

MAD Skills (MAD Skills (88))

В качестве альтернативы аналитическому В качестве альтернативы аналитическому SQL-программированию в Greenplum Database SQL-программированию в Greenplum Database обеспечивается полноправная реализация обеспечивается полноправная реализация MapReduce, в которой MapReduce, в которой – предоставляется доступ ко всем данным, предоставляется доступ ко всем данным,

сохраняемым в хранилище данныхсохраняемым в хранилище данных

При использовании MapReduce аналитики При использовании MapReduce аналитики пишут собственный понятный для них пишут собственный понятный для них процедурный кодпроцедурный код– можно использовать те же Perl и Pythonможно использовать те же Perl и Python

и понимают, как будет выполняться их и понимают, как будет выполняться их алгоритм в массивно-параллельной среде, алгоритм в массивно-параллельной среде, – поскольку это выполнение опирается на простую поскольку это выполнение опирается на простую

модель MapReduce модель MapReduce

Page 65: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 6565

MapReduce внутри параллельной СУБД (18)MapReduce внутри параллельной СУБД (18)Greemplum – MapReduce наравне с SQL (10)Greemplum – MapReduce наравне с SQL (10)

Реализация MapReduce в Greenplum Database Реализация MapReduce в Greenplum Database ((99))

Ядром системы являетсяЯдром системы являетсяпроцессор потоков процессор потоков данных (Dataflow Engine)данных (Dataflow Engine)Замена соответствующего Замена соответствующего компонента ядра PostgreSQL компонента ядра PostgreSQL для обеспечения для обеспечения – массивно-параллельного массивно-параллельного

выполнения запросов ивыполнения запросов и– базовых функциональных базовых функциональных

возможностей, требуемых возможностей, требуемых для поддержки модели для поддержки модели MapReduceMapReduce

В результате SQL-ориентированная СУБД и MapReduce В результате SQL-ориентированная СУБД и MapReduce работают с общим ядром, поддерживающим массивно-работают с общим ядром, поддерживающим массивно-параллельную обработку данных, параллельную обработку данных, – и механизмы SQL и MapReduce обладают и механизмы SQL и MapReduce обладают

интероперабельностью интероперабельностью

Page 66: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 6666

MapReduce внутри параллельной СУБД (18)MapReduce внутри параллельной СУБД (18)Greemplum – MapReduce наравне с SQL (10)Greemplum – MapReduce наравне с SQL (10)

Реализация MapReduce в Greenplum Database Реализация MapReduce в Greenplum Database ((99))

Функции Функции MapMap и и ReduceReduce в среде Greenplum в среде Greenplum Database можно программировать на Database можно программировать на популярных скриптовых языках Python и Perlпопулярных скриптовых языках Python и PerlМожно использовать развитые программные Можно использовать развитые программные средства с открытыми кодами, содержащиеся средства с открытыми кодами, содержащиеся в репозиториях в репозиториях – Python Package Index (PyPi) и Python Package Index (PyPi) и – Comprehensive Perl Archive Network (CPAN) Comprehensive Perl Archive Network (CPAN)

В составе этих репозиториев находятся В составе этих репозиториев находятся – средства анализа неструктурированного текста, средства анализа неструктурированного текста, – статистические инструментальные средства, статистические инструментальные средства, – анализаторы форматов HTML и XML и анализаторы форматов HTML и XML и – многие другие программные средства, многие другие программные средства,

потенциально полезные аналитикам потенциально полезные аналитикам

Page 67: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 6767

MapReduce внутри параллельной СУБД (19)MapReduce внутри параллельной СУБД (19)Greemplum – MapReduce наравне с SQL (11)Greemplum – MapReduce наравне с SQL (11)

Реализация MapReduce в Greenplum Database Реализация MapReduce в Greenplum Database ((1010))

В среде Greenplum Database приложениям MapReduce В среде Greenplum Database приложениям MapReduce обеспечивается доступ к данным, обеспечивается доступ к данным, – хранящимся в файлах, хранящимся в файлах, – предоставляемым Web-сайтами и предоставляемым Web-сайтами и – даже генерируемым командами операционной системыдаже генерируемым командами операционной системы

Доступ к таким данным не влечет накладных расходов, Доступ к таким данным не влечет накладных расходов, ассоциируемых с использованием СУБД: ассоциируемых с использованием СУБД: – блокировок, блокировок, – журнализации, журнализации, – фиксации транзакций и т.д. фиксации транзакций и т.д.

С другой стороны, эффективный доступ к данным, С другой стороны, эффективный доступ к данным, хранимым в базе данных, поддерживается за счет хранимым в базе данных, поддерживается за счет выполнения MR-программ в ядре Greenplum Databaseвыполнения MR-программ в ядре Greenplum DatabaseЭто позволяет избежать расходов на пересылку данных Это позволяет избежать расходов на пересылку данных

Page 68: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 6868

MapReduce внутри параллельной СУБД (20)MapReduce внутри параллельной СУБД (20)Greemplum – MapReduce наравне с SQL (12)Greemplum – MapReduce наравне с SQL (12)

Реализация MapReduce в Greenplum Database Реализация MapReduce в Greenplum Database ((1111))

Архитектура Greenplum Database с Архитектура Greenplum Database с равноправной поддержкой SQL и MapReduce равноправной поддержкой SQL и MapReduce позволяет смешивать стили программирования, позволяет смешивать стили программирования, – делать MR-программы видимыми для SQL-запросов и делать MR-программы видимыми для SQL-запросов и

наоборотнаоборот

Например, можно выполнять MR-программы над Например, можно выполнять MR-программы над таблицами базы данныхтаблицами базы данных– Для этого всего лишь требуется указать MapReduce, Для этого всего лишь требуется указать MapReduce,

что входные данные программы должны браться из что входные данные программы должны браться из таблицытаблицы

Поскольку таблицы баз данных Greenplum Поскольку таблицы баз данных Greenplum Database хранятся разделенными между Database хранятся разделенными между несколькими узлами кластера, несколькими узлами кластера, – первая фаза первая фаза MAPMAP выполняется внутри ядра СУБД выполняется внутри ядра СУБД

прямо над этими разделами прямо над этими разделами

Page 69: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 6969

MapReduce внутри параллельной СУБД (21)MapReduce внутри параллельной СУБД (21)Greemplum – MapReduce наравне с SQL (13)Greemplum – MapReduce наравне с SQL (13)

Реализация MapReduce в Greenplum Database Реализация MapReduce в Greenplum Database ((1212))

Как и в автономных реализациях MapReduce, Как и в автономных реализациях MapReduce, результаты выполнения MR-программ могут результаты выполнения MR-программ могут сохраняться в файловой системесохраняться в файловой системеНо настолько же просто сохранить Но настолько же просто сохранить результирующие данные в базе данных с результирующие данные в базе данных с обеспечением транзакционной долговечности обеспечением транзакционной долговечности хранения этих данных хранения этих данных В дальнейшем эти данные могут В дальнейшем эти данные могут анализироваться, например, с применением анализироваться, например, с применением SQL-запросовSQL-запросовЗапись результирующих данных в таблицы Запись результирующих данных в таблицы происходит параллельным образом и не происходит параллельным образом и не вызывает лишних накладных расходов вызывает лишних накладных расходов

Page 70: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 7070

MapReduce внутри параллельной СУБД (22)MapReduce внутри параллельной СУБД (22)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (1)1)

У компании Aster Data имеется свой слоган У компании Aster Data имеется свой слоган Big Data, Fast Big Data, Fast InsightInsight, который, по сути, означает то же самое , который, по сути, означает то же самое – превращение массивно-параллельного хранилища данных в превращение массивно-параллельного хранилища данных в

аналитическую платформуаналитическую платформуИ для этого тоже используется технология MapReduce, И для этого тоже используется технология MapReduce, встроенная в СУБДвстроенная в СУБД– Эрик ФридманЭрик Фридман и др. SQL/MapReduce: практический подход к и др. SQL/MapReduce: практический подход к

поддержке самоописываемых, полиморфных и параллелизуемых поддержке самоописываемых, полиморфных и параллелизуемых функций, определяемых пользователямифункций, определяемых пользователями

– http://citforum.ru/database/articles/asterdata_sql_mr/http://citforum.ru/database/articles/asterdata_sql_mr/ Однако, в отличие от Greenplum, эта технология применяется Однако, в отличие от Greenplum, эта технология применяется не для обеспечения альтернативного внешнего способа не для обеспечения альтернативного внешнего способа обработки данных, а обработки данных, а – для реализации нового механизма для реализации нового механизма

хорошо распараллеливаемых (по модели MapReduce), хорошо распараллеливаемых (по модели MapReduce), самоописываемых и самоописываемых и полиморфных табличных функций, полиморфных табличных функций,

– определяемых пользователями и вызываемых из операторов определяемых пользователями и вызываемых из операторов выборки SQL выборки SQL

Page 71: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 7171

MapReduce внутри параллельной СУБД (23)MapReduce внутри параллельной СУБД (23)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (2)2)

Предпосылки и преимущества Предпосылки и преимущества SQL/MapReduce (1)SQL/MapReduce (1)

По мнению основных разработчиков СУБД По мнению основных разработчиков СУБД nnCluster, Cluster, декларативный язык SQL во многом ограничивает декларативный язык SQL во многом ограничивает использование аналитических СУБДиспользование аналитических СУБДС одной стороны, несмотря на постоянное наращивание С одной стороны, несмотря на постоянное наращивание аналитических возможностей этого языка, для многих аналитических возможностей этого языка, для многих аналитиков их оказывается недостаточноаналитиков их оказывается недостаточноС другой стороны, эти возможности постепенно С другой стороны, эти возможности постепенно становятся такими сложными и непонятными, что становятся такими сложными и непонятными, что – зачастую становится проще написать процедурный код, зачастую становится проще написать процедурный код,

решающий частную аналитическую задачурешающий частную аналитическую задачуНаконец, оптимизаторы запросов SQL-ориентированных Наконец, оптимизаторы запросов SQL-ориентированных СУБД постоянно отстают от развития языка, и планы СУБД постоянно отстают от развития языка, и планы сложных аналитических запросов могут быть весьма сложных аналитических запросов могут быть весьма далеки от оптимальных, далеки от оптимальных, – что приводит к их недопустимо долгому выполнению, а что приводит к их недопустимо долгому выполнению, а

иногда и аварийному завершению иногда и аварийному завершению

Page 72: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 7272

MapReduce внутри параллельной СУБД (24)MapReduce внутри параллельной СУБД (24)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (3)3)

Предпосылки и преимущества Предпосылки и преимущества SQL/MapReduce (SQL/MapReduce (22))

Эти проблемы частично решаются за счет поддержки Эти проблемы частично решаются за счет поддержки в SQL-ориентированных СУБД механизма UDFв SQL-ориентированных СУБД механизма UDFТакие функции позволяют пользователям решать Такие функции позволяют пользователям решать внутри сервера баз данных свои прикладные задачивнутри сервера баз данных свои прикладные задачи – путем написания соответствующего процедурного кодапутем написания соответствующего процедурного кода

Однако традиционные механизмы UDF Однако традиционные механизмы UDF разрабатывались в расчете на "одноузловые" СУБД, иразрабатывались в расчете на "одноузловые" СУБД, и – по умолчанию предполагается чисто последовательное по умолчанию предполагается чисто последовательное

выполнение UDFвыполнение UDF Автоматическое распараллеливание Автоматическое распараллеливание последовательного кода в массивно-параллельной последовательного кода в массивно-параллельной среде с разделением данных являетсясреде с разделением данных является – сложной нерешенной проблемой сложной нерешенной проблемой

Page 73: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 7373

MapReduce внутри параллельной СУБД (25)MapReduce внутри параллельной СУБД (25)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (4)4)

Предпосылки и преимущества Предпосылки и преимущества SQL/MapReduce (SQL/MapReduce (33))

В Aster Data дляВ Aster Data дляобеспечения обеспечения механизма механизма естественно естественно распаралле-распаралле-ливаемых UDF ливаемых UDF разработана разработана инфраструктура инфраструктура SQL/MapReduce, SQL/MapReduce, – поддерживаемая внутри SQL-поддерживаемая внутри SQL-

ориентированной массивно-параллельной ориентированной массивно-параллельной СУБД СУБД nnCluster Cluster

Page 74: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 7474

MapReduce внутри параллельной СУБД (26)MapReduce внутри параллельной СУБД (26)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (5)5)

Предпосылки и преимущества Предпосылки и преимущества SQL/MapReduce (SQL/MapReduce (44))

Организация среды SQL/MapReduce обеспечивает Организация среды SQL/MapReduce обеспечивает следующие возможности: следующие возможности: – можно эффективно выполнять в "реляционном" стиле можно эффективно выполнять в "реляционном" стиле

операции над таблицами с использованием SQL, а операции над таблицами с использованием SQL, а "нереляционные" задачи и оптимизации – возлагать на "нереляционные" задачи и оптимизации – возлагать на явно программируемые процедурные функции;явно программируемые процедурные функции;

– поскольку функции выполняются над согласованными поскольку функции выполняются над согласованными данными из таблиц базы данных, обеспечивается данными из таблиц базы данных, обеспечивается согласованность вычислений;согласованность вычислений;

– оценочный (cost-based) оптимизатор может принимать оценочный (cost-based) оптимизатор может принимать решения о способе выполнения SQL-запросов, решения о способе выполнения SQL-запросов, содержащих вызовы SQL/MapReduce-функций, на содержащих вызовы SQL/MapReduce-функций, на основе достоверной статистики данных;основе достоверной статистики данных;

– пользователи пользователи nnCluster могут формулировать SQL-Cluster могут формулировать SQL-запросы с использованием высокоуровневых средств запросы с использованием высокоуровневых средств анализа данных, воплощенных в SQL/MapReduce-анализа данных, воплощенных в SQL/MapReduce-функцияхфункциях

Page 75: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 7575

MapReduce внутри параллельной СУБД (27)MapReduce внутри параллельной СУБД (27)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (6)6)

Предпосылки и преимущества Предпосылки и преимущества SQL/MapReduce (SQL/MapReduce (55))

SQL/MapReduce-функции можно программировать как SQL/MapReduce-функции можно программировать как на традиционных языках программирования (Java, C#, на традиционных языках программирования (Java, C#, C++), так и скриптовых языках (Python, Ruby)C++), так и скриптовых языках (Python, Ruby)Независимо от используемого языка Независимо от используемого языка программирования, эти табличные функции являются программирования, эти табличные функции являются самоописываемымисамоописываемыми и и полиморфнымиполиморфнымиОдна и та же функция может принимать на вход Одна и та же функция может принимать на вход таблицы с разными схемами таблицы с разными схемами – функция настраивается на конкретную схему входной функция настраивается на конкретную схему входной

таблицы на этапе формирования плана запроса, таблицы на этапе формирования плана запроса, содержащего ее вызовсодержащего ее вызов

и выдавать таблицы также с разными схемами и выдавать таблицы также с разными схемами – функция сама сообщает планировщику запроса схему функция сама сообщает планировщику запроса схему

своего результата на этапе формирования плана запросасвоего результата на этапе формирования плана запросаЭто свойство SQL/MapReduce-функций упрощает Это свойство SQL/MapReduce-функций упрощает процедуру их регистрации в системе и способствует процедуру их регистрации в системе и способствует повторному использованию кода повторному использованию кода

Page 76: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 7676

MapReduce внутри параллельной СУБД (28)MapReduce внутри параллельной СУБД (28)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (7)7)

Предпосылки и преимущества Предпосылки и преимущества SQL/MapReduce (SQL/MapReduce (66))

Синтаксические особенности определения SQL/MapReduce-Синтаксические особенности определения SQL/MapReduce-функций и их семантика делают эти программные объекты функций и их семантика делают эти программные объекты естественным образом параллелизуемыми по данным: естественным образом параллелизуемыми по данным: – во время выполнения для каждой функции образуются ее во время выполнения для каждой функции образуются ее

экземпляры, параллельно выполняемые в узлах, которые экземпляры, параллельно выполняемые в узлах, которые содержат требуемые данныесодержат требуемые данные

Вызовы функций подобны подзапросам SQL, что обеспечивает Вызовы функций подобны подзапросам SQL, что обеспечивает возможность композиции функций, при которой при вызове возможность композиции функций, при которой при вызове функции вместо спецификации входной таблицы можно функции вместо спецификации входной таблицы можно задавать вызов другой функциизадавать вызов другой функцииНаконец, внешняя эквивалентность вызова SQL/MapReduce-Наконец, внешняя эквивалентность вызова SQL/MapReduce-функции подзапросу позволяет функции подзапросу позволяет – применять при формировании плана SQL-запроса с вызовами применять при формировании плана SQL-запроса с вызовами

таких функций обычную оценочную оптимизацию на основе таких функций обычную оценочную оптимизацию на основе статистики, а также статистики, а также

– динамически изменять порядок выполнения функций и динамически изменять порядок выполнения функций и вычисления настоящих SQL-подзапросов вычисления настоящих SQL-подзапросов

Page 77: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 7777

MapReduce внутри параллельной СУБД (29)MapReduce внутри параллельной СУБД (29)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (8)8)

Реализация Реализация SQL/MapReduce (SQL/MapReduce (11)) Синтаксис вызова (1)Синтаксис вызова (1)

Вызов SQL/MapReduce-Вызов SQL/MapReduce-функции может функции может присутствовать только присутствовать только в качестве элемента в качестве элемента списка ссылок на таблицы списка ссылок на таблицы раздела FROM SQL-запросараздела FROM SQL-запросаВ разделе ON, который является В разделе ON, который является единственным обязательным разделом вызова, единственным обязательным разделом вызова, указывается любой допустимый SQL/MapReduce-запросуказывается любой допустимый SQL/MapReduce-запрос– SQL-запрос, вызов SQL/MapReduce-функции или просто имя SQL-запрос, вызов SQL/MapReduce-функции или просто имя

таблицы таблицы Во время формирования плана запроса, содержащего Во время формирования плана запроса, содержащего вызов SQL/MapReduce-функции, схемой входной вызов SQL/MapReduce-функции, схемой входной таблицы этого вызова считается схема результата таблицы этого вызова считается схема результата запроса, указанного в разделе ON запроса, указанного в разделе ON

Page 78: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 7878

MapReduce внутри параллельной СУБД (30)MapReduce внутри параллельной СУБД (30)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (9)9)

Реализация Реализация SQL/MapReduce (SQL/MapReduce (22)) Синтаксис вызова (2)Синтаксис вызова (2)

Раздел PARTITION BY Раздел PARTITION BY указывается только в указывается только в вызовах вызовах SQL/MapReduce-функций SQL/MapReduce-функций над разделами над разделами – аналоге функции аналоге функции ReduceReduce исходной модели исходной модели

MapReduceMapReduceВ этом случае в разделе PARTITION BY В этом случае в разделе PARTITION BY указывается список выражений, на указывается список выражений, на основе значений которых производится основе значений которых производится разделение таблицы, разделение таблицы, специфицированной в разделе ON специфицированной в разделе ON

Page 79: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 7979

MapReduce внутри параллельной СУБД (31)MapReduce внутри параллельной СУБД (31)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (10)10)

Реализация Реализация SQL/MapReduce (SQL/MapReduce (33)) Синтаксис вызова (3)Синтаксис вызова (3)

При наличии разделаПри наличии раздела PARTITION BY в вызове PARTITION BY в вызове может содержаться и может содержаться и раздел ORDER BY, раздел ORDER BY, указывающий на потребность указывающий на потребность в сортировке входных в сортировке входных данных до реального вызова функцииданных до реального вызова функцииНаконец, вслед за разделом ORDER BY можно Наконец, вслед за разделом ORDER BY можно указать произвольное число дополнительных указать произвольное число дополнительных разделов со специальными аргументамиразделов со специальными аргументами– Имена этих разделов и значения аргументов Имена этих разделов и значения аргументов

передаются в SQL/MapReduce-функцию при ее передаются в SQL/MapReduce-функцию при ее инициализации инициализации

Page 80: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 8080

MapReduce внутри параллельной СУБД (32)MapReduce внутри параллельной СУБД (32)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (11)11)

Реализация Реализация SQL/MapReduce (SQL/MapReduce (44)) Модель выполнения (1)Модель выполнения (1)

В среде SQL/MapReduce используется модель В среде SQL/MapReduce используется модель выполнения функций, являющаяся обобщением модели выполнения функций, являющаяся обобщением модели MapReduceMapReduceФункция SQL/MapReduce может быть Функция SQL/MapReduce может быть – либо либо функцией над строками (row function)функцией над строками (row function), , – либо либо функцией над разделами (partition function)функцией над разделами (partition function)

Функции первого типа является аналогами функций Функции первого типа является аналогами функций MapMap классической модели MapReduce, а функции классической модели MapReduce, а функции второго типа – аналогами функций второго типа – аналогами функций ReduceReduceПоскольку, как отмечалось ранее, в разделе ON вызова Поскольку, как отмечалось ранее, в разделе ON вызова SQL/MapReduce-функции может содержаться вызов SQL/MapReduce-функции может содержаться вызов другой SQL/MapReduce-функции, другой SQL/MapReduce-функции, – в среде SQL/MapReduce допускается любое число и любой в среде SQL/MapReduce допускается любое число и любой

порядок вызовов функций порядок вызовов функций MapMap и и ReduceReduce, , – а не только жесткая последовательность а не только жесткая последовательность MapMap--ReduceReduce, ,

допускаемая классической моделью допускаемая классической моделью

Page 81: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 8181

MapReduce внутри параллельной СУБД (33)MapReduce внутри параллельной СУБД (33)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (12)12)

Реализация Реализация SQL/MapReduce (SQL/MapReduce (55)) Модель выполнения (2)Модель выполнения (2)

При выполнении функции над строками При выполнении функции над строками каждая строка входной таблицы каждая строка входной таблицы обрабатывается ровно одним экземпляром обрабатывается ровно одним экземпляром этой функцииэтой функцииС точки зрения семантики каждая строка С точки зрения семантики каждая строка обрабатывается независимо, поэтому входная обрабатывается независимо, поэтому входная таблица может разделяться по экземплярам таблица может разделяться по экземплярам функции произвольным образом, функции произвольным образом, – что обеспечивает возможности параллелизма и что обеспечивает возможности параллелизма и

масштабированиямасштабирования

Для каждой строки входной таблицы функция Для каждой строки входной таблицы функция над строками может не производить ни одной над строками может не производить ни одной строки, а может произвести несколько строк строки, а может произвести несколько строк

Page 82: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 8282

MapReduce внутри параллельной СУБД (34)MapReduce внутри параллельной СУБД (34)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (13)13)

Реализация Реализация SQL/MapReduce (SQL/MapReduce (66)) Модель выполнения (3)Модель выполнения (3)

При выполнении функции над разделами каждая При выполнении функции над разделами каждая группа строк, образованная на основе спецификации группа строк, образованная на основе спецификации раздела PARTITION BY вызова функции, обрабатывается раздела PARTITION BY вызова функции, обрабатывается ровно одним экземпляром этой функции, и этот ровно одним экземпляром этой функции, и этот экземпляр получает все группу целикомэкземпляр получает все группу целикомЕсли в вызове функции содержится раздел ORDER BY, Если в вызове функции содержится раздел ORDER BY, то экземпляры функции получают разделы в уже то экземпляры функции получают разделы в уже упорядоченном видеупорядоченном видеС точки зрения семантики каждый раздел С точки зрения семантики каждый раздел обрабатывается независимо, обрабатывается независимо, – что обеспечивает возможности параллелизма на уровне что обеспечивает возможности параллелизма на уровне

разделовразделовДля каждого входного раздела функция над строками Для каждого входного раздела функция над строками может не производить ни одной строки, а может может не производить ни одной строки, а может произвести несколько строк произвести несколько строк

Page 83: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 8383

MapReduce внутри параллельной СУБД (35)MapReduce внутри параллельной СУБД (35)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (14)14) Реализация Реализация SQL/MapReduce (SQL/MapReduce (77)) Особенности реализации (1)Особенности реализации (1)

Для реализации SQL/MapReduce-функций Для реализации SQL/MapReduce-функций можно использовать разные языки, но все они можно использовать разные языки, но все они являются объектно-ориентированнымиявляются объектно-ориентированнымиКаждая SQL/MapReduce-функция реализуется Каждая SQL/MapReduce-функция реализуется в виде отдельного класса, и при выработке в виде отдельного класса, и при выработке плана выполнения SQL-запроса, содержащего плана выполнения SQL-запроса, содержащего вызовы таких функций, для каждого вызова вызовы таких функций, для каждого вызова образуется объект соответствующего класса с образуется объект соответствующего класса с обращением к его методу-конструкторуобращением к его методу-конструктору– инициализатору функцииинициализатору функции

Это обеспечивает настройку функции и Это обеспечивает настройку функции и получение требуемого описания ее получение требуемого описания ее результирующей таблицы результирующей таблицы

Page 84: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 8484

MapReduce внутри параллельной СУБД (36)MapReduce внутри параллельной СУБД (36)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (15)15) Реализация Реализация SQL/MapReduce (SQL/MapReduce (88)) Особенности реализации (2)Особенности реализации (2)

Взаимодействие оптимизатора запросов с Взаимодействие оптимизатора запросов с инициализатором функции производится через инициализатором функции производится через специальный объект, называемый специальный объект, называемый контрактом контрактом времени выполнения (Runtime Contract)времени выполнения (Runtime Contract)Анализируя вызов функции, оптимизатор Анализируя вызов функции, оптимизатор выявляет выявляет – имена и типы данных столбцов входной таблицы, а имена и типы данных столбцов входной таблицы, а

также также – имена и значения разделов дополнительных имена и значения разделов дополнительных

параметров параметров

и соответствующим образом заполняет и соответствующим образом заполняет некоторые поля объекта-контракта, который некоторые поля объекта-контракта, который затем передается инициализатору функции затем передается инициализатору функции

Page 85: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 8585

MapReduce внутри параллельной СУБД (37)MapReduce внутри параллельной СУБД (37)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (16)16) Реализация Реализация SQL/MapReduce (SQL/MapReduce (99)) Особенности реализации (3)Особенности реализации (3)

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

и обращается к методу complete объекта-и обращается к методу complete объекта-контрактаконтрактаНа основе готового контракта продолжается На основе готового контракта продолжается выработка плана выполнения запроса, и выработка плана выполнения запроса, и – этот контракт соблюдается при последующем этот контракт соблюдается при последующем

выполнении SQL/MapReduce-функции всеми ее выполнении SQL/MapReduce-функции всеми ее экземплярами экземплярами

Page 86: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 8686

MapReduce внутри параллельной СУБД (38)MapReduce внутри параллельной СУБД (38)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (17)17) Реализация Реализация SQL/MapReduce (SQL/MapReduce (1010)) Особенности реализации (4)Особенности реализации (4)

Наиболее важными методами интерфейсов Наиболее важными методами интерфейсов классов для функций над строками и классов для функций над строками и разделами являются методы разделами являются методы OperateOnSomeRows и OperateOnPartitionOperateOnSomeRows и OperateOnPartitionПри обращении к этим методам При обращении к этим методам – реальном выполнении соответствующей функцииреальном выполнении соответствующей функции

в качестве аргументов передаются в качестве аргументов передаются – итератор над строкамиитератор над строками, для обработки которых , для обработки которых

вызывается функция, и вызывается функция, и – объект объект emitteremitter, с помощью вызовов которого , с помощью вызовов которого

возвращаются результирующие строки возвращаются результирующие строки

Page 87: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 8787

MapReduce внутри параллельной СУБД (39)MapReduce внутри параллельной СУБД (39)Aster Data – MapReduce как основа Aster Data – MapReduce как основа UDF (UDF (18)18) Реализация Реализация SQL/MapReduce (SQL/MapReduce (1111)) Особенности реализации (5)Особенности реализации (5)

Чтобы можно было начать использовать Чтобы можно было начать использовать некоторую SQL/MapReduce-функцию, ее нужно некоторую SQL/MapReduce-функцию, ее нужно инсталлироватьинсталлироватьДля этого используется общий механизм Для этого используется общий механизм инсталляции файлов, реализованный в инсталляции файлов, реализованный в nnClusterClusterЭтот механизм реплицирует файл во всех Этот механизм реплицирует файл во всех рабочих узлах системырабочих узлах системыДалее проверяется, что этот файл содержит Далее проверяется, что этот файл содержит SQL/MapReduce-функцию, а также выясняются SQL/MapReduce-функцию, а также выясняются ее статические свойства: ее статические свойства: – является ли она функцией на строками или же над является ли она функцией на строками или же над

разделами, разделами, – содержит ли она вызовы комбинатора и т.д. содержит ли она вызовы комбинатора и т.д.

Page 88: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 8888

MapReduce внутри параллельной СУБД (40)MapReduce внутри параллельной СУБД (40)

Таким образом в этих двух системах Таким образом в этих двух системах обеспечивается возможность развитого обеспечивается возможность развитого анализа данных поблизости от самих анализа данных поблизости от самих данныхданныхРазработчики серверных аналитических Разработчики серверных аналитических приложений несколько ограничиваются приложений несколько ограничиваются моделью MapReduceмоделью MapReduce– в большей степени в Greenplum Database, в большей степени в Greenplum Database,

в меньшей – в nCluster, в меньшей – в nCluster,

но зато пользовательский процедурный но зато пользовательский процедурный код хорошо распараллеливается по код хорошо распараллеливается по данным в массивно-параллельной средеданным в массивно-параллельной среде

Page 89: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 8989

Параллельная СУБД на основе MapReduce (1)Параллельная СУБД на основе MapReduce (1)

В статье Стоунбрейкера и др., посвященной сравнению В статье Стоунбрейкера и др., посвященной сравнению эффективности технологий MapReduce и массивно-эффективности технологий MapReduce и массивно-параллельных СУБД при решении аналитических задач, параллельных СУБД при решении аналитических задач, утверждалось, утверждалось, – что развитость и зрелость технологии параллельных СУБД что развитость и зрелость технологии параллельных СУБД

категории sharing-nothing позволяет им обходиться категории sharing-nothing позволяет им обходиться стоузловыми кластерами для поддержки самых крупных стоузловыми кластерами для поддержки самых крупных сегодняшних аналитических баз данных петабайтного сегодняшних аналитических баз данных петабайтного масштабамасштаба

Вместе с тем, особые качества масштабируемости и Вместе с тем, особые качества масштабируемости и отказоустойчивости технологии MapReduce отказоустойчивости технологии MapReduce проявляются при использовании кластеров проявляются при использовании кластеров с тысячами с тысячами узловузловИз этого делался вывод, что в обозримом будущем эти Из этого делался вывод, что в обозримом будущем эти качества не являются настоятельно необходимыми для качества не являются настоятельно необходимыми для параллельных СУБДпараллельных СУБД

Page 90: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 9090

Параллельная СУБД на основе MapReduce (2)Параллельная СУБД на основе MapReduce (2)

Однако спустя всего несколько месяцев Однако спустя всего несколько месяцев появилась статья, в которой звучат уже появилась статья, в которой звучат уже совсем другие мотивы совсем другие мотивы – Ави Зильбершац и др. HadoopDB: архитектурный Ави Зильбершац и др. HadoopDB: архитектурный

гибрид технологий MapReduce и СУБД для гибрид технологий MapReduce и СУБД для аналитических рабочих нагрузоканалитических рабочих нагрузок

– http://citforum.ru/database/articles/hadoopdb/http://citforum.ru/database/articles/hadoopdb/

В ней говорится, что в связи с ростом объема В ней говорится, что в связи с ростом объема данных, которые требуется анализировать, данных, которые требуется анализировать, возрастает и число приложений, возрастает и число приложений, – для поддержки которых для поддержки которых нужны кластеры с числом нужны кластеры с числом

узлов, больше стаузлов, больше ста

В то же время, имеющиеся в настоящее время В то же время, имеющиеся в настоящее время параллельные СУБД не масштабируются параллельные СУБД не масштабируются должным образом до сотен узловдолжным образом до сотен узлов

Page 91: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 9191

Параллельная СУБД на основе MapReduce (3)Параллельная СУБД на основе MapReduce (3)

Это объясняется следующими причинами: Это объясняется следующими причинами: – При возрастании числа узлов кластера возрастает При возрастании числа узлов кластера возрастает

вероятность отказов отдельных узлов, а массивно-вероятность отказов отдельных узлов, а массивно-параллельные СУБД проектировались в расчете на редкие параллельные СУБД проектировались в расчете на редкие отказыотказы

– Современные параллельные СУБД рассчитаны на Современные параллельные СУБД рассчитаны на однородную аппаратную среду однородную аппаратную среду

все узлы кластера обладают одной и той же все узлы кластера обладают одной и той же производительностью, производительностью,

– а при значительном масштабировании полной а при значительном масштабировании полной однородности среды добиться почти невозможно.однородности среды добиться почти невозможно.

– До последнего времени имелось очень небольшое число До последнего времени имелось очень небольшое число систем аналитических баз данных, для достижения систем аналитических баз данных, для достижения требуемой производительности которых требовались требуемой производительности которых требовались кластеры с более чем несколькими десятками узловкластеры с более чем несколькими десятками узлов

Поэтому существующие параллельные СУБД просто не Поэтому существующие параллельные СУБД просто не тестировались в более масштабной среде, и при их тестировались в более масштабной среде, и при их дальнейшем масштабировании могут встретиться дальнейшем масштабировании могут встретиться непредвиденные технические проблемынепредвиденные технические проблемы

Page 92: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 9292

Параллельная СУБД на основе MapReduce (4)Параллельная СУБД на основе MapReduce (4)

Требуемые характеристики Требуемые характеристики масштабируемости и отказоустойчивости масштабируемости и отказоустойчивости может обеспечить технология MapReduce, может обеспечить технология MapReduce, поскольку поскольку – она с самого начала разрабатывалась с расчетом на она с самого начала разрабатывалась с расчетом на

масштабирование до тысяч узлов, масштабирование до тысяч узлов, – и ее реализация от Google эффективно используется и ее реализация от Google эффективно используется

для поддержки внутренних операций этой компаниидля поддержки внутренних операций этой компании

Несмотря на то, что изначально технология Несмотря на то, что изначально технология MapReduce ориентировалась на обработку MapReduce ориентировалась на обработку неструктурированных текстовых данных,неструктурированных текстовых данных,– известны показательные примеры ее использования известны показательные примеры ее использования

и для обработки огромных объемов и для обработки огромных объемов структурированных данных структурированных данных

Page 93: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 9393

Параллельная СУБД на основе MapReduce (5)Параллельная СУБД на основе MapReduce (5)

Однако объективно при обработке Однако объективно при обработке структурированных данных MapReduce не структурированных данных MapReduce не может конкурировать с параллельными СУБД может конкурировать с параллельными СУБД по производительности, по производительности, – что объясняется отсутствием схемы у что объясняется отсутствием схемы у

обрабатываемых данных, индексов, оптимизации обрабатываемых данных, индексов, оптимизации запросов и т.д. запросов и т.д.

В результате при выполнении многих В результате при выполнении многих типичных аналитических запросов MapReduce типичных аналитических запросов MapReduce показывает производительность, показывает производительность, – более чем на порядок уступающую более чем на порядок уступающую

производительности параллельных СУБДпроизводительности параллельных СУБД

Page 94: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 9494

Параллельная СУБД на основе MapReduce (6)Параллельная СУБД на основе MapReduce (6)

В проекте HadoopDB специалисты из университетов Yale и В проекте HadoopDB специалисты из университетов Yale и Brown предпринимают попытку создать гибридную Brown предпринимают попытку создать гибридную систему управления данными,систему управления данными, – сочетающую преимущества технологий и MapReduce, и сочетающую преимущества технологий и MapReduce, и

параллельных СУБДпараллельных СУБДMapReduce обеспечивает коммуникационную MapReduce обеспечивает коммуникационную инфраструктуру, объединяющую произвольное число инфраструктуру, объединяющую произвольное число узлов,узлов, – в которых выполняются экземпляры традиционной СУБДв которых выполняются экземпляры традиционной СУБД

Запросы формулируются на языке SQL, транслируются в Запросы формулируются на языке SQL, транслируются в среду MapReduce, исреду MapReduce, и – значительная часть работы передается в экземпляры СУБДзначительная часть работы передается в экземпляры СУБД

Наличие MapReduce обеспечиваетНаличие MapReduce обеспечивает– масштабируемость и отказоустойчивость,масштабируемость и отказоустойчивость,

а использование в узлах кластера СУБД позволяет а использование в узлах кластера СУБД позволяет добитьсядобиться– высокой производительности высокой производительности

Page 95: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 9595

Параллельная СУБД на основе MapReduce (7)Параллельная СУБД на основе MapReduce (7)Общая организация HadoopDВ (1)Общая организация HadoopDВ (1)

Основой системы Основой системы является Hadoop является Hadoop MapReduceMapReduceК ней добавлены К ней добавлены компоненты компоненты компиляции компиляции поступающих в поступающих в систему SQL-запросов, систему SQL-запросов, загрузки и загрузки и каталогизирования каталогизирования данных, связи с СУБД и данных, связи с СУБД и самих СУБДсамих СУБДПри реализации всех компонентов системы При реализации всех компонентов системы максимально использовались пригодные для этого максимально использовались пригодные для этого программные средства с открытыми исходными программные средства с открытыми исходными текстами текстами

Page 96: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 9696

Параллельная СУБД на основе MapReduce (Параллельная СУБД на основе MapReduce (88))Общая организация HadoopDВ (Общая организация HadoopDВ (22))

Hadoop MapReduce (1)Hadoop MapReduce (1)

Hadoop MapReduce опирается на Hadoop MapReduce опирается на распределенную файловую систему HDFS распределенную файловую систему HDFS (Hadoop Distributed File System)(Hadoop Distributed File System)Файлы HDFS имеют блочную структуру, и Файлы HDFS имеют блочную структуру, и блоки одного файла распределяются по узлам блоки одного файла распределяются по узлам данных (DataNode)данных (DataNode)Файловая система работает под Файловая система работает под централизованным управлением выделенного централизованным управлением выделенного узла имен (NameNode), в котором узла имен (NameNode), в котором поддерживаются метаданные о файлахподдерживаются метаданные о файлах– в том числе, об их размерах, о размещении блоков и в том числе, об их размерах, о размещении блоков и

их реплик и т.д. их реплик и т.д.

Page 97: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 9797

Параллельная СУБД на основе MapReduce (Параллельная СУБД на основе MapReduce (99))Общая организация HadoopDВ (Общая организация HadoopDВ (33))

Hadoop MapReduce (2)Hadoop MapReduce (2)

В самой среде Hadoop MapReduce В самой среде Hadoop MapReduce поддерживаются один узел-распорядитель поддерживаются один узел-распорядитель – в Hadoop он называется JobTrackerв Hadoop он называется JobTracker

и много узлов-исполнителей и много узлов-исполнителей – здесь TaskTrackerздесь TaskTracker

В узле JobTracker планируется выполнение MR-В узле JobTracker планируется выполнение MR-заданий, а также отслеживаются данные о заданий, а также отслеживаются данные о загрузке узлов TaskTracker и доступных загрузке узлов TaskTracker и доступных ресурсахресурсахКаждое задание разбивается на задачи Каждое задание разбивается на задачи MapMap и и ReduceReduce, которые назначаются узлом JobTracker , которые назначаются узлом JobTracker узлам TaskTracker узлам TaskTracker – с учетом требований локальности данных и с учетом требований локальности данных и

балансировки нагрузки балансировки нагрузки

Page 98: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 9898

Параллельная СУБД на основе MapReduce (Параллельная СУБД на основе MapReduce (1010))Общая организация HadoopDВ (Общая организация HadoopDВ (44))

Hadoop MapReduce (3)Hadoop MapReduce (3)

Требование локальности удовлетворяется за Требование локальности удовлетворяется за счет того, что JobTracker пытается назначать счет того, что JobTracker пытается назначать каждую задачу каждую задачу MapMap тому узлу TaskTracker, тому узлу TaskTracker, – для которого данные, обрабатываемые этой задачей, для которого данные, обрабатываемые этой задачей,

являются локальнымиявляются локальными

Балансировка нагрузки достигается путем Балансировка нагрузки достигается путем назначения задач всем доступным узлам назначения задач всем доступным узлам TaskTrackerTaskTrackerУзлы TaskTracker периодически посылают в Узлы TaskTracker периодически посылают в узел JobTracker контрольные сообщения с узел JobTracker контрольные сообщения с информацией о своем состоянии информацией о своем состоянии

Page 99: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 9999

Параллельная СУБД на основе MapReduce (Параллельная СУБД на основе MapReduce (1111))Общая организация HadoopDВ (Общая организация HadoopDВ (55))

Собственные компоненты Собственные компоненты HadoopDB (1) HadoopDB (1) Коннектор БД (1)Коннектор БД (1)

Коннектор баз данных обеспечивает Коннектор баз данных обеспечивает интерфейс между TaskTracker и независимыми интерфейс между TaskTracker и независимыми СУБД, располагаемыми в узлах кластераСУБД, располагаемыми в узлах кластераЭтот компонент расширяет класс InputFormat Этот компонент расширяет класс InputFormat и является частью соответствующей и является частью соответствующей библиотекибиблиотекиОт каждого MR-задания в коннектор От каждого MR-задания в коннектор поступают SQL-запрос, а также параметры поступают SQL-запрос, а также параметры подключения к системе баз данныхподключения к системе баз данных– указание драйвера JDBC, указание драйвера JDBC, – размер структуры выборки данных и т.д.размер структуры выборки данных и т.д.

Page 100: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 100100

Параллельная СУБД на основе MapReduce (Параллельная СУБД на основе MapReduce (112)2)Общая организация HadoopDВ (6)Общая организация HadoopDВ (6)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (22) ) Коннектор БД (2)Коннектор БД (2)

Теоретически коннектор обеспечивает Теоретически коннектор обеспечивает подключение к любой JDBC-совместимой СУБДподключение к любой JDBC-совместимой СУБДОднако в других компонентах HadoopDB Однако в других компонентах HadoopDB приходится учитывать специфику конкретных приходится учитывать специфику конкретных СУБД, поскольку для них требуется по-СУБД, поскольку для них требуется по-разному оптимизировать запросыразному оптимизировать запросыВ исходных экспериментах использовалась В исходных экспериментах использовалась реализация коннектора для PostgreSQL, а в реализация коннектора для PostgreSQL, а в позже уже упоминалась некоторая позже уже упоминалась некоторая поколоночная системапоколоночная системаВ любом случае, для среды HadoopDB эта В любом случае, для среды HadoopDB эта реализация обеспечивает естественное и реализация обеспечивает естественное и прозрачное использование баз данных в прозрачное использование баз данных в качестве источника входных данных качестве источника входных данных

Page 101: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 101101

Параллельная СУБД на основе MapReduce (Параллельная СУБД на основе MapReduce (113)3)Общая организация HadoopDВ (7)Общая организация HadoopDВ (7)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (33) ) Каталог (1)Каталог (1)

В каталоге поддерживаются метаданные двух В каталоге поддерживаются метаданные двух сортов: сортов: – параметры подключения к базе данных (ее параметры подключения к базе данных (ее

месторасположение, класс JDBC-драйвера, учетные месторасположение, класс JDBC-драйвера, учетные данные) и данные) и

– описание наборов данных, содержащихся в описание наборов данных, содержащихся в кластере, расположение реплик и т.д. кластере, расположение реплик и т.д.

Каталог сохраняется в формате XML в HDFSКаталог сохраняется в формате XML в HDFSК нему обращаются JobTracker и TaskTracker К нему обращаются JobTracker и TaskTracker для выборки данных, требуемых для для выборки данных, требуемых для планирования задач и обработки данных планирования задач и обработки данных

Page 102: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 102102

Параллельная СУБД на основе MapReduce (Параллельная СУБД на основе MapReduce (114)4)Общая организация HadoopDВ (8)Общая организация HadoopDВ (8)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (44) ) Загрузчик данных (1)Загрузчик данных (1)

Обязанностями загрузчика данных Обязанностями загрузчика данных являются: являются: – глобальное разделение данных по глобальное разделение данных по

заданному ключу при их загрузке из HDFS;заданному ключу при их загрузке из HDFS;– разбиение данных, хранимых в одном узле, разбиение данных, хранимых в одном узле,

на несколько более мелких разделов на несколько более мелких разделов ((чанковчанков););

– массовая загрузка данных в базу данных массовая загрузка данных в базу данных каждого узла с использованием чанковкаждого узла с использованием чанков

Page 103: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 103103

Параллельная СУБД на основе MapReduce (Параллельная СУБД на основе MapReduce (115)5)Общая организация HadoopDВ (9)Общая организация HadoopDВ (9)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (55) ) Загрузчик данных (2)Загрузчик данных (2)

Загрузчик данных состоит из компонентов Загрузчик данных состоит из компонентов GlobalHasher и LocalHasherGlobalHasher и LocalHasherGlobalHasher запускает в Hadoop MapReduce GlobalHasher запускает в Hadoop MapReduce специальное задание, в котором специальное задание, в котором – читаются файлы данных HDFS и читаются файлы данных HDFS и – производится их разделение на столько частей, производится их разделение на столько частей,

сколько имеется рабочих узлов в кластересколько имеется рабочих узлов в кластере

Сортировка данных не производитсяСортировка данных не производитсяЗатем LocalHasher в каждом узле копирует Затем LocalHasher в каждом узле копирует соответствующий раздел из HDFS в свою соответствующий раздел из HDFS в свою файловую систему, файловую систему, – разделяя его на чанки в соответствии с разделяя его на чанки в соответствии с

установленным в системе максимальным размером установленным в системе максимальным размером чанка чанка

Page 104: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 104104

Параллельная СУБД на основе MapReduce (Параллельная СУБД на основе MapReduce (116)6)Общая организация HadoopDВ (10)Общая организация HadoopDВ (10)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (66) ) Загрузчик данных (3)Загрузчик данных (3)

В GlobalHasher и LocalHasher В GlobalHasher и LocalHasher используются разные хэш-функции, используются разные хэш-функции, – обеспечивающие примерно одинаковые обеспечивающие примерно одинаковые

размеры всех чанковразмеры всех чанков

Эти хэш-функции отличаются от хэш-Эти хэш-функции отличаются от хэш-функции, используемой в Hadoop функции, используемой в Hadoop MapReduce для разделения данных по MapReduce для разделения данных по умолчаниюумолчанию

Это способствует улучшению Это способствует улучшению балансировки нагрузки балансировки нагрузки

Page 105: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 105105

Параллельная СУБД на основе MapReduce (Параллельная СУБД на основе MapReduce (117)7)Общая организация HadoopDВ (11)Общая организация HadoopDВ (11)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (77) ) Планирование Планирование SQLSQL (1) (1)

Внешний интерфейс HadoopDB позволяет Внешний интерфейс HadoopDB позволяет выполнять SQL-запросывыполнять SQL-запросыКомпиляцию и подготовку планов выполнения Компиляцию и подготовку планов выполнения SQL-запросов производит планировщик SMS SQL-запросов производит планировщик SMS (SMS Planner), (SMS Planner), – являющийся расширением планировщика Hive являющийся расширением планировщика Hive

Планировщик Hive преобразует запросы, Планировщик Hive преобразует запросы, представленные на языке HiveQL (вариант представленные на языке HiveQL (вариант SQL) в задания MapReduce, SQL) в задания MapReduce, – которые выполняются над таблицами, хранимыми в которые выполняются над таблицами, хранимыми в

виде файлов HDFSвиде файлов HDFS

Page 106: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 106106

Параллельная СУБД на основе MapReduce (Параллельная СУБД на основе MapReduce (118)8)Общая организация HadoopDВ (12)Общая организация HadoopDВ (12)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (88) ) Планирование Планирование SQLSQL (2) (2)

Эти задания представляются в виде Эти задания представляются в виде ориентированных ациклических графов ориентированных ациклических графов (DAG) реляционных операций (DAG) реляционных операций – фильтрации (ограничения), фильтрации (ограничения), – выборки (проекции), выборки (проекции), – соединения,соединения,– агрегации, агрегации, каждая из которых выполняется в каждая из которых выполняется в конвейере: конвейере: – после обработки каждого очередного после обработки каждого очередного

кортежа результат каждой операции кортежа результат каждой операции направляется на вход следующей операции направляется на вход следующей операции

Page 107: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 107107

Параллельная СУБД на основе MapReduce (Параллельная СУБД на основе MapReduce (119)9)Общая организация HadoopDВ (13)Общая организация HadoopDВ (13)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (99) ) Планирование Планирование SQLSQL (3) (3)

Операции соединения, как правило, Операции соединения, как правило, выполняются в задаче выполняются в задаче ReduceReduce MR-задания, MR-задания, соответствующего SQL-запросусоответствующего SQL-запросуЭто связано с тем, что каждая Это связано с тем, что каждая обрабатываемая таблица сохраняется в обрабатываемая таблица сохраняется в отдельном файле HDFS, и отдельном файле HDFS, и – невозможно предполагать совместного размещения невозможно предполагать совместного размещения

соединяемых разделов таблиц в одном узле соединяемых разделов таблиц в одном узле кластеракластера

Для HadoopDB это не всегда так, поскольку Для HadoopDB это не всегда так, поскольку соединяемые таблицы соединяемые таблицы – могут разделяться по атрибуту соединения, и тогда могут разделяться по атрибуту соединения, и тогда

операцию соединения можно вытолкнуть на уровень операцию соединения можно вытолкнуть на уровень СУБДСУБД

Page 108: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 108108

Параллельная СУБД на основе MapReduce (20)Параллельная СУБД на основе MapReduce (20)Общая организация HadoopDВ (14)Общая организация HadoopDВ (14)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (1010) ) Планирование Планирование SQLSQL (4) (4)

ПримерПримерПусть задан запрос:Пусть задан запрос:SELECT YEAR(saleDate), SUM(revenue)SELECT YEAR(saleDate), SUM(revenue)FROM salesFROM salesGROUP BY YEAR(saleDate);GROUP BY YEAR(saleDate); В Hive этот запрос обрабатывается В Hive этот запрос обрабатывается следующим образом: следующим образом: – Производится синтаксический разбор запроса, и Производится синтаксический разбор запроса, и

образуется его абстрактное синтаксическое дерево.образуется его абстрактное синтаксическое дерево.– Далее работает семантический анализатор, который Далее работает семантический анализатор, который

выбирает из внутреннего каталога Hive выбирает из внутреннего каталога Hive MetaStoreMetaStore информацию о схеме таблицы sales, а также информацию о схеме таблицы sales, а также инициализирует структуры данных, требуемые для инициализирует структуры данных, требуемые для сканирования этой таблицы и выборки нужных полей сканирования этой таблицы и выборки нужных полей

Page 109: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 109109

Параллельная СУБД на основе MapReduce (21)Параллельная СУБД на основе MapReduce (21)Общая организация HadoopDВ (15)Общая организация HadoopDВ (15)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (1111) ) Планирование Планирование SQLSQL (5) (5)

– Затем генератор логических планов запросов Затем генератор логических планов запросов производит план запроса – DAG реляционных производит план запроса – DAG реляционных операцийопераций

– Вслед за этим оптимизатор перестраивает этот план Вслед за этим оптимизатор перестраивает этот план запроса, проталкивая, например, операции запроса, проталкивая, например, операции фильтрации ближе к операциям сканирования фильтрации ближе к операциям сканирования таблицтаблиц

Основной функцией оптимизатора является разбиение Основной функцией оптимизатора является разбиение плана на фазы плана на фазы MapMap и и ReduceReduceВ частности, перед операциями соединения и В частности, перед операциями соединения и группировки добавляется операция переразделения группировки добавляется операция переразделения данных (Reduce Sink)данных (Reduce Sink)Эти операции отделяют фазу Эти операции отделяют фазу MapMap от фазы от фазы ReduceReduceОценочная (cost-based) оптимизация не используется, и Оценочная (cost-based) оптимизация не используется, и поэтому получаемые планы не всегда эффективны поэтому получаемые планы не всегда эффективны

Page 110: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 110110

Параллельная СУБД на основе MapReduce (22)Параллельная СУБД на основе MapReduce (22)Общая организация HadoopDВ (16)Общая организация HadoopDВ (16)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (1212) ) Планирование Планирование SQLSQL (6) (6)

– Генератор физических плановГенератор физических плановвыполнения запросов выполнения запросов преобразует логический план преобразует логический план в физический, допускающий в физический, допускающий выполнение в виде одного выполнение в виде одного или нескольких или нескольких MR-заданийMR-заданий

Первая (и каждая аналогичная) Первая (и каждая аналогичная) операция Reduce Sink операция Reduce Sink помечает переход от фазы Map помечает переход от фазы Map к фазе Reduce некоторого к фазе Reduce некоторого задания MapReduce, а остальные задания MapReduce, а остальные операции Reduce Sink помечают операции Reduce Sink помечают начало следующего задания MapReduce начало следующего задания MapReduce

SELECT YEAR(saleDate), SELECT YEAR(saleDate), SUM(revenue)SUM(revenue)FROM salesFROM salesGROUP BY YEAR(saleDate);GROUP BY YEAR(saleDate);

Page 111: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 111111

Параллельная СУБД на основе MapReduce (23)Параллельная СУБД на основе MapReduce (23)Общая организация HadoopDВ (17)Общая организация HadoopDВ (17)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (1313) ) Планирование Планирование SQLSQL (7) (7)

– Полученный DAG сериализуется в Полученный DAG сериализуется в формате XMLформате XML

Задания инициируются драйвером Hive, Задания инициируются драйвером Hive, который который

– руководствуется планом в формате SQL и руководствуется планом в формате SQL и – создает все необходимые объекты, создает все необходимые объекты,

сканирующие данные в таблицах HDFS и сканирующие данные в таблицах HDFS и покортежно обрабатывающие данные покортежно обрабатывающие данные

Page 112: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 112112

Параллельная СУБД на основе MapReduce (24)Параллельная СУБД на основе MapReduce (24)Общая организация HadoopDВ (18)Общая организация HadoopDВ (18)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (1414) ) Планирование Планирование SQLSQL (8) (8)

В планировщике SMS В планировщике SMS функциональность планировщика Hive функциональность планировщика Hive расширяется следующим образомрасширяется следующим образомВо-первых, до обработки каждого Во-первых, до обработки каждого запроса модифицируется MetaStore, запроса модифицируется MetaStore, куда помещается информация о куда помещается информация о таблицах базы данныхтаблицах базы данных– Для этого используется каталог HadoopDBДля этого используется каталог HadoopDBДалее, после генерации физического Далее, после генерации физического плана запроса и до выполнения MR-плана запроса и до выполнения MR-заданий выполняются два прохода по заданий выполняются два прохода по физическому плануфизическому плану

Page 113: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 113113

Параллельная СУБД на основе MapReduce (25)Параллельная СУБД на основе MapReduce (25)Общая организация HadoopDВ (19)Общая организация HadoopDВ (19)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (1515) ) Планирование Планирование SQLSQL (9) (9)

На первом проходеНа первом проходе – устанавливается, какие столбцы таблиц устанавливается, какие столбцы таблиц

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

операциях Reduce Sinkоперациях Reduce SinkНа втором проходе DAG запроса обходится снизу-На втором проходе DAG запроса обходится снизу-вверх от операций сканирования таблиц до вверх от операций сканирования таблиц до формирования результата или первой операции формирования результата или первой операции Reduce SinkReduce SinkВсе операции этой части DAG преобразуются в Все операции этой части DAG преобразуются в один или несколько SQL-запросов, которые один или несколько SQL-запросов, которые проталкиваются на уровень СУБДпроталкиваются на уровень СУБДДля повторного создания кода SQL используется Для повторного создания кода SQL используется специальный основанный на правилах генераторспециальный основанный на правилах генератор

Page 114: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 114114

Параллельная СУБД на основе MapReduce (26)Параллельная СУБД на основе MapReduce (26)Общая организация HadoopDВ (20)Общая организация HadoopDВ (20)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (1616) ) Планирование Планирование SQLSQL (10) (10)

Такой план Такой план производится в том производится в том случае, если таблица случае, если таблица sales является sales является разделенной по разделенной по YEAR(saleDate)YEAR(saleDate)В этом случае вся логика выполнения В этом случае вся логика выполнения запроса выталкивается в СУБДзапроса выталкивается в СУБДЗадача Задача MapMap всего лишь записывает всего лишь записывает результаты запроса в файл HDFS результаты запроса в файл HDFS

SELECT YEAR(saleDate), SELECT YEAR(saleDate), SUM(revenue)SUM(revenue)FROM salesFROM salesGROUP BY YEAR(saleDate);GROUP BY YEAR(saleDate);

Page 115: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 115115

Параллельная СУБД на основе MapReduce (27)Параллельная СУБД на основе MapReduce (27)Общая организация HadoopDВ (21)Общая организация HadoopDВ (21)

Собственные компоненты Собственные компоненты HadoopDB (HadoopDB (1717) ) Планирование Планирование SQLSQL (11) (11)

В противном случае В противном случае генерируется такой генерируется такой план план При выполнении запроса При выполнении запроса по этому плану на уровне по этому плану на уровне базы данных производится базы данных производится частичная агрегация данных, частичная агрегация данных,

– а для окончательной агрегации а для окончательной агрегации требуется выполнение задачи требуется выполнение задачи ReduceReduce, производящей слияние , производящей слияние частичных результатов группировки, частичных результатов группировки, которые получены в каждом узле на фазе задачи которые получены в каждом узле на фазе задачи MapMap

SELECT YEAR(saleDate), SELECT YEAR(saleDate), SUM(revenue)SUM(revenue)FROM salesFROM salesGROUP BY YEAR(saleDate);GROUP BY YEAR(saleDate);

Page 116: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 116116

Параллельная СУБД на основе MapReduce (28)Параллельная СУБД на основе MapReduce (28)Характеристики HadoopDВ (1)Характеристики HadoopDВ (1)

Описан ряд экспериментов, Описан ряд экспериментов, показывающих, что гибридное показывающих, что гибридное использование технологий MapReduce и использование технологий MapReduce и баз данных в реализации HadoopDB баз данных в реализации HadoopDB позволяет добиться от этой системы позволяет добиться от этой системы – производительности, соизмеримой с производительности, соизмеримой с

производительностью параллельных СУБД, производительностью параллельных СУБД, и и

– устойчивости к отказам и падению устойчивости к отказам и падению производительности узлов, свойственной производительности узлов, свойственной MapReduceMapReduce

Кратко отметим основные результаты Кратко отметим основные результаты

Page 117: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 117117

Параллельная СУБД на основе MapReduce (29)Параллельная СУБД на основе MapReduce (29)Характеристики HadoopDВ (2)Характеристики HadoopDВ (2)

Производительность и масштабируемость (1)Производительность и масштабируемость (1)

В большинстве экспериментов В большинстве экспериментов – параллельные СУБД существенно превосходят параллельные СУБД существенно превосходят

HadoopDB по производительности, HadoopDB по производительности, – а HadoopDB оказывается значительно (иногда на а HadoopDB оказывается значительно (иногда на

порядок) производительнее связки Hive и Hadoop порядок) производительнее связки Hive и Hadoop MapReduceMapReduce

В экспериментах использовались В экспериментах использовались поколоночная параллельная СУБД Vertica и поколоночная параллельная СУБД Vertica и некоторая коммерческая параллельная СУБД-некоторая коммерческая параллельная СУБД-X с хранением таблиц по строкамX с хранением таблиц по строкамНаибольшую производительность, Наибольшую производительность, естественно, демонстрировала Vertica, естественно, демонстрировала Vertica, – но в ряде случаев HadoopDB уступала ей но в ряде случаев HadoopDB уступала ей

значительно меньше, чем на десятичный порядок значительно меньше, чем на десятичный порядок

Page 118: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 118118

Параллельная СУБД на основе MapReduce (30)Параллельная СУБД на основе MapReduce (30)Характеристики HadoopDВ (3)Характеристики HadoopDВ (3)

Производительность и масштабируемость (2)Производительность и масштабируемость (2)

Значительное отставание HadoopDB от Значительное отставание HadoopDB от параллельных СУБД объясняется тем, что в параллельных СУБД объясняется тем, что в HadoopDB использовалась PostgreSQL, в HadoopDB использовалась PostgreSQL, в которой отсутствует возможность хранения которой отсутствует возможность хранения таблиц по столбцамтаблиц по столбцам– как уже отмечалось, в HadoopDB уже используется как уже отмечалось, в HadoopDB уже используется

поколоночная СУБДпоколоночная СУБД

Кроме того, в экспериментах с HadoopDB не Кроме того, в экспериментах с HadoopDB не использовалось сжатие данныхиспользовалось сжатие данныхНаконец, в HadoopDB возникали значительные Наконец, в HadoopDB возникали значительные накладные расходы на взаимодействие накладные расходы на взаимодействие Hadoop MapReduce и PostgreSQL, которые Hadoop MapReduce и PostgreSQL, которые потенциально можно снизить потенциально можно снизить

Page 119: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 119119

Параллельная СУБД на основе MapReduce (31)Параллельная СУБД на основе MapReduce (31)Характеристики HadoopDВ (4)Характеристики HadoopDВ (4)

Производительность и масштабируемость (3)Производительность и масштабируемость (3)

Так что в целом производительность Так что в целом производительность HadoopDB не должна критически HadoopDB не должна критически отставать от производительности отставать от производительности параллельных СУБД параллельных СУБД Время загрузки данных в HadoopDB в Время загрузки данных в HadoopDB в десять раз больше соответствующего десять раз больше соответствующего времени для Hadoop MapReduceвремени для Hadoop MapReduceОднако это окупается десятикратным Однако это окупается десятикратным выигрышем в производительности при выигрышем в производительности при выполнении некоторых запросов выполнении некоторых запросов

Page 120: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 120120

Параллельная СУБД на основе MapReduce (32)Параллельная СУБД на основе MapReduce (32)Характеристики HadoopDВ (5)Характеристики HadoopDВ (5)

Производительность и масштабируемость (4)Производительность и масштабируемость (4)

При возрастании числа узлов в При возрастании числа узлов в кластере при одновременном кластере при одновременном увеличении объема данных HadoopDB увеличении объема данных HadoopDB (как и Hadoop) масштабируется почти (как и Hadoop) масштабируется почти линейнолинейноНо в этом диапазоне не хуже Но в этом диапазоне не хуже масштабируется и Vertica масштабируется и Vertica – с СУБД-X дела обстоят несколько хуже, с СУБД-X дела обстоят несколько хуже, а эксперименты на кластерах большего а эксперименты на кластерах большего размера не производилисьразмера не производилисьТак что объективных данных в этом Так что объективных данных в этом отношении пока нет отношении пока нет

Page 121: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 121121

Параллельная СУБД на основе MapReduce (33)Параллельная СУБД на основе MapReduce (33)Характеристики HadoopDВ (6)Характеристики HadoopDВ (6)

Устойчивость к отказам и неоднородности среды (1)Устойчивость к отказам и неоднородности среды (1)

В экспериментах с отказоустойчивостью и В экспериментах с отказоустойчивостью и падением производительности некоторого падением производительности некоторого узла сравнивались HadoopDB, Hadoop узла сравнивались HadoopDB, Hadoop MapReduce c Hive и VerticaMapReduce c Hive и VerticaВ первом случае работа одного из узлов В первом случае работа одного из узлов кластера искусственным образом кластера искусственным образом прекращалась после выполнения 50% прекращалась после выполнения 50% обработки запросаобработки запросаВо втором случае работа одного узла Во втором случае работа одного узла замедлялась за счет выполнения фонового замедлялась за счет выполнения фонового задания с большим объемом ввода-вывода с задания с большим объемом ввода-вывода с тем же диском, на котором сохранялись тем же диском, на котором сохранялись файлы соответствующей системы файлы соответствующей системы

Page 122: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 122122

Параллельная СУБД на основе MapReduce (34)Параллельная СУБД на основе MapReduce (34)Характеристики HadoopDВ (7)Характеристики HadoopDВ (7)

Устойчивость к отказам и неоднородности среды (2)Устойчивость к отказам и неоднородности среды (2)

При продолжении работы после отказа узла СУБД При продолжении работы после отказа узла СУБД Vertica приходилось выполнять запрос заново с Vertica приходилось выполнять запрос заново с использованием реплик данных, и использованием реплик данных, и – время выполнения запроса возрастало почти вдвоевремя выполнения запроса возрастало почти вдвое

В HadoopDB и Hadoop MapReduce c Hive время В HadoopDB и Hadoop MapReduce c Hive время выполнения увеличивалось примерно на 15-20% за счет выполнения увеличивалось примерно на 15-20% за счет того, что того, что – задачи, выполнявшиеся на отказавшем узле, задачи, выполнявшиеся на отказавшем узле,

перераспределялись между оставшимися узламиперераспределялись между оставшимися узламиПри этом относительная производительность HadoopDB При этом относительная производительность HadoopDB оказывается несколько выше, чем у Hadoop MapReduce оказывается несколько выше, чем у Hadoop MapReduce c Hive, поскольку c Hive, поскольку – в первом случае обработка запроса проталкивалась на в первом случае обработка запроса проталкивалась на

узлы, содержащие реплики баз данных, узлы, содержащие реплики баз данных, – а во втором приходилось копировать данные, не а во втором приходилось копировать данные, не

являющиеся локальными для обрабатывающего узла являющиеся локальными для обрабатывающего узла

Page 123: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 123123

Параллельная СУБД на основе MapReduce (35)Параллельная СУБД на основе MapReduce (35)Характеристики HadoopDВ (8)Характеристики HadoopDВ (8)

Устойчивость к отказам и неоднородности среды (3)Устойчивость к отказам и неоднородности среды (3)

При замедлении работы одного из При замедлении работы одного из узлов производительность Vertica узлов производительность Vertica определялась скоростью этого узла, определялась скоростью этого узла, – и в экспериментах время выполнения и в экспериментах время выполнения

запроса увеличивалось на 170%запроса увеличивалось на 170%

При использовании HadoopDB и Hadoop При использовании HadoopDB и Hadoop MapReduce c Hive время выполнения MapReduce c Hive время выполнения запроса увеличивалось запроса увеличивалось – всего на 30% за счет образования всего на 30% за счет образования

резервных избыточных задач в резервных избыточных задач в недозагруженных узлах недозагруженных узлах

Page 124: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 124124

Параллельная СУБД на основе MapReduce (36)Параллельная СУБД на основе MapReduce (36)

Проект HadoopDB представляется очень Проект HadoopDB представляется очень интересным и перспективныминтересным и перспективнымВ отличие от других систем, HadoopDB – это В отличие от других систем, HadoopDB – это проект с открытыми исходными текстами, так проект с открытыми исходными текстами, так что потенциально участие в этой работе что потенциально участие в этой работе доступно для всех желающихдоступно для всех желающихПомимо прочего, проект HadoopDB открывает Помимо прочего, проект HadoopDB открывает путь к созданию высокопроизводительных, путь к созданию высокопроизводительных, масштабируемых и отказоустойчивых масштабируемых и отказоустойчивых параллельных СУБД на основе имеющихся параллельных СУБД на основе имеющихся программных средств с открытыми кодами программных средств с открытыми кодами

Page 125: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 125125

ETL ETL с использованием с использованием MapReduceMapReduce ( (11))

Различных средств ETL (Extract-Transform-Load) Различных средств ETL (Extract-Transform-Load) существует великое множество, и они применяются во существует великое множество, и они применяются во многих компаниях, использующих хранилища данныхмногих компаниях, использующих хранилища данных– трудно даже пытаться как-то их классифицировать и/или трудно даже пытаться как-то их классифицировать и/или

сравниватьсравниватьНо, в любом случае, важность этих средств трудно Но, в любом случае, важность этих средств трудно переоценить, поскольку в хранилище данных по переоценить, поскольку в хранилище данных по определению поступают данные из самых определению поступают данные из самых разнообразных источников: разнообразных источников: – транзакционных баз данных, транзакционных баз данных, – сообщений, участвующих в организации бизнес-процессов, сообщений, участвующих в организации бизнес-процессов, – электронной почты, электронной почты, – журналов Web-серверов и т.д.журналов Web-серверов и т.д.

Все эти данные нужно очистить, привести к единому Все эти данные нужно очистить, привести к единому формату, согласовать и загрузить в хранилище данных формату, согласовать и загрузить в хранилище данных для последующего анализа для последующего анализа

Page 126: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 126126

ETL ETL с использованием с использованием MapReduceMapReduce (2) (2)

Можно согласиться, что при использовании Можно согласиться, что при использовании ортодоксального подхода к организации ортодоксального подхода к организации хранилищ данных подключение нового хранилищ данных подключение нового источника к хранилищу данных может занять источника к хранилищу данных может занять недопустимо много времени во многом недопустимо много времени во многом – из-за потребности в создании соответствующей из-за потребности в создании соответствующей

процедуры ETLпроцедуры ETL

Можно согласиться и с тем, что для аналитиков Можно согласиться и с тем, что для аналитиков – гораздо важнее получить новые данные, чем быть гораздо важнее получить новые данные, чем быть

вынужденными ждать неопределенное время их в вынужденными ждать неопределенное время их в согласованной формесогласованной форме

Но совершенно очевидно, что если данные в Но совершенно очевидно, что если данные в хранилище данных не очищать никогда, то хранилище данных не очищать никогда, то – со временем в них не разберется никакой, даже со временем в них не разберется никакой, даже

самый передовой аналитик самый передовой аналитик

Page 127: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 127127

ETL ETL с использованием с использованием MapReduceMapReduce (3) (3)

Итак, что мы имеемИтак, что мы имеемЧисло источников данных, пригодных для анализа в Число источников данных, пригодных для анализа в составе хранилища данных, все время растетсоставе хранилища данных, все время растетИх разнородность тоже все время возрастаетИх разнородность тоже все время возрастаетВсе меньший процент составляют структурированные Все меньший процент составляют структурированные базы данных, базы данных, – данные поступают из частично структурированных файлов данные поступают из частично структурированных файлов

и совсем неструктурированных текстовых документови совсем неструктурированных текстовых документовДля каждой разновидности источников данных нужна Для каждой разновидности источников данных нужна своя разновидность процедуры ETL, и своя разновидность процедуры ETL, и – по причине роста объемов исходных данных для по причине роста объемов исходных данных для

обеспечения умеренного времени их загрузки в хранилище обеспечения умеренного времени их загрузки в хранилище данных эти процедуры должны выполняться в массивно-данных эти процедуры должны выполняться в массивно-параллельной средепараллельной среде

И в этом может помочь технология MapReduce И в этом может помочь технология MapReduce

Page 128: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 128128

ETL ETL с использованием с использованием MapReduceMapReduce (4) (4)MapReduce MapReduce и и ETL (1)ETL (1)

Для канонического способа Для канонического способа использования технологии MapReduce использования технологии MapReduce характерно применение следующих характерно применение следующих операций: операций: – чтение журнальных данных из нескольких чтение журнальных данных из нескольких

разных файлов-журналов;разных файлов-журналов;– разбор и очистка журнальных данных;разбор и очистка журнальных данных;– преобразования этих данных, в том числе преобразования этих данных, в том числе

их частичная агрегация;их частичная агрегация;– принятие решения о схеме результирующих принятие решения о схеме результирующих

данных;данных;– загрузка данных в хранилище данных или загрузка данных в хранилище данных или

другую систему хранениядругую систему хранения

Page 129: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 129129

ETL ETL с использованием с использованием MapReduceMapReduce (5) (5)MapReduce MapReduce и и ETL (ETL (22))

В точности такие же шаги выполняются В точности такие же шаги выполняются в системах ETL при извлечении, в системах ETL при извлечении, преобразовании и загрузке данныхпреобразовании и загрузке данныхПо сути дела, MapReduce производит из По сути дела, MapReduce производит из исходных "сырых" данных некоторую исходных "сырых" данных некоторую полезную информацию, полезную информацию, – которую потребляет другая система которую потребляет другая система

храненияхраненияВ некотором смысле можно считать В некотором смысле можно считать любую реализацию MapReduce любую реализацию MapReduce – параллельной инфрастуктурой выполнения параллельной инфрастуктурой выполнения

процедур ETL процедур ETL

Page 130: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 130130

ETL ETL с использованием с использованием MapReduceMapReduce (6) (6)MapReduce MapReduce и и ETL (ETL (33))

Имелись попытки реализации процедур ETL Имелись попытки реализации процедур ETL внутри сервера баз данных средствами языка внутри сервера баз данных средствами языка SQLSQLРазработчики параллельных СУБД с Разработчики параллельных СУБД с поддержкой MapReduce Greenplum Database и поддержкой MapReduce Greenplum Database и nnCluster компании Aster Data тоже намекают, Cluster компании Aster Data тоже намекают, что их встроенный MapReduce можно что их встроенный MapReduce можно использовать и для поддержки ETLиспользовать и для поддержки ETLНо исторически системы ETL промышленного Но исторически системы ETL промышленного уровня существуют отдельно от СУБДуровня существуют отдельно от СУБДОбычно СУБД не пытаются выполнять ETL, а Обычно СУБД не пытаются выполнять ETL, а системы ETL не поддерживают функции СУБД системы ETL не поддерживают функции СУБД

Page 131: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 131131

ETL ETL с использованием с использованием MapReduceMapReduce (7) (7)Hadoop Hadoop и и Vertica (1)Vertica (1)

Если иметь в Если иметь в виду поддержку виду поддержку именно ETL, то именно ETL, то наиболее наиболее грамотное грамотное – и самое простоеи самое простое

решение по интеграции решение по интеграции технологий MapReduce и технологий MapReduce и параллельных баз данных параллельных баз данных применяется в Vertica применяется в Vertica

Page 132: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 132132

ETL ETL с использованием с использованием MapReduceMapReduce (8) (8)Hadoop Hadoop и и Vertica (Vertica (22))

В Vertica реализован свой вариант В Vertica реализован свой вариант интерфейса DBInputFormat компании интерфейса DBInputFormat компании Cloudera для Hadoop MapReduce, Cloudera для Hadoop MapReduce, позволяющий разработчикам позволяющий разработчикам MapReduce MapReduce – выбирать данные из баз данных Vertica и выбирать данные из баз данных Vertica и – направлять результирующие данные в эти направлять результирующие данные в эти

базы данныхбазы данныхПри этом подходе технологии При этом подходе технологии MapReduce и параллельных баз данных MapReduce и параллельных баз данных тесно не интегрируются, но каждая из тесно не интегрируются, но каждая из них может использовать возможности них может использовать возможности другой технологии другой технологии

Page 133: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 133133

ETL ETL с использованием с использованием MapReduceMapReduce (9) (9)

Скорее всего, мы еще многое Скорее всего, мы еще многое услышим о системах ETL, услышим о системах ETL, основанных на использовании основанных на использовании технологии MapReduce, и, скорее технологии MapReduce, и, скорее всего, всего, – предводителем этого направления предводителем этого направления

будет Vertica будет Vertica

Page 134: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 134134

Заключение (1)Заключение (1)Еще пару лет назад было непонятно, каким Еще пару лет назад было непонятно, каким образом можно с пользой применять образом можно с пользой применять возникающие "облачные" среды для возникающие "облачные" среды для высокоуровневого управления даннымивысокоуровневого управления даннымиМногие люди считали, что в "облаках" Многие люди считали, что в "облаках" системы управления базами данных будут системы управления базами данных будут просто вытеснены технологией MapReduceпросто вытеснены технологией MapReduceЭто вызывало естественное недовольство Это вызывало естественное недовольство сообщества баз данных, авторитетные сообщества баз данных, авторитетные представители которого старались доказать, представители которого старались доказать, что пытаться заменить СУБД какой-либо что пытаться заменить СУБД какой-либо реализацией MapReduce реализацией MapReduce – если не безнравственно, если не безнравственно, – то, по крайней мере, неэффективно то, по крайней мере, неэффективно

Page 135: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 135135

Заключение (2)Заключение (2)Однако вскоре стало понятно, что технология Однако вскоре стало понятно, что технология MapReduce может быть полезна для самих MapReduce может быть полезна для самих параллельных СУБДпараллельных СУБДВо многом становлению и реализации этой Во многом становлению и реализации этой идеи способствовали компании-стартапы, идеи способствовали компании-стартапы, выводящие на рынок новые аналитические выводящие на рынок новые аналитические массивно-параллельные СУБД и массивно-параллельные СУБД и добивающиеся конкурентных преимуществдобивающиеся конкурентных преимуществСвою лепту вносили и продолжают вносить и Свою лепту вносили и продолжают вносить и университетские исследовательские университетские исследовательские коллективы, находящиеся в тесном коллективы, находящиеся в тесном сотрудничестве с этими начинающими сотрудничестве с этими начинающими компаниями компаниями

Page 136: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 136136

Заключение (3)Заключение (3)На сегодняшний день уже понятно, что На сегодняшний день уже понятно, что технология MapReduce может технология MapReduce может – эффективно применяться внутри эффективно применяться внутри

параллельной аналитической СУБД, параллельной аналитической СУБД, – служить инфраструктурой служить инфраструктурой

отказоустойчивой параллельной СУБД, отказоустойчивой параллельной СУБД, – а также сохранять свою автономность в а также сохранять свою автономность в

симбиотическом союзе с параллельной симбиотическом союзе с параллельной СУБДСУБД

Все это не только мешает развитию Все это не только мешает развитию технологии параллельных СУБД, а технологии параллельных СУБД, а наоборот, способствует ее наоборот, способствует ее совершенствованию и распространению совершенствованию и распространению

Page 137: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 137137

Заключение (4)Заключение (4)

Интересные работы ведутся и в Интересные работы ведутся и в направлении использования направлении использования "облачных" сред для создания "облачных" сред для создания нового поколения транзакционных нового поколения транзакционных средств управления даннымисредств управления данными

Но это уже совсем другая история Но это уже совсем другая история

Page 138: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 138138

Заключение (5)Заключение (5)

Полный текст:Полный текст:

Сергей Кузнецов. MapReduce: Сергей Кузнецов. MapReduce: внутри, снаружи или сбоку от внутри, снаружи или сбоку от параллельных СУБД?параллельных СУБД?

http://citforum.ru/database/articles/dw_appliance_and_mr/http://citforum.ru/database/articles/dw_appliance_and_mr/

Page 139: Map-Reduce и параллельные аналитические базы данных

23 апреля 2010 г.23 апреля 2010 г. Корпоративные базы данных 2010Корпоративные базы данных 2010 139139

Спасибо за терпение!Спасибо за терпение!