Teknologian jakaminen

Spark SQL

2024-07-11

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

Lisää kuvan kuvaus tähän
Lisää kuvan kuvaus tähän

Spark SQL

1. Spark SQL -arkkitehtuuri

  • Mahdollisuus käyttää suoraan olemassa olevia Hive-tietoja

  • Tarjoaa JDBC/ODBC-liitännän kolmannen osapuolen työkaluille, jotka käyttävät Sparkia tietojenkäsittelyyn

  • Tarjoa korkeamman tason käyttöliittymä tietojen käsittelyn helpottamiseksi

  • Tukee useita toimintatapoja: SQL, API ohjelmointi

    • API-ohjelmointi: Spark SQL on kehittänyt joukon operaattoreita SQL:ään perustuville SQL-käskyille.
  • Tukee useita ulkoisia tietolähteitä, kuten Parquet, CSV, JSON, RDBMS, Hive, HBase jne. (Hallitsee erilaisia ​​tiedonlukumenetelmiä)
    Lisää kuvan kuvaus tähän

  • Spark SQL Core: KylläRDD-kaavio(operaattoripöydän rakenne), toimintamme helpottamiseksi teemmeRDD-kaavioosoitettuDatakehys

  • Tietojen takaisinsyöttö: käytetään käsiteltyjen ja puhdistettujen tietojen kirjoittamiseen takaisin Hiveen myöhempää analysointia ja käyttöä varten.

  • BI-työkalut: Käytetään pääasiassa tietojen esittämiseen.

  • Spark-sovellus: Kehittäjät käyttävät Spark-sovellusta tietojenkäsittely- ja analysointilogiikan kirjoittamiseen. Nämä sovellukset voidaan kirjoittaa eri ohjelmointikielillä, kuten Python, Scala, Java jne.

2. Spark SQL -toimintaperiaate

Lisää kuvan kuvaus tähän

  • Katalysaattorin optimoijan käyttöprosessi:
  1. Käyttöliittymä
    • tulla sisään: Käyttäjät voivat syöttää tietojenkäsittelylogiikkaan SQL-kyselyjen tai DataFrame API:n kautta.
    • Ratkaisematon looginen suunnitelma (ratkaisematon looginen suunnitelma): Syötetty SQL-kysely tai DataFrame-muunnostoiminto muunnetaan ensin jäsentämättömäksi loogiseksi suunnitelmaksi. Tämä suunnitelma sisältää kaikki käyttäjän pyytämät toiminnot, mutta siinä olevia taulukoiden ja sarakkeiden nimiä ei ehkä ole vielä jäsennetty.
  2. Catalyst Optimizer (Catalyst Optimizer) Catalyst Optimizer on Spark SQL:n ydinkomponentti. Se vastaa loogisten suunnitelmien muuntamisesta fyysisiksi suoritussuunnitelmiksi ja niiden optimoinnista. Katalysaattorin optimointi koostuu seuraavista vaiheista:
    • Analyysi : Jäsennä ratkaisemattoman loogisen suunnitelman taulukoiden ja sarakkeiden nimet tietyiksi metatiedoiksi. Tämä vaihe perustuu Katalogiin (metatietojen tallennus). Tulos on jäsennetty looginen suunnitelma.
    • Looginen optimointi : Suorita erilaisia ​​optimointeja jäsennetylle loogiselle suunnitelmalle, kuten projektioleikkaus, suodattimen työntö jne. Optimoitu looginen suunnitelma on tehokkaampi.
    • Fyysinen suunnittelu : Muunna optimoitu looginen suunnitelma yhdeksi tai useammaksi fyysiseksi suoritussuunnitelmaksi. Jokainen fyysinen suunnitelma edustaa mahdollista toteutustapaa.
    • Kustannusmalli: Arvioi eri fyysisten suunnitelmien toteutuskustannukset ja valitse lopulliseksi fyysiseksi suunnitelmaksi edullisin fyysinen suunnitelma.
  3. Backend
    • Koodin luominen : Muuntaa valitun fyysisen suunnitelman RDD-toiminnoiksi, jotka voidaan suorittaa Sparkissa. Tämä vaihe luo todellisen suorituskoodin.
    • RDD:t: Viimeinen luotu RDD-toiminto suoritetaan käyttäjän pyytämän tietojenkäsittelytehtävän suorittamiseksi.
  • SQL-kyselyn optimointiprosessi Spark SQL:ssä
SELECT name FROM(
  SELECT id, name FROM people
) p
WHERE p.id = 1