Fabric Runtime 1.2 (GA)
Microsoft Fabric Runtime er en Azure-integreret platform, der er baseret på Apache Spark, som muliggør udførelse og administration af datakonstruktion og datavidenskabsoplevelser. Dette dokument dækker runtime 1.2-komponenter og -versioner.
De overordnede komponenter i Runtime 1.2 omfatter:
- Apache Spark 3.4.1
- Operativsystem: Mariner 2.0
- Java: 11
- Scala: 2.12.17
- Python: 3.10
- Delta Lake: 2.4.0
- R: 4.2.2
Tip
Brug altid den nyeste version af ga-runtime til din produktionsarbejdsbelastning, som i øjeblikket er Runtime 1.3.
Microsoft Fabric Runtime 1.2 leveres med en samling pakker på standardniveau, herunder en komplet Anaconda-installation og almindeligt anvendte biblioteker til Java/Scala, Python og R. Disse biblioteker medtages automatisk, når du bruger notesbøger eller job på Microsoft Fabric-platformen. Du kan finde en komplet liste over biblioteker i dokumentationen. Microsoft Fabric udruller jævnligt vedligeholdelsesopdateringer til Runtime 1.2 med fejlrettelser, forbedringer af ydeevnen og sikkerhedsrettelser. Hvis du holder dig opdateret, sikrer du optimal ydeevne og pålidelighed i forbindelse med dine databehandlingsopgaver.
Nye funktioner og forbedringer af Spark Release 3.4.1
Apache Spark 3.4.0 er den femte version i 3.x-linjen. Denne version, der er drevet af community'et med åben kildekode, løste over 2.600 Jira-billetter. Den introducerer en Python-klient til Spark Connect, forbedrer Struktureret streaming med asynkron statussporing og Behandling af Python-tilstand. Det udvider Pandas API-dækning med NumPy-inputunderstøttelse, forenkler migrering fra traditionelle data warehouses via ANSI-overholdelse og nye indbyggede funktioner. Det forbedrer også udviklingsproduktiviteten og fejlfindingen med hukommelsesprofilering. Derudover er Runtime 1.2 baseret på Apache Spark 3.4.1, som er en vedligeholdelsesversion, der fokuserer på stabilitetsrettelser.
Centrale punkter
Læs den fulde version af produktbemærkningerne til en bestemt Apache Spark-version ved at besøge både Spark 3.4.0 og Spark 3.4.1.
Nye brugerdefinerede forespørgselsoptimeringer
Understøttelse af samtidige skrivninger i Spark
Der opstod en 404-fejl med meddelelsen "Handlingen mislykkedes: Den angivne sti findes ikke" er et almindeligt problem, når der udføres parallelle dataindsætninger i den samme tabel ved hjælp af en SQL INSERT INTO-forespørgsel. Denne fejl kan medføre tab af data. Vores nye funktion, algoritmen Filoutput Committer, løser dette problem, så kunderne kan udføre parallel dataindsætning uden problemer.
Hvis du vil have adgang til denne funktion, skal du aktivere spark.sql.enable.concurrentWrites
funktionsflaget, som som standard er aktiveret fra Runtime 1.2 (Spark 3.4). Selvom denne funktion også er tilgængelig i andre Spark 3-versioner, er den ikke aktiveret som standard. Denne funktion understøtter ikke parallel udførelse af INSERT OVERWRITE-forespørgsler, hvor hvert samtidige job overskriver data på forskellige partitioner i den samme tabel dynamisk. Til dette formål tilbyder Spark en alternativ funktion, som kan aktiveres ved at konfigurere indstillingen spark.sql.sources.partitionOverwriteMode
til dynamisk.
Smarte læsninger, der springer filer over fra mislykkede job
Når en indsættelse i et tabeljob mislykkes i det aktuelle Spark committer-system, men nogle opgaver lykkes, findes de filer, der genereres af de vellykkede opgaver, sammen med filer fra det mislykkede job. Denne sameksistens kan skabe forvirring for brugerne, da det bliver en udfordring at skelne mellem filer, der tilhører vellykkede og mislykkede job. Når et job læser fra en tabel, mens et andet samtidig indsætter data i den samme tabel, kan læsejobbet desuden få adgang til ikke-gemte data. Hvis et skrivejob mislykkes, kan læsejobbet behandle forkerte data.
Flaget spark.sql.auto.cleanup.enabled
styrer vores nye funktion og løser dette problem. Når funktionen er aktiveret, springer Spark automatisk læsefiler over, der ikke er blevet bekræftet, når den udfører spark.read
eller vælger forespørgsler fra en tabel. Filer, der skrives før aktivering af denne funktion, læses fortsat som normalt.
Her er de synlige ændringer:
- Alle filer indeholder nu et
tid-{jobID}
id i deres filnavne. - I stedet for den
_success
mærke, der typisk oprettes på outputplaceringen, når jobbet er fuldført, oprettes der en ny_committed_{jobID}
markør. Denne markør knytter vellykkede job-id'er til bestemte filnavne. - Vi har introduceret en ny SQL-kommando, som brugerne kan køre med jævne mellemrum for at administrere lager og rydde op i filer, der ikke er blevet sendt. Syntaksen for denne kommando er som følger:
- Sådan rydder du op i en bestemt mappe:
CLEANUP ('/path/to/dir') [RETAIN number HOURS];
- Sådan rydder du op i en bestemt tabel:
CLEANUP [db_name.]table_name [RETAIN number HOURS];
I denne syntaks repræsenterer den placerings-URI,path/to/dir
hvor oprydning er påkrævet, ognumber
er en dobbelt typeværdi, der repræsenterer opbevaringsperioden. Standardopbevaringsperioden er angivet til syv dage.
- Sådan rydder du op i en bestemt mappe:
- Vi har introduceret en ny konfigurationsindstilling kaldet
spark.sql.deleteUncommittedFilesWhileListing
, som er angivet tilfalse
som standard. Aktivering af denne indstilling medfører automatisk sletning af ikke-bekræftede filer under læsninger, men dette scenarie kan sinke læsehandlinger. Det anbefales at køre oprydningskommandoen manuelt, når klyngen er inaktiv i stedet for at aktivere dette flag.
Migreringsvejledning fra Runtime 1.1 til Runtime 1.2
Når du migrerer fra Runtime 1.1, drevet af Apache Spark 3.3, til Runtime 1.2, drevet af Apache Spark 3.4, skal du gennemse den officielle migreringsvejledning.
Nye funktioner og forbedringer af Delta Lake 2.4
Delta Lake er et åben kildekode projekt, der gør det muligt at bygge en lakehousearkitektur oven på datasøer. Delta Lake leverer ACID-transaktioner, skalerbar metadatahåndtering og samler streaming - og batchdatabehandling oven på eksisterende datasøer.
Delta Lake tilbyder især:
- ACID-transaktioner på Spark: Serialiserbare isolationsniveauer sikrer, at læserne aldrig får vist inkonsekvente data.
- Skalerbar håndtering af metadata: Bruger spark-distribueret behandlingskraft til at håndtere alle metadata til tabeller i petabyte-skala med milliarder af filer i lethed.
- Streaming og batchsammenføring : En tabel i Delta Lake er en batchtabel og en streamingkilde og en vask. Streaming af data indfødning, batch historiske backfill, interaktive forespørgsler alle bare arbejde ud af kassen.
- Gennemtvingning af skemaer: Håndterer automatisk skemavariationer for at forhindre indsættelse af forkerte poster under indtagelse.
- Tidsrejse: Dataversioner muliggør annulleringer, komplette historiske revisionsspor og reproducerbare eksperimenter med maskinel indlæring.
- Upserts og deletes: Understøtter fletnings-, opdaterings- og sletningshandlinger for at aktivere komplekse use cases, f.eks. ændring af datahentning, handlinger med langsomt skiftende dimension (SCD), streaming-upserts osv.
Læs den fulde version af produktbemærkningerne til Delta Lake 2.4.
Pakker på standardniveau for Java-, Scala- og Python-biblioteker
Du kan se en liste over alle pakker på standardniveau for Java, Scala, Python og deres respektive versioner i produktbemærkningerne.