Компания Facebook перевела в разряд открытых систему Presto, созданную в качестве высокопроизводительной альтернативы технологиям MapReduce и Hive, ранее используемым для выполнения запросов в многопетабайтных хранилищах на базе платформы Hadoop. Presto находится в разработке с осени прошлого года и развивается для решения проблем с длительным временем отклика, свойственным существующим средствам обработки данных для имеющегося в Facebook хранилища на базе Hadoop, размер которого превысил 300 петабайт.
В отличие от MapReduce, Presto позволяет формировать запросы с использованием языка SQL, обеспечивая при этом в десять раз более высокую производительность и отзывчивость, по сравнению с Hive и MapReduce. При этом движок не ограничивается работой поверх Hadoop и может использоваться в связке с обычными реляционными БД и проприетарными системами хранения. Для абстрагирования от нижележащего хранилизща в Presto применяется механизм подключаемых бэкендов.
Сформированный в Presto запрос может охватывать несколько источников данных, агрегируя полученные данные в единый итоговый результат. В качестве основной области применения Presto называется выполнение аналитических запросов, для которых допустимо время отклика от долей секунды до нескольких минут. Тем самым Presto является первым открытым решение для задач быстрой аналитики, которые ранее были доступны только через дорогие проприетарные системы или через использование свободных систем, требующих излишнего аппаратного обеспечения.
Движком поддерживается большинство элементов, определённых в спецификации ANSI SQL. Для формирования запросов можно использовать специальную консольную облочку, модули интеграции с интегрированными средами разработки и биндинги для различных языков программирования. Код Presto написан на языке Java и распространяется под лицензией Apache 2.