Nicht nur für Hadoop
Presto ist erweiterbar, denn bei Facebook liegen nicht alle Daten in Hadoop. So werden auch HBase und einige proprietäre Systeme verwendet, beispielsweise für das Backend des Facebook News Feeds. Daher wurde Presto mit einer einfachen Storage-Abstraktion ausgestattet, so dass sich die SQL-Querys leicht mit unterschiedlichen Datenquellen abwickeln lassen. Dabei kommen Connectors genannte Storage-Plugins zum Einsatz, die nur eine Schnittstelle zum Lesen der Metadaten, den Speicherort der Daten und den Zugriff auf die Daten selbst bereitstellen müssen.
Derzeit stehen Connectors für HBase, Scribe und einige andere Facebook-eigene Systeme zur Verfügung.
Die Entwicklung von Presto begann im Herbst 2012, das erste Produktionssystem mit der Software lief Anfang 2013. Im Frühjahr wurde Presto unternehmensweit ausgerollt und hat sich laut Facebook zu einem der wichtigsten interaktiven Systeme für das eigene Data-Warehouse entwickelt. Es kommt in verschiedenen Regionen zum Einsatz, läuft mit 1.000 Nodes in einem Cluster und wird von mehr als 1.000 Mitarbeitern genutzt, die täglich mehr als 30.000 Querys damit abwickeln und dabei mehr als 1 Petabyte an Daten verarbeiten.
In Sachen CPU-Effizienz und Latenz ist Presto laut Facebook zehnmal so schnell wie das Gespann aus Hive und Mapreduce. Es unterstützt eine große Menge von Ansi SQL, einschließlich Joins, left/right Outer Joins, Subqueries und häufig genutzter Aggregator-Funktionen wie Distinct Count und Approximate Percentiles. Die größten Einschränkungen bestehen derzeit bei den Größenlimits der Join-Tabellen und der Kardinalität der Unique Keys sowie Gruppen. Zudem kann das System noch keine Daten in die Tabellen zurückschreiben.
Facebook arbeitet aber sowohl an neuen Funktionen als auch an Geschwindigkeitssteigerungen für Presto. So sollen die Limits für Joins und Aggregationen in den kommenden Monaten beseitigt und die Möglichkeit, Ergebnisse in die Tabellen zu schreiben, geschaffen werden. Zudem arbeiten die Facebook-Entwickler an einem Query-Beschleuniger: einem neuen Datenformat, das für die Query-Verarbeitung optimiert ist und unnötige Umwandlungen umgehen soll. Das soll es dann ermöglichen, Untermengen von Daten zu cachen und diese zur Beschleunigung zu nutzen. Auch an einem schnelleren HBase-Connector wird gearbeitet.
Presto ist ab sofort Open Source
Facebook hat Presto erstmals im Juni 2013 auf der Konferenz Analytics @ Webscale vorgestellt. Da sich viele andere Unternehmen für Presto interessierten, hat Facebook in den vergangenen Monaten begonnen, den Presto-Code und fertige Binarys an eine kleine Zahl an Unternehmen zu verteilen, die Presto auf eigenen Servern getestet haben.
Ab sofort steht Presto als Open Source unter prestodb.io allen zur Verfügung. Der Quellcode ist unter github.com/facebook/presto zu finden.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Presto: Wie Facebook 300 Petabyte in Echtzeit analysiert |
- 1
- 2
Übrigens http://en.wikipedia.org/wiki/Profile-guided_optimization Java ist schnell...
Man muss ja die ganzen Researcher und Admins langsam umstellen, die kriegen ja nen Schock...