Apache Sparkin suoritusajat Fabric-pelissä

Microsoft Fabric Runtime on Azuren integroitu Apache Sparkiin perustuva ympäristö, joka mahdollistaa tietotekniikan ja tietojenkäsittelykokemusten suorittamisen ja hallinnan. Se yhdistää sekä sisäisistä että avoimen lähdekoodin lähteistä peräisin olevat keskeiset komponentit ja tarjoaa asiakkaille kattavan ratkaisun. Yksinkertaisuuden vuoksi katso Microsoft Fabric Runtime powered by Apache Spark nimellä Fabric Runtime.

Fabric Runtime -kohteen pääkomponentit:

  • Apache Spark – tehokas avoimen lähdekoodin hajautettu tietojenkäsittelykirjasto, joka mahdollistaa suuren mittakaavan tietojen käsittelyn ja analytiikkatehtävät. Apache Spark tarjoaa monipuolisen ja suorituskykyisen ympäristön tietotekniikka- ja datatiedekokemuksiin.

  • Delta Lake – avoimen lähdekoodin tallennuskerros, joka tuo ACID-tapahtumat ja muut tietojen luotettavuusominaisuudet Apache Sparkiin. Fabric Runtimeen integroitu Delta Lake parantaa tietojenkäsittelyominaisuuksia ja varmistaa tietojen yhtenäisyyden useissa samanaikaisissa toiminnoissa.

  • Native Execution Engine – mullistava parannus Apache Spark -työkuormille, joka tarjoaa merkittäviä suorituskyvyn parannuksia suorittamalla Spark-kyselyt suoraan järvenrakennuksen infrastruktuurissa. Saumattomasti integroituna se ei vaadi koodimuutoksia ja välttää toimittajalukituksen. Se tukee sekä Parquet- että Delta-formaatteja Apache Spark API:ssa Runtime 1.3:ssa (Spark 3.5) ja Runtime 2.0:ssa (Spark 4.1).

    Tuetut operaattorit siirretään JVM-pohjaisesta Sparkista vektoroidulle C++-suorituspolulle Apache Glutenin ja Veloxin kautta, tarjoten pylväsmäisen, SIMD-kiihdytetyn prosessoinnin ja natiivituen Parquet- ja Delta-formaateille. Kun operaattoria ei tueta, suoritus palautuu automaattisesti JVM-pohjaiseen Spark-järjestelmään. Edustavissa testeissä (TPC-DS skaalauskertoimella 1000 Deltalla) moottori saavutti jopa kuusi kertaa nopeamman suorituskyvyn verrattuna avoimen lähdekoodin Sparkiin, mikä tarkoittaa noin 83% laskentakustannussäästöä kiinteäkokoisessa Fabric-klusterissa.

    Natiivipolku säilyttää Fabric Spark -kyselyoptimoinnit, mukaan lukien adaptiivisen kyselysuorituksen, kustannusperusteiset uudelleenkirjoitukset, sarakkeiden karsinnan ja predikaattien työntämisen. Voit kytkeä natiivin suorituksen sovelluskohtaisesti käyttämällä konfiguraatiota spark.native.enabled . Notebook-solun suorituksen aikana Fabric Spark Advisor lähettää reaaliaikaisia hälytyksiä, kun suoritus palautuu JVM-pohjaiseen Spark-järjestelmään, auttaen sinua diagnosoimaan silloin, kun natiivi kuormitus ei ole käytössä.

  • Java/Scala-, Python- ja R-pakettien oletustason paketit, jotka tukevat erilaisia ohjelmointikieliä ja ympäristöjä. Nämä paketit asennetaan ja konfiguroidaan automaattisesti, jotta kehittäjät voivat soveltaa haluamiaan ohjelmointikieliä datankäsittelytehtäviin.

  • Microsoft Fabric Runtime on perustuu vahvaan avoimen lähdekoodin käyttöjärjestelmään, joka takaa yhteensopivuuden eri laitteistomääritysten ja järjestelmävaatimusten kanssa.

Seuraavassa taulukossa on kattava vertailu keskeisistä komponenteista, mukaan lukien Apache Spark -versiot, tuetut käyttöjärjestelmät, Java, Scala, Python, Delta Lake ja R, Apache Spark -pohjaisille ajonaikaisille Microsoft Fabric -alustalle.

Vihje

Käytä aina uusinta, yleisesti saatavilla olevaa (GA) ajonaikaista versiota tuotantokuormallesi, joka on tällä hetkellä Runtime 1.3.

Komponentti Suoritusaika 1.3 Runtime 2.0
julkaisuvaiheen yleinen saatavuus Julkinen esikatselu
Apache Spark -versio 3.5.5 4.1
Käyttöjärjestelmä Merijalkaväki 2.0 Mariner 3.0
Java-versio 11 21
Scala-versio 2.12.17 2.13.16
Python-versio 3.11 3.13
Delta Lake -versio 3,2 4.2

