Share via


Fabric Runtime 1.2 (GA)

De Microsoft Fabric Runtime is een geïntegreerd Azure-platform op basis van Apache Spark waarmee de uitvoering en het beheer van data engineering- en data science-ervaringen mogelijk is. In dit document worden de onderdelen en versies van Runtime 1.2 behandeld.

De belangrijkste onderdelen van Runtime 1.2 zijn:

  • Apache Spark 3.4.1
  • Besturingssysteem: Mariner 2.0
  • Java: 11
  • Scala: 2.12.17
  • Python: 3.10
  • Delta Lake: 2.4.0
  • R: 4.2.2

Tip

Gebruik altijd de meest recente ga-runtimeversie voor uw productieworkload, die momenteel Runtime 1.3 is.

Schermopname die laat zien waar runtimeversie moet worden geselecteerd.

Microsoft Fabric Runtime 1.2 wordt geleverd met een verzameling standaardpakketten op niveau, waaronder een volledige Anaconda-installatie en veelgebruikte bibliotheken voor Java/Scala, Python en R. Deze bibliotheken worden automatisch opgenomen bij het gebruik van notebooks of taken in het Microsoft Fabric-platform. Raadpleeg de documentatie voor een volledige lijst met bibliotheken. Microsoft Fabric implementeert regelmatig onderhoudsupdates voor Runtime 1.2, met oplossingen voor fouten, prestatieverbeteringen en beveiligingspatches. Up-to-date blijven zorgt voor optimale prestaties en betrouwbaarheid voor uw gegevensverwerkingstaken.

Nieuwe functies en verbeteringen van Spark Release 3.4.1

Apache Spark 3.4.0 is de vijfde release op de 3.x-regel. Deze release, gedreven door de opensource-community, heeft meer dan 2.600 Jira-tickets opgelost. Het introduceert een Python-client voor Spark Connect, verbetert Structured Streaming met asynchrone voortgangstracering en Stateful Verwerking van Python. Het breidt de Pandas API-dekking uit met ondersteuning voor NumPy-invoer, vereenvoudigt de migratie van traditionele datawarehouses via ANSI-naleving en nieuwe ingebouwde functies. Het verbetert ook de productiviteit en foutopsporing van de ontwikkeling met geheugenprofilering. Daarnaast is Runtime 1.2 gebaseerd op Apache Spark 3.4.1, een onderhoudsrelease gericht op stabiliteitsoplossingen.

Belangrijke hoogtepunten

Lees de volledige versie van de releaseopmerkingen voor een specifieke Apache Spark-versie door zowel Spark 3.4.0 als Spark 3.4.1 te bezoeken.

Nieuwe aangepaste queryoptimalisaties

Ondersteuning voor gelijktijdige schrijfbewerkingen in Spark

Er treedt een 404-fout op met het bericht 'Bewerking is mislukt: het opgegeven pad bestaat niet' is een veelvoorkomend probleem bij het uitvoeren van parallelle gegevensinvoegingen in dezelfde tabel met behulp van een SQL INSERT INTO-query. Deze fout kan leiden tot gegevensverlies. Onze nieuwe functie, het committer-algoritme voor bestandsuitvoer, lost dit probleem op, zodat klanten naadloos parallelle gegevensinvoeging kunnen uitvoeren.

Voor toegang tot deze functie schakelt u de spark.sql.enable.concurrentWrites functievlag in, die standaard is ingeschakeld vanaf Runtime 1.2 (Spark 3.4). Hoewel deze functie ook beschikbaar is in andere Spark 3-versies, is deze functie niet standaard ingeschakeld. Deze functie biedt geen ondersteuning voor parallelle uitvoering van INSERT OVERWRITE-query's waarbij elke gelijktijdige taak gegevens overschrijft op verschillende partities van dezelfde tabel dynamisch. Voor dit doel biedt Spark een alternatieve functie, die kan worden geactiveerd door de spark.sql.sources.partitionOverwriteMode instelling dynamisch te configureren.

Slimme leesbewerkingen, waarmee bestanden van mislukte taken worden overgeslagen

Wanneer een invoeging in een tabeltaak mislukt in het huidige Spark-doorvoersysteem, maar sommige taken slagen, bestaan de bestanden die door de geslaagde taken worden gegenereerd, samen met bestanden van de mislukte taak. Deze co-existentie kan verwarring veroorzaken voor gebruikers omdat het lastig wordt om onderscheid te maken tussen bestanden die tot succesvolle en mislukte taken behoren. Bovendien heeft de leestaak mogelijk toegang tot niet-doorgevoerde gegevens wanneer een taak uit een tabel leest terwijl een andere taak gelijktijdig gegevens in dezelfde tabel invoegt. Als een schrijftaak mislukt, kan de leestaak onjuiste gegevens verwerken.

