Definition Was ist Presto?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Presto eignet sich für SQL-Abfragen großer Datenmengen mit niedrigen Latenzzeiten. Es handelt sich um eine verteilte SQL-Abfrage-Engine auf Open-Source-Basis, die ursprünglich von Facebook entwickelt wurde. Die Engine arbeitet mit unterschiedlichen Datenquellen wie dem Hadoop Distributed File System, MySQL, Amazon S3, PostgreSQL, Apache Cassandra, Microsoft SQL Server, MongoDB und vielen anderen zusammen.

Firmen zum Thema

(Bild: © aga7ta - stock.adobe.com)

Presto ist der Name einer ursprünglich von Facebook entwickelten SQL-Abfrage-Engine, die sich für verteilte Datenabfragen und interaktive Analysen im Big-Data-Umfeld einsetzen lässt. Sie arbeitet parallelisiert und bietet niedrige Latenzzeiten. Ziel der 2012 entwickelten Engine war die Bereitstellung eines interaktiven, performanten SQL-Abfragesystems für Daten aus dem sich im Petabyte-Bereich bewegenden und auf Basis von Apache Hadoop arbeitenden Facebook-Data-Warehouse. 2013 gab Facebook Presto als Open Source Software unter Apache-Lizenz frei. Sie ist heute für die Allgemeinheit kostenlos über GitHub verfügbar und wird mit Unterstützung der Non-Profit-Organisation Presto Foundation unter der Schirmherrschaft der Linux Foundation weiterentwickelt.

Die Abfrage-Engine arbeitet mit unterschiedlichen Datenquellen wie dem Hadoop Distributed File System, MySQL, Amazon S3, PostgreSQL, Apache Cassandra, Apache Hive, Microsoft SQL Server, MongoDB und vielen anderen zusammen. Für Abfragen kommt die für relationale Datenbankmanagementsysteme übliche SQL-Abfragesprache zum Einsatz. Eine einzige Abfrage kann Daten aus verschiedenen Datenquellen und Architekturen (Cloud und On-Premises) extrahieren.

Wichtig zu wissen ist, dass Presto kein Ersatz für eine Datenbank ist. Die Engine speichert selbst keine Daten, sondern fragt diese aus den Datenquellen ab. Neben Facebook setzen zahlreiche Unternehmen weltweit die Abfrage-Engine ein. Dazu zählen Unternehmen wie Airbnb, Netflix, Dropbox, Nasdaq, Atlassian und viele weitere. Die aktuelle Version der Software ist die Version 0.249 (Stand März 2021).

Die Architektur und Funktionsweise von Presto

Die Architektur von Presto ist an klassische DBMS-Architekturen mit Massively Parallel Processing (MPP) und verteiltem Computing angelehnt. Wichtige Komponenten der Architektur sind Coordinator mit Parser, Planner und Scheduler, Worker, Connector und Client. Der Client sendet SQL-Befehle an den Coordinator und erhält die Ergebnisse über den Worker zurück. Der Coordinator hat mehrere Aufgaben. Er prüft die vom Client erhaltenen SQL-Befehle, zerlegt sie in logische Einheiten, plant deren Ausführung, übergibt sie dem Scheduler zur weiteren Ausführung und überwacht die Ausführung der Befehle.

Der Scheduler des Coordinators reicht die SQL-Befehle an die Worker, die den benötigten Daten am nächsten sind, weiter. Die Worker führen die tatsächlichen Abfragen aus den verschiedenen Datenquellen aus und liefern die Ergebnisse an den Client zurück. Die Verbindungen zu den verschiedenen Datenquellen sind über Connector realisiert. Ein Connector ist in der Lage, dem Worker die Daten der Abfragen aus den verschiedenen Datenquellen zu liefern. Für den Coordinator stellt der Connector die Metadaten zur Planung der Abfragen bereit.

Presto unterstützt Standard-ANSI-SQL und ermöglicht das Erstellen komplexer Abfragen. Daten mehrerer Datenquellen lassen sich mit einer einzigen Abfrage kombinieren. Die Abfrageverarbeitung findet im Arbeitsspeicher statt und wird über Netzwerk-Ein- und -Ausgaben abgewickelt. Geschrieben ist Presto in der Programmiersprache Java.

Typische Einsatzmöglichkeiten von Presto

Der Einsatz von Presto ist überall dort sinnvoll, wo Daten aus großen Datenbanken und unterschiedlichen Quellen interaktiv, mit hoher Performance und niedrigen Latenzzeiten per SQL-Befehle abgefragt werden sollen. Die Abfrage-Engine ist prädestiniert für das Big-Data- und Business-Intelligence-Umfeld. Typische Anwendungsbereiche sind Datenabfragen aus Data Warehouses, schnelle BI-Datenabfragen und -Analysen sowie die Datenaggregation und Datenvorbereitung. Presto lässt sich auch performant zur Abfrage großer denormalisierter Datensätze verwenden. Ebenfalls geeignet ist Presto für Unternehmen, die ihre Daten in verschiedenen heterogenen Datenbanksystemen speichern und sie zu Verarbeitung oder Analyse zusammenführen müssen.

Vorteile durch den Einsatz der SQL-Abfrage-Engine Presto

Der Einsatz der Abfrage-Engine Presto bietet zahlreiche Vorteile wie:

  • Nutzung von Standard-ANSI-SQL als Abfragesprache (kein Erlernen neuer Abfragesprachen notwendig)
  • hohe Performance und niedrige Latenzzeiten der Abfragen
  • ideal für interaktive Abfragen geeignet
  • arbeitet mit vielen verschiedenen Datenquellen und relationalen Datenbankmanagementsystemen wie dem Hadoop Distributed File System, MySQL, Amazon S3, PostgreSQL, Apache Cassandra, Apache Hive, Microsoft SQL Server, MongoDB und anderen zusammen
  • zahlreiche Konnektoren zur Abfrage von Daten und Metadaten verfügbar oder selbst konfigurierbar
  • für die Nutzung in der Cloud und On-Premises geeignet
  • Unterstützung durch zahlreiche Anbieter von Cloud Computing
  • kostenlos als Open-Source-Software für alle verfügbar
  • große Community im Netz
  • einfache und übersichtliche Architektur
  • skaliert problemlos bis in den Petabyte-Bereich
  • Erstellung benutzerdefinierter Funktionen möglich
  • einfach zu installieren, zu betreiben und zu debuggen
  • geeignet für plattformübergreifende Abfrage- und Analysefunktionen
  • kontinuierliche Weiterentwicklung der Software

(ID:47307165)

Über den Autor