Che cos'è Presto (PrestoDB)?
Presto (o PrestoDB) è un motore di query SQL open source distribuito, progettato da zero per query analitiche veloci su dati di qualsiasi dimensione. Supporta sia origini non relazionali, come il File System distribuito Hadoop (HDFS), Amazon S3, Cassandra, MongoDB e HBase, che origini dati relazionali come MySQL, PostgreSQL, Amazon Redshift, Microsoft SQL Server e Teradata.
Presto può interrogare i dati dove sono archiviati, senza doverli spostare in un sistema di analisi separato. L'esecuzione delle query viene effettuata in parallelo su un'architettura basata sulla pura memoria, con la maggior parte dei risultati restituiti in pochi secondi. È impiegato da molte aziende famose come Facebook, Airbnb, Netflix, Atlassian e Nasdaq.
Quale è la storia di Presto?
Presto è nato come progetto per Facebook, con lo scopo di eseguire query analitiche interattive su un data warehouse da 300 PB, costruito con grandi cluster basati su Hadoop/HDFS. Prima di creare Presto, Facebook utilizzava Apache Hive, creato e lanciato nel 2008, per portare la familiarità della sintassi SQL nell'ecosistema Hadoop. Hive ha avuto un impatto significativo sull'ecosistema Hadoop per la semplificazione di lavori Java MapReduce complessi in query simili a SQL, pur essendo in grado di eseguire lavori su vasta scala. Tuttavia, non era ottimizzato per le prestazioni rapide necessarie nelle query interattive.
Nel 2012, il gruppo Facebook Data Infrastructure ha creato Presto, un sistema di query interattivo in grado di funzionare rapidamente su scala petabyte. È stato implementato a livello aziendale nella primavera del 2013. Nel novembre 2013, Facebook ha reso Presto open source con la licenza software Apache e lo ha reso disponibile per il download su Github. Oggi, Presto è diventata una scelta popolare per eseguire query interattive su Hadoop e vanta molti contributi da Facebook e da altre organizzazioni. L'implementazione di Presto presso Facebook viene usata da oltre mille dipendenti, che eseguono più di 30.000 query, elaborando un petabyte di dati al giorno.
Come funziona Presto?
Presto è un sistema distribuito che funziona su Hadoop e utilizza un'architettura simile a un classico sistema di gestione di database di elaborazione parallela elevata (MPP). Ha un nodo coordinatore che funziona in sincronia con più nodi worker. Gli utenti inviano la propria query SQL al coordinatore, il quale utilizza un motore di query ed esecuzione personalizzato per analizzare, pianificare e calendarizzare un piano di query distribuito tra i nodi worker. È progettato per supportare la semantica SQL ANSI standard, comprese query complesse, aggregazioni, join, join esterni left/right, sottoquery, funzioni finestra, conteggi distinti e percentili approssimativi.
Dopo la compilazione della query, Presto elabora la richiesta in più fasi tra i nodi worker. Tutta l'elaborazione è in memoria e convogliata attraverso la rete tra le fasi, per evitare inutili sovraccarichi di I/O. L'aggiunta di più nodi worker consente un maggiore parallelismo e un'elaborazione più rapida.
Per rendere Presto estensibile a qualsiasi origine dati, è stato progettato con l'astrazione dell'archiviazione per semplificare la creazione di connettori collegabili. Per questo motivo, Presto ha molti connettori, tra cui sia origini non relazionali, come File system distribuito Hadoop (HDFS), Amazon S3, Cassandra, MongoDB e HBase, che origini dati relazionali come MySQL, PostgreSQL, Amazon Redshift, Microsoft SQL Server e Teradata. I dati vengono interrogati dove sono archiviati, senza doverli spostare in un sistema di analisi separato.
Quali sono le differenze tra Presto e Hadoop?
Presto è un motore di query SQL distribuito e open source progettato per query veloci e interattive sui dati in HDFS e altri sistemi. A differenza di Hadoop/HDFS, non dispone di un proprio sistema di archiviazione. Pertanto, Presto è complementare a Hadoop, con le organizzazioni che adottano entrambi per risolvere una sfida aziendale più ampia. Presto può essere installato con qualsiasi implementazione di Hadoop ed è incluso nella distribuzione Hadoop Amazon EMR.
Chi usa Presto?
Presto viene usato per la produzione su vasta scala presso molte organizzazioni note, come Facebook, Airbnb, Netflix, Atlassian, Nasdaq e molte altre. L'implementazione di Presto presso Facebook viene usata da oltre mille dipendenti, che eseguono più di 30.000 query, elaborando un petabyte di dati al giorno. In media, Netflix esegue circa 3.500 query al giorno sui suoi cluster Presto. Airbnb ha creato e reso open source Airpal, uno strumento di esecuzione delle query basato sul web che sfrutta Presto. La community più ampia di Presto può essere trovata su questo forum e sulla pagina Presto su Facebook.
Come si implementa Presto nel cloud?
Presto è un carico di lavoro ideale nel cloud, perché il cloud offre prestazioni, scalabilità, affidabilità, disponibilità e un risparmio notevole in termini di dimensionamento. Un cluster Presto può essere avviato in pochi minuti. Non è più necessario preoccuparsi di allocare nodi, impostare cluster, configurare Presto oppure ottimizzare i cluster.
In che modo AWS può permetterti di implementare Presto nel cloud?
Amazon EMR e Amazon Athena sono i luoghi migliori per implementare Presto nel cloud, perché si occupano dell'integrazione e del testing di Presto con la scalabilità, la semplicità e l'economicità di AWS. Con Amazon EMR, è possibile avviare i cluster Presto in pochi minuti senza dover eseguire il provisioning dei nodi, l'installazione dei cluster, la configurazione di Presto o la regolazione dei cluster. EMR consente di eseguire il provisioning di una, centinaia o migliaia di istanze di calcolo in pochi minuti. Amazon Athena ti consente di implementare Presto utilizzando la piattaforma serverless di AWS, senza server, macchine virtuali o cluster da configurare, gestire e ottimizzare. È sufficiente indicare i dati in Amazon S3, definire lo schema e iniziare a eseguire query tramite l'editor di query integrato o gli strumenti di Business Intelligence (BI) esistenti. Athena parallelizza automaticamente le query e ridimensiona dinamicamente le risorse per un'esecuzione rapida delle query. Paghi solo in base alle query che esegui.
Fasi successive su AWS
Ottieni accesso istantaneo al Piano gratuito di AWS.