Presto – это распределенный механизм обработки запросов SQL с открытым исходным кодом, оптимизированный для выполнения спонтанного анализа данных с низкой задержкой. Оно поддерживает стандарт ANSI SQL, включая комплексные запросы, агрегацию, слияние и функции окон. Presto может обрабатывать данные из множества источников, включая распределенную файловую систему Hadoop (HDFS) и Amazon S3. Presto предусматривает два проекта сообщества: PrestoDB и PrestoSQL. Amazon EMR поддерживает оба проекта. Дополнительные сведения о PrestoDB приведены здесь.
Быстро и просто создавать управляемые кластеры Presto можно с помощью Консоли управления AWS, Интерфейса командной строки или интерфейса API сервиса Amazon EMR. Можно также использовать дополнительные возможности Amazon EMR, в том числе быстрое подключение к Amazon S3, интеграцию со спотовыми инстансами Amazon EC2, широкий выбор инстансов Amazon EC2, включая инстансы с оптимизацией памяти, а также команды для изменения размера кластера путем простого добавления или удаления инстансов.
Возможности и преимущества
Выполнение интерактивных запросов
Presto использует пользовательский механизм выполнения запросов с операторами, предназначенными для поддержки семантики SQL. В отличие от Hive / MapReduce, Presto исполняет запросы в памяти, передавая их по сетевому конвейеру между фазами, что позволяет избежать ненужных операций ввода‑вывода. Конвейерная модель исполнения запускает множество фаз параллельно и транслирует данные из одной фазы в другую по мере их готовности.
Удобство использования
Для запуска кластера Amazon EMR с Presto потребуется лишь несколько минут. Не нужно заниматься выделением узлов, настройкой, конфигурацией или оптимизацией кластера. Об этом позаботится Amazon EMR, а вы можете сконцентрироваться на аналитических задачах. При этом можно использовать такие инструменты, как Airpal – средство с открытым исходным кодом от компании Airbnb для выполнения запросов через Интернет. Интерфейс пользователя Airpal упрощает просмотр и спонтанный анализ данных. Доступны такие возможности, как выделение синтаксических элементов, экспорт результатов в CSV, сохранение запросов для последующего использования и анализ таблиц для визуализации схем.
Интеграция с набором возможностей Amazon EMR
Выполняйте интерактивные запросы, которые напрямую обращаются к данным в Amazon S3, экономьте средства, используя ресурсы спотовых инстансов Amazon EC2, применяйте управляемое масштабирование EMR для динамического добавления и удаления ресурсов, а также запускайте долгосрочные или краткосрочные кластеры в зависимости от рабочих нагрузок. Можно также добавлять в свой кластер другие приложения семейства Hadoop.
Поддержка ANSI SQL
Presto поддерживает стандарт ANSI SQL, что позволяет аналитикам данных и разработчикам без труда запрашивать структурированные и неструктурированные данные в любом масштабе. В настоящее время Presto поддерживает широкий спектр функций SQL, включая сложные запросы, агрегацию, слияние и оконные функции.
Истории успеха клиентов
Компания Netflix выбрала Presto в качестве ядра интерактивной обработки запросов к большим данным, совместимого с ANSI SQL. Presto хорошо масштабируется, является решением с открытым исходным кодом и интегрируется с Hive Metastore и Amazon S3, на которых основана среда хранения больших данных Netflix. Netflix запускает Presto на постоянных кластерах Amazon EMR, что позволяет быстро и гибко запрашивать данные из хранилища Amazon S3 объемом порядка 25 ПБ. Netflix является активным участником проекта Presto, и Amazon EMR предоставляет Netflix гибкие возможности запуска собственной сборки Presto на кластерах Amazon EMR. В среднем Netflix выполняет на своих кластерах Presto около 3500 запросов в день.
Jampp – это маркетинговая платформа для мобильных приложений, которая использует передовые методы ретаргетинга рекламы для привлечения в приложения новых пользователей. Jampp покупает рекламные инструменты для мобильных приложений с помощью своего собственного механизма торгов в режиме реального времени (RTB), который динамически размещает заявки на рекламные инструменты на 18 биржах RTB и более чем в 150 мобильных рекламных сетях. Jampp использует Presto на базе Amazon EMR для расширенного спонтанного анализа данных журналов, объединяющего данные из нескольких источников и сложные вычисления сегментов ретаргетинга. С увеличением базы пользователей Jampp на 600 % возросла потребность в выполнении сложных аналитических запросов. Компания Jampp отказалась от использования сложного Python‑приложения на MySQL для многоядерной архитектуры в пользу Presto, что привело к 12‑кратному повышению производительности. В настоящее время Jampp использует Presto в Amazon EMR для обработки 40 ТБ данных в день.
Инкубатор стартапов Cogo Labs управляет платформой для анализа рынка и бизнес‑аналитики, которой пользуются входящие в инкубатор компании и собственные группы специалистов Cogo Labs. Компания стандартизировала работу с данными на основе SQL, чтобы обеспечить поддержку среды OLAP с высоким уровнем инноваций. Cogo Labs выбрала Presto за производительность при выполнении запросов в режиме реального времени, поддержку ANSI‑SQL и способность обрабатывать данные непосредственно из Amazon S3. Благодаря ядру Presto, работающему на Amazon EMR, более 100 разработчиков и аналитиков компании могут отправлять SQL‑запросы более чем к 500 ТБ данных, хранящихся в Amazon S3, для просмотра этих данных, спонтанного анализа и создания отчетов. Cogo Labs использует сочетание краткосрочных и постоянных кластеров. Интеграция Amazon EMR со спотовыми инстансами помогает компании снизить затраты.
Компания OpenSpan предоставляет решения для автоматизации и аналитики, которые помогают объединить людей, процессы и технологии для лучшего понимания производительности сотрудников, упрощения транзакций, а также вовлечения сотрудников и клиентов. Компания OpenSpan осуществила миграцию с HBase на Presto в Amazon EMR с хранилищем данных в Amazon S3. Компания OpenSpan выбрала ядро Presto, поскольку оно обладает интерфейсом SQL и может запрашивать данные в режиме реального времени непосредственно из Amazon S3. Это позволяет сотрудникам компании быстро просматривать огромные объемы данных и быстро разрабатывать новые продукты для обработки данных. OpenSpan использует формат файла Parquet и применяет PrestogreSQL для подключения к Presto. Компания OpenSpan выбрала Amazon EMR и Amazon S3 для экономичной обработки гигабайтов данных, которые она получает ежедневно от своих клиентов.
Kanmu – это японский стартап в сфере финансовых сервисов, который предоставляет держателям кредитных карт специальные предложения на основании информации об использовании карт. Компания Kanmu осуществила миграцию с Hive на Presto в Amazon EMR, поскольку Presto позволяет выполнять поисковый и итерационный анализ в интерактивном режиме, обладает хорошей производительностью при работе с Amazon S3 и может масштабироваться для выполнения запросов к большим наборам данных. Kanmu использует для передачи данных в Amazon S3 модуль Fluentd‑plugin‑s3, применяет для хранения данных оптимизированный формат строк и столбцов (ORC), а SQL‑запросы выполняет с помощью веб‑клиента shib на основе node.js.
Подробнее о ценах на Amazon EMR