Jaa


Apache Spark -suoritusajat Fabricissa

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 käytämme Microsoft Fabric Runtime -versiota, joka toimii Apache Sparkin avulla 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.

  • Alkuperäinen suorittamismoduuli - on muuntava parannus Apache Spark -kuormituksille, jotka tarjoavat merkittäviä suorituskykyhyötyjä suorittamalla suoraan Spark-kyselyjä Lakehouse-infrastruktuurissa. Saumattomasti integroituna se ei vaadi koodin muutoksia ja välttää toimittajan lukituksen, joka tukee sekä Parquet- että Delta-muotoja Apache Spark -ohjelmointirajapituissa Runtime 1.3:ssa (Spark 3.5). Tämä moottori nopeuttaa kyselyiden nopeutta jopa neljä kertaa nopeammin kuin perinteinen OSS Spark TPC-DS 1TB:n vertailuarvosta käy ilmi, mikä vähentää toimintakustannuksia ja parantaa eri tietotehtävien tehokkuutta – mukaan lukien tietojen käsittely, ETL, analytiikka ja vuorovaikutteiset kyselyt. Se perustuu Metan Veloxiin ja Intelin Apache Gluteniin, optimoiden resurssien käytön samalla kun käsittelee erilaisia datankäsittelyskenaarioita.

  • Java/Scala-, Python- ja R-pakettien oletustason paketit, jotka tukevat erilaisia ohjelmointikieliä ja ympäristöjä. Nämä paketit asennetaan ja määritetään automaattisesti, jotta kehittäjät voivat käyttää haluamiaan ohjelmointikieliä tietojenkäsittelytehtävissä.

  • 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.

Alla on kattava vertailu tärkeimmistä osista, kuten Apache Spark -versiot, tuetut käyttöjärjestelmät Java, Scala, Python, Delta Lake ja R, Apache Spark -pohjaisille suorituspalveluille Microsoft Fabric -ympäristössä.

Vihje

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

Komponentti Kestoaika 1.2 Suoritusaika 1.3 Runtime 2.0
julkaisuvaiheen EOSA yleinen saatavuus Kokeellinen (Ennakko)
Apache Spark -versio 3.4.1 3.5.5 4.0.0
Käyttöjärjestelmä Merijalkaväki 2.0 Merijalkaväki 2.0 Mariner 3.0
Java-versio 11 11 21
Scala-versio 2.12.17 2.12.17 2.13.16
Python-versio 3,10 3.11 3.12.11
Delta Lake -versio 2.4.0 3,2 4.0.0

Vieraile Runtime 1.2:ssa, 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 on suunniteltu käyttämään alkuperäisiä integrointeja ympäristössä. On tärkeää huomata, että kaikki nämä ominaisuudet voidaan poistaa käytöstä Spark- ja Delta Lake -vakiotoimintojen mahdollistamiseksi. 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.

Fabric Runtime for Apache Spark- ja Delta Lake -järven sisällä on alkuperäisiä kirjoitusominaisuuksia, jotka palvelevat kahta tärkeää 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 lisätietoja siitä, miten se toimii ja miten sitä hallitaan, lue artikkeli, joka käsittelee Delta Lake -taulukon optimointia ja V-tilausta.

Useiden suorituspalveluiden tuki

Fabric tukee useita suorituksenaikaisia toimintoja, joten käyttäjät voivat vaihtaa saumattomasti niiden välillä minimoiden yhteensopivuuden tai häiriöiden riskin.

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 Muistikirjat, toimivat käyttämällä uutta valittua työtilatason suorituspalveluversiota, joka alkaa seuraavasta Spark-istunnosta. Jos käytät parhaillaan muistikirjaa, jossa on aiemmin luotu istunto työhön tai mihin tahansa Lakehouseen liittyvään toimintaan, spark-istunto jatkuu sellaisenaan. Seuraavasta istunnosta tai työstä alkaen valittu suorituksenaikainen versio otetaan kuitenkin käyttöön.

Lisäksi, jos haluat muuttaa ajonaikaa Environment esinetasolla, luo uuden Ympäristö-kohteen tai avoimen ja olemassa olevan, valitse Runtime-pudotusvalikosta haluamasi ajonaikaversio saatavilla 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