Vieraile Runtime 1.3 :ssa tai Runtime 2.0 :ssa tutustuaksesi yksityiskohtiin, uusiin ominaisuuksiin, parannuksiin ja migraatioskenaarioihin kyseiselle ajonaikaiselle versiolle.

Fabric-optimoinnit

Microsoft Fabricissa sekä Spark-moduulin että Delta Lake -toteutukset sisältävät ympäristökohtaisia optimointeja ja ominaisuuksia. Nämä ominaisuudet hyödyntävät natiiviintegraatioita alustalla. Voit poistaa kaikki nämä ominaisuudet käytöstä saavuttaaksesi tavalliset Spark- ja Delta Lake -toiminnot. Apache Sparkin Fabric Runtimes -suorituspalvelu sisältää seuraavat:

  • Apache Sparkin täydellinen avoimen lähdekoodin versio.
  • Kokoelma lähes 100:aa sisäänrakennettua erillisten kyselyjen suorituskyvyn parannusta. Näitä parannuksia ovat esimerkiksi osion välimuistitallennus (FileSystem-osiovälimuistin käyttöönotto metasäilökutsujen vähentämiseksi) ja Cross Join to Projection of Scalar Subquery -kysely.
  • Sisäinen älykäs välimuisti.

Apache Sparkin ja Delta Laken Fabric Runtimessa natiivikirjoituskyvyillä on kaksi keskeistä tarkoitusta:

  • Ne tarjoavat eriytetyn suorituskyvyn kuormitusten kirjoittamiseen ja kirjoitusprosessin optimointiin.
  • Oletusarvona on Delta Parquet -tiedostojen V-order-optimointi. Delta Lake V-Order -optimointi on erittäin tärkeää, jotta kaikkien Fabric-moottoreiden lukusuorituskyky on parempi. Jos haluat syvemmän käsityksen siitä, miten se toimii ja miten sitä hallitaan, tutustu Delta Lake -taulukkooptimointiin ja V-Orderiin.

Useiden suorituspalveluiden tuki

Fabric tukee useita ajonaikaisia, joten voit vaihtaa niiden välillä ja vähentää yhteensopivuusongelmien tai häiriöiden riskiä.

Note

Spark-ajonaikaan sisältyy tietty Python-versio osana komponenttijoukkoa. Esimerkiksi Runtime 1.3 sisältää Python 3.11:n. Tämä Python-versio on erillinen siitä Python-muistikirjan ytimestä, jonka valitset puhtaille Python-muistikirjoille. Python-muistikirjan ytimen elinkaaresta katso Python-muistikirjan ajoaika ja ytimen elinkaari Fabric-ohjelmassa.

Oletuksena kaikki uudet työtilat käyttävät uusinta GA-ajonaikaista versiota, joka on tällä hetkellä Runtime 1.3.

Jos haluat muuttaa suorituspalveluversiota työtilatasolla, siirry kohtaan Työtilan asetukset>Tietotekniikka/tiede>Spark-asetukset. Valitse Environment -välilehdestä haluamasi suorituksenaikainen versio käytettävissä olevista vaihtoehdoista. Vahvista valinta valitsemalla Tallenna.

Kuvakaappaus, jossa näkyy, mistä ajonaikainen versio valitaan työtilan asetuksiin.

Kun olet tehnyt tämän muutoksen, kaikki järjestelmän luomat kohteet työtilassa, mukaan lukien Lakehouset, SJD:t ja Notebookit, käyttävät uutta valittua työtilatason ajonaikaista versiota seuraavasta Spark-istunnosta alkaen. Jos käytät tällä hetkellä muistikirjaa, jossa on olemassa oleva sessio työssä tai jossain järventaloon liittyvässä aktiviteetissa, kyseinen Spark-istunto jatkuu ennallaan. Kuitenkin seuraavasta sessiosta tai tehtävästä lähtien valittu ajonaikainen versio on voimassa.

Muuttaaksesi ajonaikaa esinetasolla Environment , luo uusi Ympäristö-kohde tai avaa olemassa oleva. Runtime-pudotusvalikosta valitse haluamasi ajonaikaversio käytettävissä olevista vaihtoehdoista, valitse Save, ja sitten Publish muutokset. Seuraavaksi voit käyttää tätä Environment tuotetta tai NotebookSpark Job Definition.

Kuvakaappaus, jossa näkyy, mistä Ympäristö-esineelle valitaan ajonaikainen versio.

Suorituksenaikaisten muutosten seuraukset Spark-asetuksissa

