Condivisione della tecnologia

SQL di Spark

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine

SQL di Spark

1. Architettura Spark SQL

  • 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)
    Inserisci qui la descrizione dell'immagine

  • 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

Inserisci qui la descrizione dell'immagine

  • Processo in esecuzione dell'ottimizzatore del catalizzatore:
  1. 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.
  2. 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.
  3. 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