- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

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

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

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

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

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

Стараясь сохранить идеологию Presto, мы постарались упростить процедуру установки Airpal, так что его можно протестировать без безо всяких трудностей. Подробную информацию можно найти на GitHub [7].

Автор: AirbnbHabr

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/sql/85546

Ссылки в тексте:

[1] открытый : https://github.com/Airbnb/airpal

[2] PrestoDB: https://prestodb.io/

[3] HDFS : https://ru.wikipedia.org/wiki/Hadoop#HDFS

[4] Redshift: http://aws.amazon.com/redshift/

[5] MapReduce: https://ru.wikipedia.org/wiki/MapReduce

[6] Dropwizard : http://dropwizard.io/

[7] GitHub: https://github.com/airbnb/airpal

[8] Источник: http://habrahabr.ru/post/252859/