Järjestelmä siirtää kaikki Spark-asetukset. Jos järjestelmä kuitenkin tunnistaa, että Spark-asetus ei ole yhteensopiva Runtime B:n kanssa, se näyttää varoitusviestin eikä toteuta asetusta.

Spark-asetusten ajonaikainen muutos.

Suorituksenaikaisten muutosten seuraukset kirjaston hallintaan

Kirjaston hallintajärjestelmä siirtää kaikki kirjastot Runtime A:sta Runtime B:hen, mukaan lukien sekä julkiset että mukautetut ajonaikat. Jos Python- ja R-versiot pysyvät samoina, kirjastot toimivat oikein. JARien kohdalla on kuitenkin suuri mahdollisuus, etteivät ne toimi riippuvuuksien muutosten ja muiden tekijöiden, kuten Scalan, Javan, Sparkin ja käyttöjärjestelmän muutosten vuoksi.

Sinun vastuullasi on päivittää tai korvata kaikki kirjastot, jotka eivät toimi Runtime B:n kanssa. Jos syntyy ristiriita, mikä tarkoittaa, että Runtime B sisältää alun perin määriteltyä kirjastoa Runtime A:ssa, kirjaston hallintajärjestelmä pyrkii luomaan tarvittavan riippuvuuden Runtime B:lle asetuksistasi. Rakennusprosessi kuitenkin epäonnistuu, jos syntyy ristiriita. Virhelokissa näet, mitkä kirjastot aiheuttavat ristiriitoja ja voit tehdä muutoksia niiden versioihin tai määrittelyihin.

Kirjaston hallinnan ajonaikainen muutos.

Delta Lake -protokollan päivittäminen

Delta Lake -ominaisuudet ovat aina taaksepäin yhteensopivia, mikä varmistaa, että alemmassa Delta Lake -versiossa luodut taulukot voivat saumattomasti olla vuorovaikutuksessa korkeampien versioiden kanssa. Kuitenkin, kun otat tiettyjä ominaisuuksia käyttöön (esimerkiksi käyttämällä menetelmää delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) ), saatat vaarantaa eteenpäin yhteensopivuuden alempien Delta Lake -versioiden kanssa. Tällaisissa tapauksissa sinun täytyy muokata työkuormia, jotka viittaavat päivitettyihin tauluihin, vastaamaan yhteensopivuutta ylläpitävää Delta Lake -versiota.

Jokainen Delta-taulukko liittyy protokollan määrittelyyn, joka määrittelee sen tukemat ominaisuudet. Sovellukset, jotka ovat vuorovaikutuksessa taulukon kanssa joko lukemiseen tai kirjoittamiseen, luottavat tähän protokollan määrittelyyn selvittääkseen, ovatko ne yhteensopivia taulukon ominaisuuksien kanssa. Jos sovellukselta puuttuu kyky käsitellä taulun protokollassa tuettua ominaisuutta, se ei voi lukea tai kirjoittaa kyseiseen taulukkoon.

Protokollan määrittely on jaettu kahteen selkeään osaan: "luku"-protokollaan ja "write"-protokollaan. Lisätietoja löytyy kohdasta Kuinka Delta Lake hallinnoi ominaisuuksien yhteensopivuutta?

GIF, joka näyttää välittömän varoituksen, kun upgradeTableProtocol-menetelmää käytetään.

Voit ajaa komennon delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) PySpark-ympäristössä sekä Spark SQL:ssä ja Scalassa. Tämä komento käynnistää päivityksen Delta-taulukossa.

Kun suoritat tämän päivityksen, saat varoituksen, että Delta-protokollaversion päivittäminen on peruuttamaton prosessi. Tämä prosessi tarkoittaa, että päivityksen suorittamisen jälkeen et voi peruuttaa sitä.

Protokollaversioiden päivitykset voivat mahdollisesti vaikuttaa olemassa olevien Delta Lake -taulukkolukijoiden, kirjoittajien tai molempien yhteensopivuuteen. Siksi etene varovaisesti ja päivitä protokollaversio vain tarvittaessa, esimerkiksi ottaessasi käyttöön uusia ominaisuuksia Delta Lakessa.

Tärkeää

Lisätietoja siitä, mitkä protokollaversiot ja ominaisuudet ovat yhteensopivia kaikissa Microsoft Fabric -kokemuksissa, löydät Delta Lake Table Format Interoperability.

Näyttökuva, jossa näkyy varoitus Delta Lake -protokollaa päivitettäessä.

Lisäksi varmista, että kaikki nykyiset ja tulevat tuotantotyökuormat ja -prosessit ovat yhteensopivia Delta Lake -taulujen kanssa uuden protokollaversion avulla, jotta siirtymä olisi saumaton ja mahdolliset häiriöt vältyvät.