Yleisesti ottaen pyrimme siirtämään kaikki Spark-asetukset. Jos kuitenkin huomaamme, että Spark-asetus ei ole yhteensopiva Runtime B:n kanssa, annamme varoitussanoman ja vältämme asetuksen käyttöönoton.

Spark-asetusten ajonaikainen muutos.

Suorituksenaikaisten muutosten seuraukset kirjaston hallintaan

Yleisesti ottaen lähestymistapamme on siirtää kaikki kirjastot Runtime A:sta Runtime B:hen, mukaan lukien sekä julkiset että mukautetut suorituspalvelut. Jos Python- ja R-versiot pysyvät muuttumattomina, kirjastojen pitää toimia oikein. Jarseille on kuitenkin suuri todennäköisyys, että ne eivät toimi riippuvuuksien muutosten ja muiden tekijöiden, kuten Scalan, Javan, Sparkin ja käyttöjärjestelmän muutosten vuoksi.

Käyttäjä vastaa kirjastojen päivittämisestä tai korvaamisesta, jotka eivät toimi Runtime B:n kanssa. Jos syntyy ristiriita, mikä tarkoittaa, että Runtime B sisältää alun perin Runtime A:ssa määritelmän kirjaston, kirjaston hallintajärjestelmämme pyrkii luomaan tarvittavan riippuvuuden Runtime B:lle käyttäjän asetusten perusteella. Rakennusprosessi kuitenkin epäonnistuu, jos syntyy ristiriita. Virhelokista käyttäjät voivat nähdä, mitkä kirjastot aiheuttavat ristiriitoja, ja tehdä muutoksia versioihinsa tai määrityksiinsä.

Kirjaston hallinnan ajonaikainen muutos.

Delta Lake -protokollan päivittäminen

Delta Lake -ominaisuudet ovat aina yhteensopivassa taaksepäin, mikä varmistaa, että alemmassa Delta Lake -versiossa luodut taulukot voivat saumattomasti käsitellä suurempia versioita. Kuitenkin, kun tietyt ominaisuudet otetaan käyttöön (esimerkiksi metodin avulla delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) ), eteenpäin yhteensopivuus alempien Delta Lake -versioiden kanssa voi vaarantua. Tällaisissa tapauksissa on tärkeää muokata päivitettyihin taulukoihin viittaavia kuormituksia, jotta ne tasataan yhteensopivuutta takaavan Delta Lake -version kanssa.

Jokainen Delta-taulukko liittyy protokollamääritykseen, joka määrittää ominaisuudet, joita se tukee. 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 pysty lukemaan tai kirjoittamaan kyseiseen taulukkoon.

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

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

Käyttäjät voivat suorittaa komennon delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) PySpark-ympäristössä sekä Spark SQL:ssä ja Scalassa. Tämän komennon avulla he voivat aloittaa päivityksen Delta-taulukkoon.

On tärkeää huomata, että tätä päivitystä suorittaessaan käyttäjät saavat varoituksen, jonka mukaan Delta-protokollaversion päivittäminen on peruuttamaton prosessi. Tämä tarkoittaa, että kun päivitys on suoritettu, sitä ei voi peruuttaa.

Protokollaversioiden päivitykset voivat mahdollisesti vaikuttaa olemassa olevien Delta Lake -taulukkolukijoiden, kirjoittajien tai molempien yhteensopivuuteen. Siksi on suositeltavaa edetä varovasti ja päivittää protokollaversio vain tarvittaessa, esimerkiksi uusien ominaisuuksien käyttöönoton yhteydessä Delta Lakessa.

Tärkeää

Jos haluat tietää lisää siitä, mitkä protokollaversiot ja -ominaisuudet ovat yhteensopivia kaikissa Microsoft Fabric -käyttökokemuksissa, lue Delta Lake -taulukkomuotojen yhteentoimivuus.

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

Lisäksi käyttäjien tulee varmistaa, että kaikki nykyiset ja tulevat tuotannon kuormitukset ja prosessit ovat yhteensopivia Delta Lake -taulukoiden kanssa käyttämällä uutta protokollaversiota, mikä varmistaa saumattoman siirtymän ja estää mahdolliset häiriöt.