Spark SQL vs Presto - Scopri il 7 confronto utile

Sommario:

Anonim

Differenze tra Spark SQL e Presto

Presto in termini semplici è "SQL Query Engine", inizialmente sviluppato per Apache Hadoop. È un motore di query SQL distribuito open source progettato per l'esecuzione di query analitiche interattive su set di dati di tutte le dimensioni.

Spark SQL è un motore di calcolo distribuito in memoria con un livello SQL in cima a set di dati strutturati e semi-strutturati. Dalla sua elaborazione in memoria, l'elaborazione sarà veloce in Spark SQL.

Confronto testa a testa tra Spark SQL vs Presto (infografica)

Di seguito sono riportati i primi 7 confronti tra Spark SQL e Presto

Differenze chiave tra Spark SQL e Presto

Di seguito è riportato l'elenco, sulla differenza chiave tra Presto e Spark SQL

  • Apache Spark introduce un modulo di programmazione per l'elaborazione di dati strutturati chiamato Spark SQL. Spark SQL include un'astrazione di codifica denominata Data Frame che può fungere da motore di query SQL distribuito.
  • Il motivo dietro l'inizio di Presto era quello di consentire analisi interattive e approcci alla velocità dei data warehouse commerciali con il potere di ridimensionare le dimensioni delle organizzazioni corrispondenti a Facebook.
  • Considerando che Spark SQL è un componente di Spark Core che introduce una nuova astrazione di dati chiamata SchemaRDD (Resilient Distributed Dataset), fornisce supporto per dati strutturati / semi-strutturati.
  • Presto è stato progettato come alternativa agli strumenti che interrogano i dati HDFS utilizzando lavori MapReduce come Hive o Pig, ma Presto non è limitato a HDFS.
  • Spark SQL segue l'elaborazione in memoria, che aumenta la velocità di elaborazione. Spark è progettato per elaborare un'ampia gamma di carichi di lavoro come query batch, algoritmi iterativi, query interattive, streaming ecc.
  • Presto è in grado di eseguire le query federative. Di seguito è riportato l'esempio delle query federate Presto

Supponiamo qualsiasi RDBMS con la tabella sample1

E HIVE con tabella sample2,

'Testdb' è il database sia in hive che in MYSQL. Usando Presto possiamo valutare i dati usando in una singola query una volta che i loro connettori sono configurati correttamente come mostrato di seguito-

presto> hive.Testdb.sample2

Funzione (selezionare / Raggruppa per ..etc)> mysql.Testdb.sample1

  • L'architettura Spark SQL è composta da Spark SQL, Schema RDD e Data Frame
    • Una cornice dati è una raccolta di dati; i dati sono organizzati in colonne denominate. Tecnicamente, è uguale alle tabelle del database relazionale.
    • Schema RDD: Spark Core contiene una struttura dati speciale chiamata RDD. Spark SQL funziona su schemi, tabelle e record. Pertanto, un utente può utilizzare lo schema RDD come tabella temporanea. In modo che l'utente possa chiamare questo schema RDD come Data Frame
  • Funzionalità del frame di dati: il frame di dati elabora i dati delle dimensioni da Kilobyte a Petabyte su un cluster a nodo singolo in più cluster di nodi,
  • Data Frame supporta diversi formati di dati (CSV, elasticsearch, Cassandra ecc.) E sistemi di archiviazione (HDFS, tabelle HIVE, MySQL, ecc.), Può essere integrato con tutti gli strumenti / framework Big Data tramite Spark-Core e fornisce API per linguaggi come Programmazione Python, Java, Scala e R.
  • Considerando che Presto è un motore distribuito, funziona su una configurazione di cluster. L'architettura Presto è semplice da comprendere ed estensibile. Il client Presto (CLI) invia le istruzioni SQL a un coordinatore daemon principale che gestisce l'elaborazione.
  • Aziende che utilizzano Presto: Facebook, Netflix, Airbnd, Dropbox ecc.
  • I casi d'uso Apache Spark si trovano in settori come finanza, vendita al dettaglio, assistenza sanitaria e viaggi ecc. Molti siti Web di e-commerce come eBay, Alibaba, Pinterest utilizzano Spark SQL per analizzare centinaia di petabyte di dati sulla sua piattaforma di e-commerce.

Tabella comparativa Spark SQL vs Presto

Di seguito è riportato il confronto più in alto tra SQL vs Presto

Base di confronto tra SQL vs Presto Presto Spark SQL
Ecosistemi / piattaformeHadoop, Big Data Processing eccSpark Framework, elaborazione di big data ecc
ScopoPresto è progettato per l'esecuzione di query SQL su Big Data (carichi di lavoro enormi).
È stato progettato da Facebook per elaborare i loro enormi carichi di lavoro.
Spark SQL è uno dei componenti di Apache Spark Core.
Spark Core è il motore di esecuzione fondamentale per la piattaforma Spark
Impostare
  • Presto è un motore di query SQL distribuito per l'elaborazione di byte di dati di animali domestici e viene eseguito su un cluster come impostato con un set di macchine.
  • Una configurazione completa del cluster Presto include un coordinatore (Manager Node) e più lavoratori. L'utente invia le richieste da un client che è l'interfaccia della riga di comando di Presto al coordinatore. Il coordinatore analizza, analizza e pianifica l'esecuzione della query e quindi distribuirà l'elaborazione della query ai lavoratori.
  • L'installazione di Spark SQL sarà pronta per l'installazione e la configurazione di Apache Spark Cluster
  • Apache Spark è il sottoprogetto di Hadoop.
  • Apaches Spark è una tecnologia di elaborazione di Big Data basata su cluster, progettata per un calcolo rapido.
Funzionalità / CaratteristichePresto consente l'interrogazione dei dati su molte origini dati; Ad esempio, i dati potrebbero risiedere negli archivi dati: Hive, Cassandra, RDBMS e alcuni altri archivi dati proprietari.Spark SQL offre flessibilità in integrazione con altre origini dati utilizzando i frame di dati e i connettori JDBC.
Supporto per connettoriPresto supporta connettori collegabili. Questi connettori forniscono set di dati per le query.

Di seguito sono disponibili diversi connettori preesistenti disponibili a breve, mentre Presto offre la possibilità di connettersi anche con connettori personalizzati.
Di seguito sono riportati alcuni dei connettori supportati

  • Hadoop / Hive
  • cassandra
  • Teradata
  • PostgreSQL
  • Oracle ecc

Un'interfaccia Data Frame consente a diverse origini dati di funzionare su Spark SQL.
Spark SQL include una modalità server con connettività JDBC e ODBC standard del settore.
Query federatePresto supporta le query federate. Presto può essere configurato per connettersi con diversi DB e una volta configurato; la sua CLI può essere utilizzata per avviare "Federated Query".
In una query Presto l'utente può combinare i dati da più origini dati ed eseguire la query.
Spark SQL viene fornito con una funzione integrata per connettersi con altri database tramite JDBC che è "JDBC ad altri database", aiuta nella funzione di federazione.
Spark crea i frame di dati utilizzando la funzionalità JDBC: database sfruttando l'API scala / python, ma funziona anche direttamente con il server Spark SQL Thrift e consente agli utenti di eseguire query su tabelle JDBC esterne senza sforzo come altre tabelle hive / spark.
Chi usa?Analisti di dati, ingegneri di dati, scienziati di dati eccAnalisti di dati, ingegneri di dati, data scientist, Spark Developer ecc

Conclusioni -Spark SQL vs Presto

Spark SQL e Presto, entrambi sono motori distribuiti SQL disponibili sul mercato.

Presto è molto utile quando si tratta di query di tipo BI e Spark SQL è leader in termini di prestazioni in query di analisi di grandi dimensioni. Quando si confronta rispetto alla configurazione, Presto si configura facilmente rispetto a Spark SQL. Sia Spark SQL che Presto si trovano allo stesso modo in un mercato e risolvono un diverso tipo di problemi aziendali.

Articolo raccomandato

Questa è stata una guida a Spark SQL vs Presto, al loro significato, confronto testa a testa, differenze chiave, tabella di confronto e conclusioni. Puoi anche consultare i seguenti articoli per saperne di più -

  1. Apache Spark vs Apache Flink - 8 cose utili che devi sapere
  2. Apache Hive vs Apache Spark SQL - 13 Incredibili differenze
  3. I 6 migliori confronti tra Hadoop Vs SQL
  4. Hadoop vs Teradata - Differenze preziose