Presto oder Presto-Datenbank (PrestoDB) ist eine verteilte Open-Source-SQL-Query-Engine, die große Datensätze aus verschiedenen Datenquellen abfragen kann, sodass Unternehmen Datenprobleme im großen Maßstab lösen können.
Presto bietet Unternehmen jeder Größe eine schnelle und effiziente Möglichkeit zur Analyse von Big Data aus verschiedenen Quellen, einschließlich lokaler Systeme und der Cloud. Es hilft Unternehmen außerdem dabei, Petabytes an Daten mithilfe ihrer aktuellen SQL-Funktionen abzufragen, ohne eine neue Sprache erlernen zu müssen.
Heute wird Presto am häufigsten für die Ausführung von Abfragen auf Hadoop und anderen gängigen Datenspeicheranbietern verwendet und ermöglicht den Benutzern die Verwaltung mehrerer Abfragesprachen und Schnittstellen zu Datenbanken und Speichern.
Im digitalen Zeitalter entwickelt sich Big Data Analytics schnell zu einer Kernkompetenz für Unternehmen, unabhängig von Größe oder Branche. Die Fähigkeit, große Datenmengen über Geschäftsprozesse, Kundenpräferenzen und Markttrends zu sammeln, zu speichern und zu analysieren, ist äußerst wertvoll. Presto kann Daten unabhängig von ihrem Speicherort und ohne vorheriges Verschieben in ein strukturierteres System (beispielsweise ein Data Warehouse oder einen Data Lake) analysieren – das macht Presto so bedeutsam.
Presto hat sich als beliebtes Tool für Data Scientists und Entwicklungsteams etabliert, die mit mehreren Abfragesprachen, isolierten Datenbanken und verschiedenen Speichertypen arbeiten. Durch die leistungsstarken Funktionen können mithilfe einer einfachen ANSI-SQL-Schnittstelle große Datenmengen in Echtzeit abgefragt werden, ganz egal, wo die Daten gespeichert sind. Prestos Geschwindigkeit und Leistung beim Abfragen großer Datenmengen haben es zu einem unverzichtbaren Tool für einige der größten Unternehmen der Welt gemacht, darunter Facebook, Airbnb, Netflix, Microsoft, Apple (iOS) und AWS (Athena und Amazon s3).
Die Presto-Architektur ist einzigartig, da Daten unabhängig von ihrem Speicherort abgefragt werden können. Dadurch ist sie skalierbarer und effizienter als andere ähnliche Lösungen. Mit Presto-Abfragen können Daten genutzt werden, ohne sie zuvor an einen anderen Speicherort verschieben zu müssen. Dies ist ein wichtiger Aspekt, da die Menge an zu speichernden und zu analysierenden Daten ständig zunimmt.
Presto wurde entwickelt, damit Data Scientists und Entwicklungsteams große Datenmengen unabhängig von der Quelle oder Art des Speichers interaktiv abfragen können. Presto selbst speichert keine Daten, sondern kommuniziert bei seinen Abfragen mit einer separaten Datenbank. Dadurch ist es flexibler als die Konkurrenz und kann Abfragen gemäß den sich ändernden Anforderungen des Unternehmens schnell erhöhen oder zurückschrauben. Laut einem Whitepaper von IBM kann Presto, optimiert für Business Intelligence (BI)-Workloads, die Preise für Data Warehouses optimieren und die Kosten um bis zu 50 Prozent senken.
Hier sind einige der wichtigsten Vorteile für die Verwendung eines Presto-Workflows:
Kostengünstiger: Da Data Warehouses immer größer werden und immer mehr Benutzer Abfragen durchführen, können die Kosten in kurzer Zeit rasant steigen. Presto ist jedoch für große Mengen kleiner Abfragen optimiert. Es lässt sich also jede beliebige Datenmenge unkompliziert abfragen, ohne die Kosten in die Höhe zu treiben. Da Presto eine Open-Source-Lösung ist, ist die Bereitstellung gebührenfrei, was bei der Verarbeitung großer Datenmengen erhebliche Einsparungen bedeuten kann.
Erhöhte Skalierbarkeit:Es kommt häufig vor, dass Ingenieure mehrere Engines und Sprachen auf einem einzigen Data-Lake-Speichersystem einrichten, was zu einem späteren Zeitpunkt eine neue Plattform erforderlich machen und die Skalierbarkeit ihrer Lösung einschränken kann. Bei Presto werden alle Abfragen über die universelle ANSI-SQL-Sprache und -Schnittstelle durchgeführt, so dass keine neue Plattform nötig ist. Außerdem funktioniert Presto mit kleinen Datenmengen ebenso gut wie mit großen und lässt sich leicht von einem oder zwei Benutzern auf Tausende aufstocken. Presto stellt mehrere Verarbeitungs-Engines mit eigenen SQL-Dialekten und APIs bereit. Das macht es zum idealen Tool zur Skalierung von Workloads, die für Teams aus Ingenieuren und Data Scientists zu komplex und zeitaufwändig sein könnten.
Leistungsstärker: Viele Abfrage-Engines, die SQL auf Hadoop ausführen, können ihre Verarbeitungsleistung nur eingeschränkt nutzen, weil sie ihre Ergebnisse auf die Festplatte schreiben. Im Gegensatz dazu ermöglicht das dezentrale In-Memory-Modell von Presto die gleichzeitige Ausführung großer Mengen interaktiver Abfragen an großen Datensätzen. Nach einem klassischen MPP-Aufbau (Massive Parallel Processing) terminiert Presto möglichst viele Abfragen auf einem einzigen Arbeitsknoten und verwendet In-Memory-Streaming-Shuffle, um die Verarbeitungsgeschwindigkeit noch weiter zu erhöhen. Durch die speicherinterne Ausführung von Tasks wird das Schreiben und Lesen von der Festplatte zwischen den einzelnen Phasen überflüssig und die einzelnen Abfragen werden schneller. Daher hat Presto eine geringere Latenzzeit als die Konkurrenz.
Flexibler: Presto arbeitet bei allen seinen Datenquellen, einschließlich Cassandra, Kafka, MySQL, Hadoop Distributed File System (HDFS), PostgreSQL und andere, mit einem Plug-and-Play-Modell. Das beschleunigt und vereinfacht die Abfragen im Vergleich zu anderen Tools ohne diese Funktionalität. Außerdem ist Presto durch seine flexible Architektur nicht auf einen einzelnen Anbieter beschränkt, sondern kann auf den meisten Hadoop-Distributionen ausgeführt werden – weshalb es eines der portabelsten Tools ist.
Presto ist zwar nicht die einzige SQL-on-Hadoop-Option für Entwicklungsteams und Data Scientists, aber durch seine einzigartige Architektur, die die Abfragefunktionalität von der Datenspeicherung trennt, eines der flexibelsten. Im Gegensatz zu anderen Tools isoliert Presto die Abfrage-Engine von der Datenspeicherung und kommuniziert mit ihnen über Konnektoren. Diese zusätzliche Funktionalität bietet bei der Erstellung von Lösungen mit Presto mehr Flexibilität als andere Tools.
Presto verwendet ein MPP-Datenbank-Verwaltungssystem mit einem Koordinatorknoten, der mit anderen Knoten zusammenarbeitet. Ein Presto-Ökosystem besteht aus drei Arten von Servern: einem Koordinator-Server, einem Worker-Server und einem Ressourcenmanager-Server.
Koordinator: Gilt als „Gehirn“ einer Presto-Installation. Er ist für einige besonders wichtige Aufgaben zuständig, darunter das Parsen von Anweisungen, die Planung von Abfragen und die Verwaltung von Presto-Arbeitsknoten. Letztendlich ist es seine Aufgabe, Daten von den Worker-Knoten abzurufen und die Ergebnisse an den Client zu liefern.
Worker: Der Worker ist dafür verantwortlich, Daten von den Workerknoten zu sammeln und den reibungslosen Datenaustausch zwischen ihm und den Konnektoren sicherzustellen.
Resource Manager: Der Resource Manager sammelt Daten von allen Koordinator- und Worker-Knoten und erstellt eine globale Ansicht oder ein „Presto-Cluster“.
Wenn der SQL-Server des Presto-Koordinators eine SQL-Abfrage erhält, wird zuerst mit einer benutzerdefinierten Abfrage ein dezentraler Plan für die anderen Knoten geparst, geplant und terminiert. Über die Presto-REST-API werden Abfragen zur Ausführung auf einem Server eingereicht und Ergebnisse für den Client abgerufen. Presto unterstützt Standard-ANSI-SQL-Aussagen, einschließlich Joins, Abfragen, Unterabfragen und Aggregationen. Nach dem Kompilieren der Abfrage parst Presto die Anfrage in verschiedene Phasen zwischen den Worker-Knoten.
Da Presto auf dem Konzept der Datenabstraktion basiert, kann es auf jede Datenquelle erweitert werden und ohne großen Aufwand auch Data Lakes, Data Warehouses und relationale Datenbanken abfragen. Datenabstraktion bedeutet, dass die Darstellung der Daten von ihrem physischen Speicher getrennt wird. Dies erfolgt beim Programmieren, um Daten effizienter zu speichern und zu bearbeiten. Durch die Abstraktion kann sich die Abfrage-Engine ausschließlich auf die für ihre Abfrage relevanten Aspekte der Daten konzentrieren. Mit der Datenabstraktion werden die Daten dort abgefragt, wo sie gespeichert sind, müssen also nicht erst in ein anderes Analysesystem verschoben werden.
Ursprünglich wurde Presto bei Facebook entwickelt, um interaktive Abfragen in einem riesigen Hadoop-Data-Warehouse unter Apache auszuführen. Für die Entwickler von Presto war es immer eine Open-Source-Software. Es sollte kostenfrei kommerziell nutzbar sein, damit jeder damit Daten analysieren und verwalten konnte.Im Jahr 2013 wurde es als Open-Source-Version auf GitHub bereitgestellt und konnte unter der Apache-Softwarelizenz heruntergeladen werden. Im Jahr 2019 verließen drei der ursprünglichen Mitglieder des Presto-Entwicklungsteams das Projekt und gründeten einen „Fork“ von Presto, bekannt als Presto Software Foundation oder auch „prestosql“.
Die Linux Foundation und andere Open-Source-Communitys bieten Webinare und Schulungen zu Presto in Englisch und anderen Sprachen für Personen an, die eine Zertifizierung anstreben. Diese Foren sind auch ein guter Ort für alle Neuigkeiten rund um Presto.
Mit Presto können Unternehmen große Datenspeicher und NoSQL-Datenbanken schnell und effizient für eine Vielzahl von Geschäftszwecken abfragen. Hier sind einige der häufigsten Anwendungsfälle:
Presto ermöglicht die schnelle Untersuchung von Daten und eine unkomplizierte Berichterstellung für verschiedenste Geschäftszwecke. Mit beliebten Presto-Konnektoren wie Hive, MongoDB oder Cassandra können Benutzer Daten von Interesse abfragen und erhalten in Sekundenschnelle ein Ergebnis. Dank seiner Schnelligkeit und Flexibilität können Datensätze mit Presto abgeglichen und weiter untersucht werden, unabhängig davon, wo sie gespeichert sind.
Hier sind einige der am häufigsten verwendeten Daten-Repositorys, zu denen Presto eine Verbindung herstellen kann:
Laut einer Leistungsbewertung durch RedHat von 2021 steigt der Druck auf cloudnative Speicher, weil es immer mehr Hybrid-Cloud-Umgebungen gibt. Presto ist hier als „schnellste heute verfügbare dezentrale Abfrage-Engine“ ideal geeignet. 1 Die Verlagerung von Workloads aus einem lokalen System in eine Cloud- oder Hybrid-Cloud-Infrastruktur bietet viele Vorteile, darunter höhere Leistung und Skalierbarkeit. Die Architektur von Presto macht es zu einer guten Wahl für solche Bereitstellungen, da es in wenigen Minuten ohne zusätzliche Installation, Konfiguration oder Feineinstellung ausführbar ist.
Presto ermöglicht eine hoch effiziente Datenaufbereitung sowie Erstellung und Extraktion von Merkmalen, um Daten für maschinelles Lernen (ML) vorzubereiten. Aufgrund seiner zahlreichen Konnektoren, der SQL-Engine und der Abfragefunktionen ist es ideal, wenn schnell und einfach auf große Datenmengen zugegriffen werden muss. Darüber hinaus verfügt Presto über speziell für ML-Funktionen wie Aggregation entwickelte Tools. Damit können SVM-Klassifikatoren und -Regressoren (Support Vector Machine) trainiert werden, um Probleme des überwachten Lernens zu beheben.
Mit Presto können Daten aus mehreren Quellen abgefragt werden. Es generiert daraus einzelne gut zugängliche Berichte oder Dashboards für BI-Zwecke. Presto ist so einfach und benutzerfreundlich, dass Abfragen oder die Berichterstellung auch ohne Hilfe von Fachkräften möglich sind.
Presto ermöglicht es Analysten, Abfragen sowohl für strukturierte als auch für unstrukturierte Daten direkt in einem Data Lake durchzuführen, ohne einen Datenkonvertierungsprozess durchlaufen zu müssen.
Daten zu erfassen und aufzubereiten kann kostspielig und ineffizient sein. Data Scientists könnten jeden Tag Stunden damit zubringen, Daten zu sammeln und aufzubereiten, bevor sie überhaupt analysierbar sind. Presto automatisiert diesen Prozess schnell und präzise, damit Data Scientists und Entwicklungsteams mehr Zeit für wertschöpfendere Aufgaben haben.
Mit IBM Datenbanklösungen können Sie verschiedene Workload-Anforderungen in der Hybrid Cloud erfüllen.
Erfahren Sie mehr über IBM Db2: eine relationale Datenbank, die hohe Leistung, Skalierbarkeit und Zuverlässigkeit für das Speichern und Verwaltung strukturierter Daten bietet. Die Lösung ist als SaaS in der IBM Cloud oder als Self-Hosting-Option verfügbar.
Erschließen Sie den Wert von Unternehmensdaten mit IBM Consulting und bauen Sie ein erkenntnisorientiertes Unternehmen auf, das Ihnen geschäftliche Vorteile verschafft.
1 External-mode performance characterization for databases and analytics, Red Hat, 18. Januar 2021