Possibilità di accedere direttamente ai dati Hive esistenti
Fornisce l'interfaccia JDBC/ODBC per strumenti di terze parti per utilizzare Spark per l'elaborazione dei dati
Fornire un'interfaccia di livello superiore per facilitare l'elaborazione dei dati
Supporta più metodi operativi: SQL, programmazione API
Programmazione API: Spark SQL ha sviluppato una serie di operatori per istruzioni SQL basate su SQL. I nomi sono simili alle istruzioni SQL standard.
Supporta più origini dati esterne come Parquet, CSV, JSON, RDBMS, Hive, HBase, ecc. (Padroneggia una varietà di metodi di lettura dei dati)
Spark SQL Core: sìSchema RDD(struttura della tabella dell'operatore), al fine di facilitare il nostro funzionamento, lo faremoSchema RDDrilasciato aTelaio di dati
Backfeed dati: utilizzato per riscrivere i dati elaborati e puliti su Hive per la successiva analisi e utilizzo.
Strumenti BI: utilizzati principalmente per la presentazione dei dati.
Applicazione Spark: gli sviluppatori utilizzano l'applicazione Spark per scrivere la logica di elaborazione e analisi dei dati. Queste applicazioni possono essere scritte in diversi linguaggi di programmazione, come Python, Scala, Java, ecc.
2. Principio di funzionamento di Spark SQL
Processo in esecuzione dell'ottimizzatore del catalizzatore:
Fine frontale
accedere: gli utenti possono inserire la logica di elaborazione dei dati tramite query SQL o API DataFrame.
Piano logico irrisolto (piano logico irrisolto): la query SQL di input o l'operazione di conversione DataFrame verrà prima convertita in un piano logico non analizzato. Questo piano contiene tutte le operazioni richieste dall'utente, ma i nomi delle tabelle e delle colonne in esso contenuti potrebbero non essere stati ancora analizzati.
Ottimizzatore del catalizzatore (ottimizzatore del catalizzatore) L'ottimizzatore Catalyst è il componente principale di Spark SQL È responsabile della conversione dei piani logici in piani di esecuzione fisica e della loro ottimizzazione. L'ottimizzatore Catalyst è costituito dalle seguenti fasi:
Analisi : analizza i nomi delle tabelle e delle colonne nel piano logico non risolto in metadati specifici. Questo passaggio si basa sul catalogo (archiviazione dei metadati). L'output è un piano logico analizzato.
Ottimizzazione logica : esegue varie ottimizzazioni sul piano logico analizzato, come taglio della proiezione, pushdown del filtro, ecc. Il piano logico ottimizzato è più efficiente.
Pianificazione fisica : Converte il piano logico ottimizzato in uno o più piani di esecuzione fisica. Ogni piano fisico rappresenta una possibile modalità di esecuzione.
Modello di costo: valutare i costi di esecuzione di diversi piani fisici e selezionare il piano fisico con il costo più basso come piano fisico finale.
Backend
Generazione del codice : Converte il piano fisico selezionato in operazioni RDD che possono essere eseguite su Spark. Questo passaggio genera il codice di esecuzione effettivo.
RDD: l'operazione RDD finale generata viene eseguita per completare l'attività di elaborazione dei dati richiesta dall'utente.
Processo di ottimizzazione di una query SQL in Spark SQL
SELECT name FROM(SELECT id, name FROM people
) p
WHERE p.id =1