Airpal: SQL-Webanwendung



    Neulich haben wir unser neues Tool Airpal veröffentlicht. Dies ist eine webbasierte Datenbankanwendung, die die PrestoDB von Facebook bei der Analyse von Informationen ergänzt. Und in diesem Beitrag möchten wir über seine Fähigkeiten und Funktionen sprechen.

    Airpal ist ein Open Source Projekt. Eine Besonderheit der Anwendung ist, dass sie ursprünglich mit Blick auf Benutzer erstellt wurde, die keine technischen Spezialisten sind. Wir wollten ihnen jedoch ein Tool zur Verfügung stellen, mit dem sie vollständig mit Datenarrays arbeiten und gleichzeitig Fachleuten helfen können, die Effektivität der Analyse zu steigern.

    Personen, die regelmäßig Daten aus SQL abtasten und verarbeiten, wissen, dass diese Prozesse nicht immer bequem organisiert sind. Es ist notwendig, sich daran zu erinnern, wie die Anforderungen formuliert wurden, sie zu kopieren und in die Befehlszeile einzufügen, zahlreiche Terminals zu starten - all dies verlangsamt die Arbeit und ist nicht besonders angenehm. Wenn das Team Neulinge hat, kann die Lernkurve für sie außerdem ziemlich steil sein. Und wir haben beschlossen, dass all diese nervigen Probleme mit einer guten Benutzeroberfläche gelöst werden können.

    Airpal arbeitet mit PrestoDB zusammen, eine offene SQL-Abfrage-Engine für die Arbeit mit Big Data. Gleichzeitig können in diesem Fall nicht nur Programmierer und Datenverarbeitungsspezialisten mit Presto zusammenarbeiten, sondern auch Mitarbeiter anderer Berufe. In einigen Fällen kann ein solches Tandem als kostengünstige Alternative zur Datenspeicherung dienen. Darüber hinaus kann Airpal als benutzerfreundliche Oberfläche für den Zugriff auf große Datenmengen fungieren, die in einem Hadoop-Cluster gespeichert sind.

    Mit Airpal konnten wir den Zugang zu Big Data viel demokratischer gestalten. Die Anwendung wird seit ungefähr einem Jahr in unserem Unternehmen verwendet, und ungefähr ein Drittel aller Mitarbeiter arbeitet mit diesem Tool mit Datenbanken. Wie viele Buchungen wurden pro Tag gemacht? Wie viele Menschen haben in der vergangenen Nacht an Orten verbracht, die durch unseren Service gefunden wurden? Wie viele Angebote gibt es in einer bestimmten Region, Stadt oder einem bestimmten Bezirk? Wie viele Benutzer sprechen Deutsch oder Spanisch? Heute speichern wir in Form von Hive-Tabellen in HDFS etwa 1,5 Petabyte Daten - 25 Millionen Buchungen in 34.000 Städten auf der ganzen Welt. Und mit nur einer relativ kleinen Anzahl wichtiger Schlüsseltabellen können wir Presto als Standard-Anforderungshandler verwenden.

    Zuvor haben wir den Redshift- Webdienst verwendet, um mit der Datenbank zu arbeiten . Aus einer Reihe von Gründen hat er uns jedoch nicht zufrieden gestellt: Er benötigte die Installation einer Reihe von ETL-Tools (Extrahieren, Transformieren, Laden) für die vorläufige Datenaufbereitung. Die Anzahl der gleichzeitig ausgeführten Anforderungen war begrenzt. Darüber hinaus hat Redshift nur sehr wenige Fehlermeldungen, was das Debuggen sehr schwierig machte.

    In Bezug auf die Ad-hoc - Abfragen und Iterieren durch die Analyse, Presto viel „intelligenter“ und schneller als herkömmliche MapReduce-Tools. Für uns war die nützlichste Folge der Implementierung von Presto jedoch das Fehlen der Notwendigkeit, den Prozess der „interaktiven“ Abfragegenerierung zu komplizieren. Da wir mit unserem eigenen Hive-Speicher arbeiten, können wir es uns leisten, eine „einzige Quelle zuverlässiger Daten“ ohne schwere Kopien auf einer separaten Speicherebene zu haben. Und die Tatsache, dass wir das RC-Format, in dem die Daten gespeichert sind, nicht ändern müssen, machte Presto zur perfekten Wahl für unsere Infrastruktur. Hauptmerkmale von Airpal:





    • Flexible Benutzerzugriffskontrolle.
    • Möglichkeit, die Tabellen und die Tabellen selbst zu durchsuchen.
    • Zeigen Sie Metadaten, Abschnitte, Muster und Beispielzeichenfolgen an.
    • Praktischer Editor zum Erstellen von Abfragen.
    • Status der Abfrageausführung anzeigen.
    • Speichern des Verlaufs aller Anfragen mit der Möglichkeit, danach zu suchen.
    • Zugriff auf die Benutzeroberfläche über einen normalen Webbrowser.
    • Geben Sie die Ergebnisse als CSV-Dateien zurück.
    • Speichern von Abfragen zur zukünftigen Wiederverwendung.
    • Verwenden von Dropwizard zum Bereitstellen eines REST-Service in Java.
    • Um Nachrichten vom Server an den Client zu übermitteln, wird SSE (Server Sent Events) verwendet.
    • Das JavaScript-Frontend wird von react.js verwendet.

    Um die Presto-Ideologie zu bewahren, haben wir versucht, die Installation von Airpal so zu vereinfachen, dass sie problemlos getestet werden kann. Details finden Sie auf GitHub .

    Jetzt auch beliebt: