Was ist Presto Hadoop?

Presto ist eine verteilte Open-Source-SQL-Abfrage-Engine, die mit einer Vielzahl von Datenquellen zusammenarbeitet, von Hadoop Distributed File System (HDFS) über traditionelle relationale Datenbanken bis hin zu NoSQL-Datenquellen wie Cassandra. Presto ist besonders gut dafür geeignet, mehrere gleichzeitige interaktive Abfragen an eine Datenquelle durchzuführen.

Presto wurde im Herbst 2012 von Facebook als Ersatz für Hive entwickelt. Die Software wird von Facebook noch immer verwendet, um seinen 300 Petabyte-Hadoop-Cluster mit Daten von den mehr als 1 Milliarden Benutzern des Unternehmens abzufragen. Weitere bekannte Unternehmen sind Netflix, Dropbox und Airbnb. Daher steht auch eine starke Entwickler-Community hinter dem Projekt.

Teradata trägt mit einem eigenen Team aus 20 Entwicklern zu dem Open-Source-Code von Presto bei. Das Unternehmen unterstützt ein mehrjähriges Engagement zur Förderung der Einführung von Presto im Betrieb. Die Dokumentation ist jedoch begrenzt und eignet sich am besten für Entwickler. Daher benötigen Sie Engineering-Ressourcen zur Einrichtung und Wartung Ihrer Presto-Konfiguration.

Warum Presto?

Interaktive Abfragen

Die Entwickler von Presto konzentrierten sich darauf, ihren Nutzern interaktive Abfragen zur Verfügung zu stellen, wodurch die Zeit bis zur Antwort einer Abfrage verkürzt werden konnte. Daher ist Presto eine sehr gute Wahl als Backend für Business-Intelligence-Tools wie Looker, da die Engine eine sehr schnelle Antwort von Abfragen ermöglicht.

Integrationen

Presto hat viele Integrationen mit Datenquellen von Drittanbietern und kann sich unter anderem mit Kafka, Redis, H3, S3, Hadoop, NoSQL, MySQL und Postgres verbinden.

Standard-SQL

Presto verwendet Standard-ANSI-SQL zur Abfrage verschiedener Datenquellen, während andere SQL Engines wie Hive nicht unter den ANSI-Standard fallen (Hive verwendet eine ähnliche Abfragesprache wie SQL mit dem Namen HiveQL).

Wofür ist Presto besonders gut geeignet?

Interaktive, unmittelbare Abfragen große Datensätze

Bei denormalisierten Datensätzen, die nur wenige Joins erfordern, erreicht Presto beinahe die Geschwindigkeit interaktiver Abfragen. So beantwortet Presto Abfragen in der Größenordnung von Sekunden bis Minuten statt Minuten bis Stunden. Dies ist hauptsächlich auf die einzigartige Architektur von Presto zurückzuführen, die vollständig im Speicher ausgeführt wird (im Gegensatz zu anderen SQL-Engines, die MapReduce verwenden und Zwischenschritte auf die Festplatte schreiben).

Unternehmen mit disparaten Datenquellen

Für Unternehmen, die nicht alle ihre Daten in einem zentralen Speicher konsolidieren können, stellen die Funktionen für die Datenzusammenführung von Presto eine einheitliche Abfrageschicht bereit, mit der Sie Ihre Daten aus verschiedenen Datenquellen zusammenführen können.

Unternehmen mit Sternschemata

Aufgrund der In-Memory-Architektur von Presto können extrem große Abfragen über Faktentabellen die Rechenleistung mitunter überfordern. Dies macht Presto zu einer guten Wahl für kostengünstige Joins innerhalb eines Sternschemas zwischen einer Faktentabelle und einer Dimensionstabelle.

Preisliche Erwägungen

Presto ist Open-Source und die Software kann kostenlos heruntergeladen werden. Es gilt jedoch zu beachten, dass die Gesamtbetriebskosten für Presto hoch sind, da technische Ressourcen für die Bereitstellung und Wartung der Software sowie für die Verwaltung der Hardware bei einem Einsatz On-Premise erforderlich sind. Die Verwaltung und Bereitstellung der Server hat variable Kosten.

Presto-Architektur

Die Architektur von Presto ähnelt eher den traditionellen analytischen MPP-Datenbankarchitekturen als anderen SQL-Engines wie Hive, da alle Berechnungen von Presto im Speicher und ohne Verwendung von MapReduce zur Berechnung ausgeführt werden. Presto führt also – anstatt wie MapReduce Zwischenoperationen auf die Festplatte zu schreiben – die Rechenschritte vollständig im Speicher aus und leitet die Zwischenergebnisse über das Netzwerk weiter.​​​​​​ Diese Architektur erhöht die Abfragegeschwindigkeit drastisch und beschränkt gleichzeitig in gewisser Weise den Anfragedurchsatz.

Ausführung einer Abfrage in Presto

Bei einer SQL-Abfrage in Presto wird diese an den Koordinator​​​​​​​ geschickt. Der Koordinator​​​​​​​ ist dafür zuständig, die Abfrage in logische Schritte zu zerlegen und einen optimierten Ausführungsplan für sie zu erstellen. Sobald der Koordinator einen Ausführungsplan erstellt hat, verteilt er Anweisungen an die Worker-Knoten​​​​​​​, die dem Ort mit den physischen Daten am nächsten liegen. Diese streamen dann die Daten vom physischen Speicher in den Arbeitsspeicher, wo sie dann über das Netzwerk weitergeleitet und an den Client zurückgegeben werden.

Datentypen

Presto ist eine verteilte SQL-Abfrage-Engine zur Abfrage großer Datensätze, die über eine oder mehrere heterogene Datenquellen verteilt sind. Presto selbst speichert keine Daten.

Zeilenbereich (Menge)

Presto ist eine SQL-Engine im Petabyte-Bereich, abhängig von den verbundenen Datenspeichern. Wenn Sie beispielsweise einen Hadoop-Cluster verwenden, ist die speicherbare Datenmenge wesentlich größer als bei einer Verbindung zu einer Postgres-Datenbank. Auf der anderen Seite kann Presto, da es ANSI SQL schreibt, viele Datenquellen gleichzeitig nutzen. Infolgedessen kann die von Presto verarbeitete Datenmenge, sehr groß sein.

Implementierung und Nutzung von Presto

Implementierung von Presto

Presto kann kostenlos von Github oder Teradata heruntergeladen werden.

Nach dem Download stellt Presto einen Leitfaden für die Bereitstellung der Software auf Ihrem Server zur Verfügung.

Prozess für neue Daten

Da es sich bei Presto um eine SQL-Engine und nicht um eine Datenbank handelt, speichert Presto selbst gar keine Daten. Daher muss Presto zum Hinzufügen neuer Daten lediglich auf eine vorhandene Datenquelle hingewiesen werden. Dafür muss entweder eine Verbindung von Presto zu dieser bestehenden Datenquelle hergestellt werden, oder die Daten müssen in eine Datenquelle importiert werden, die Presto abfragen kann.

Entdecken Sie Ihre Liebe zur Analytik.

Business Intelligence, Big-Data-Analyse oder eine 360°-Ansicht Ihrer Kunden.
Was auch immer Sie benötigen, Looker steht Ihnen zur Seite. Sprechen Sie einfach mit unseren Datenexperten.

Demo anfordern