Airpal: веб-приложение для работы с SQL



    На днях мы выпустили в широкое обращение свой новый инструмент, Airpal. Это веб-приложение, предназначенное для работы с базами данных, которое призвано дополнить PrestoDB от Facebook при анализе информации. И в этом посте мы бы хотели рассказать о его возможностях и особенностях.

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

    Люди, регулярно занимающиеся формированием выборок и обработкой данных из SQL, знают, что эти процессы не всегда удобно организованы. Нужно запоминать, как были сформулированы запросы, копировать и вставлять их в командную строку, запускать многочисленные терминалы, — всё это замедляет работу и не особо приятно. Кроме того, если в коллективе есть новички, то для них кривая обучения может быть довольно крутой. И мы решили, что все эти досадные проблемы можно было бы решить с помощью хорошего UI.

    Airpal работает в связке с PrestoDB, открытым движком SQL-запросов для работы с большими данными. При этом работать с Presto в этом случае могут не только программисты и специалисты по обработке данных, но и сотрудники других профессий. В ряде случаев такой тандем может служить недорогой альтернативой хранилищу данных. Кроме того, Airpal может выступать в роли более дружелюбного пользователю интерфейса для доступа к большим массивам данных, хранимых в кластере Hadoop.

    Airpal позволил нам сделать доступ к большим данным гораздо более демократичным. Приложение используется внутри нашей компании уже около года, и порядка трети всех сотрудников работают с базами данных посредством этого инструмента. Сколько бронирований было совершено за день? Сколько людей за истёкшие сутки переночевали в местах, найденных через наш сервис? Сколько предложений имеется в конкретном регионе, городе, районе? Сколько пользователей говорят по-немецки или по-испански? На сегодняшний день в виде Hive-таблиц в HDFS у нас хранится около 1,5 петабайт данных — 25 миллионов бронирований в 34 000 городов по всему миру. И лишь со сравнительно небольшим количеством важных, ключевых таблиц мы можем использовать Presto в качестве обработчика запросов по умолчанию.

    Ранее для работы с БД мы использовали веб-сервис Redshift. Но по ряду причин он нас не удовлетворял: требовал установки наборе ETL-инструментов (extract, transform, load) для предварительной подготовки данных, имел ограничение на количество одновременно исполняемых запросов. Кроме того, у Redshift очень малоинформативные сообщения об ошибках, что серьёзно затруднял дебаггинг.

    С точки зрения произвольных запросов и итерирования в ходе анализа, Presto гораздо «умнее» и быстрее традиционных MapReduce-инструментов. Однако для нас самым полезным следствием внедрения Presto стало отсутствие необходимости усложнять процесс «интерактивного» формирования запросов. Поскольку мы работаем со своим собственным Hive-хранилищем, то можем позволить себе иметь «единственный источник достоверных данных», без тяжеловесных копий на отдельном уровне хранилища. А тот факт, что нам не нужно менять формат RC, в котором хранятся данные, сделал Presto идеальным выбором для нашей инфраструктуры.



    Ключевые особенности Airpal:

    • Гибкий контроль доступа пользователей.
    • Возможность поиска по таблицам и самих таблиц.
    • Просмотр метаданных, разделов, схем и образцов строк.
    • Удобный редактор создания запросов.
    • Просмотр статуса выполнения запросов.
    • Сохранение истории всех запросов с возможностью поиска по ней.
    • Доступ к интерфейсу из обычного веб-браузера.
    • Возврат результатов в виде CSV-файлов.
    • Сохранение запросов для будущего повторного использования.
    • Использование Dropwizard для обеспечения сервиса REST в Java.
    • Для доставки сообщений от сервера клиенту используется SSE (Server Sent Events).
    • Фронтэнд на JavaScript используется react.js.

    Стараясь сохранить идеологию Presto, мы постарались упростить процедуру установки Airpal, так что его можно протестировать без безо всяких трудностей. Подробную информацию можно найти на GitHub.
    • +16
    • 9,6k
    • 4
    Airbnb 39,14
    Компания
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 4
    • +1
      Единственная проблема — просмотр результата запроса. CSV это конечно хорошо, но постоянно выгружать и где-то смотреть (аналитики скорее всего будет смотреть в excel) не очень удобно.

      Можно конечно делать CREATE TABLE… AS… и потом просматривать в Data Preview, но если данных много, не удобно все равно :) Ну и захламляется hive кучей небольших табличек.

      А так, разворачивается быстро, это удобно да.
      • –3
        Эх, найти бы аналог такого веб-интерфейса под MS SQL…
        • 0
          а для MSSQL есть драйвер под JDBC? если да, то прикрутить к presto и использовать в airpal проблемы нет. правда не могу ручаться за скорость работы
          • 0
            Есть подобный web-интерфейс на python'е — pypi.python.org/pypi/damvitool/0.1.2 Работает через SQLAlchemy, поэтому может цепляться ко всему, к чему цепляется SQLAlchemy. Есть также github.com/jeffknupp/sandman, тоже работает через SQLAlchemy, но уже за деньги.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое
          Интересные публикации