De spark.sql.auto.cleanup.enabled vlag bepaalt onze nieuwe functie, waarmee dit probleem wordt opgelost. Wanneer deze optie is ingeschakeld, slaat Spark automatisch het lezen van bestanden over die niet zijn doorgevoerd tijdens het uitvoeren spark.read of selecteren van query's uit een tabel. Bestanden die zijn geschreven voordat deze functie wordt ingeschakeld, blijven gewoon gelezen.

Dit zijn de zichtbare wijzigingen:

  • Alle bestanden bevatten nu een tid-{jobID} id in hun bestandsnamen.
  • In plaats van de _success markering die doorgaans op de uitvoerlocatie is gemaakt nadat de taak is voltooid, wordt er een nieuwe _committed_{jobID} markering gegenereerd. Deze markering koppelt geslaagde taak-id's aan specifieke bestandsnamen.
  • We hebben een nieuwe SQL-opdracht geïntroduceerd die gebruikers periodiek kunnen uitvoeren om opslag te beheren en niet-doorgevoerde bestanden op te schonen. De syntaxis voor deze opdracht is als volgt:
    • Een specifieke map opschonen: CLEANUP ('/path/to/dir') [RETAIN number HOURS];
    • Een specifieke tabel opschonen: CLEANUP [db_name.]table_name [RETAIN number HOURS]; In deze syntaxis path/to/dir vertegenwoordigt u de locatie-URI waar opschoning is vereist en number is dit een dubbele waarde die de bewaarperiode vertegenwoordigt. De standaardretentieperiode is ingesteld op zeven dagen.
  • We hebben een nieuwe configuratieoptie geïntroduceerd met de naam spark.sql.deleteUncommittedFilesWhileListing, die standaard is ingesteld op false . Als u deze optie inschakelt, resulteert dit in het automatisch verwijderen van niet-doorgevoerde bestanden tijdens leesbewerkingen, maar dit scenario kan leesbewerkingen vertragen. Het is raadzaam om de opschoonopdracht handmatig uit te voeren wanneer het cluster inactief is in plaats van deze vlag in te schakelen.

Migratiehandleiding van Runtime 1.1 naar Runtime 1.2

Wanneer u migreert van Runtime 1.1, mogelijk gemaakt door Apache Spark 3.3, naar Runtime 1.2, mogelijk gemaakt door Apache Spark 3.4, raadpleegt u de officiële migratiehandleiding.

Nieuwe functies en verbeteringen van Delta Lake 2.4

Delta Lake is een opensource-project waarmee u een lakehouse-architectuur op data lakes kunt bouwen. Delta Lake biedt ACID-transacties, schaalbare verwerking van metagegevens en unifies streaming en batchgegevensverwerking boven op bestaande data lakes.

Delta Lake biedt met name het volgende:

  • ACID-transacties op Spark: Serialiseerbare isolatieniveaus zorgen ervoor dat lezers nooit inconsistente gegevens zien.
  • Schaalbare verwerking van metagegevens: maakt gebruik van gedistribueerde Spark-verwerkingskracht om alle metagegevens voor petabyte-schaaltabellen met miljarden bestanden op hun gemak te verwerken.
  • Streaming en batch-eenwording : een tabel in Delta Lake is een batchtabel en een streamingbron en sink. Streaminggegevensopname, batch historische backfill, interactieve query's werken allemaal uit de doos.
  • Schema afdwingen: hiermee worden schemavariaties automatisch verwerkt om invoeging van ongeldige records tijdens opname te voorkomen.
  • Tijdreizen: Met gegevensversiebeheer kunt u terugdraaien, volledige historische audittrails en reproduceerbare machine learning-experimenten uitvoeren.
  • Upserts en verwijderingen: ondersteunt bewerkingen voor samenvoegen, bijwerken en verwijderen om complexe gebruiksvoorbeelden mogelijk te maken, zoals change-data-capture, langzaam veranderende dimensiebewerkingen, streaming-upserts, enzovoort.

Lees de volledige versie van de releaseopmerkingen voor Delta Lake 2.4.

Standaardniveaupakketten voor Java-, Scala-, Python-bibliotheken

Zie de releaseopmerkingen voor een lijst met alle standaardniveaupakketten voor Java, Scala, Python en hun respectieve versies.