Share via


Meer informatie over het oplossen van U-SQL-runtimefouten als gevolg van runtimewijzigingen

Belangrijk

Azure Data Lake Analytics op 29 februari 2024 buiten gebruik gesteld. Meer informatie over deze aankondiging.

Voor gegevensanalyse kan uw organisatie gebruikmaken van Azure Synapse Analytics of Microsoft Fabric.

De Azure Data Lake U-SQL-runtime, met inbegrip van compiler, optimizer en taakbeheer, is datgene waarmee uw U-SQL-code wordt verwerkt.

Uw U-SQL-runtimeversie kiezen

Wanneer u U-SQL-taken verzendt vanuit Visual Studio, de ADL SDK of de Azure Data Lake Analytics-portal, gebruikt uw taak de momenteel beschikbare standaardruntime. Nieuwe versies van de U-SQL-runtime worden regelmatig uitgebracht en bevatten zowel kleine updates als beveiligingspatches.

U kunt ook een aangepaste runtimeversie kiezen; omdat u een nieuwe update wilt uitproberen, een oudere versie van een runtime wilt blijven gebruiken of een hotfix hebt voor een gemeld probleem waarbij u niet kunt wachten op de reguliere nieuwe update.

Waarschuwing

Als u een runtime kiest die verschilt van de standaardinstelling, kunt u uw U-SQL-taken onderbreken. Gebruik deze andere versies alleen om te testen.

In zeldzame gevallen kunt Microsoft Ondersteuning een andere versie van een runtime vastmaken als de standaardversie voor uw account. Zorg ervoor dat u deze pin zo snel mogelijk terugdraait. Als u vastgemaakt blijft aan die versie, verloopt deze op een later tijdstip.

De U-SQL-runtimeversie van uw taken bewaken

U kunt de geschiedenis bekijken van welke runtimeversie uw eerdere taken hebben gebruikt in de taakgeschiedenis van uw account via de taakbrowser van Visual Studio of de taakgeschiedenis van de Azure Portal.

  1. Ga in de Azure Portal naar uw Data Lake Analytics-account.
  2. Selecteer Alle taken weergeven. Er wordt een lijst met alle actieve en onlangs voltooide taken in het account weergegeven.
  3. Selecteer eventueel Filter om de taken te vinden op basis van tijdsbereik, taaknaam en auteurwaarden .
  4. U kunt de runtime zien die wordt gebruikt in de voltooide taken.

De runtimeversie van een eerdere taak weergeven

De beschikbare runtimeversies veranderen in de loop van de tijd. De standaardruntime wordt altijd 'standaard' genoemd en we houden ten minste de vorige runtime enige tijd beschikbaar en maken om verschillende redenen speciale runtimes beschikbaar. Expliciet benoemde runtimes volgen over het algemeen de volgende indeling (cursief worden gebruikt voor variabele onderdelen en [] geeft optionele onderdelen aan):

release_YYYYMMDD_adl_buildno[_modifier]

release_20190318_adl_3394512_2 betekent bijvoorbeeld de tweede versie van de build 3394512 van de runtime-release van 18 maart 2019 en release_20190318_adl_3394512_private betekent een privé-build van dezelfde release. Opmerking: De datum is gerelateerd aan wanneer de laatste check-in is genomen voor die release en niet noodzakelijkerwijs de officiële releasedatum.

Problemen met de U-SQL-runtimeversie oplossen

Er zijn twee mogelijke problemen met de runtime-versie:

  1. Een script of bepaalde gebruikerscode verandert het gedrag van de ene versie naar de andere. Dergelijke wijzigingen die fouten veroorzaken, worden normaal gesproken van tevoren gecommuniceerd met de publicatie van releaseopmerkingen. Als u een dergelijke wijziging tegenkomt die fouten veroorzaakt, neemt u contact op met Microsoft Ondersteuning om dit gedrag te melden (voor het geval dit nog niet is gedocumenteerd) en uw taken in te dienen voor de oudere runtimeversie.

  2. U hebt expliciet of impliciet een niet-standaardruntime gebruikt wanneer deze is vastgemaakt aan uw account en die runtime na enige tijd is verwijderd. Als u ontbrekende runtimes tegenkomt, voert u een upgrade van uw scripts uit om deze uit te voeren met de huidige standaardruntime. Neem contact op met Microsoft Ondersteuning als u meer tijd nodig hebt

Bekende problemen

  1. Als u verwijst naar Newtonsoft.Json-bestand versie 12.0.3 of hoger in een USQL-script, wordt de volgende compilatiefout veroorzaakt:

    "Het spijt ons; taken die in uw Data Lake Analytics-account worden uitgevoerd, worden waarschijnlijk langzamer uitgevoerd of kunnen niet worden voltooid. Vanwege een onverwacht probleem kunnen we deze functionaliteit niet automatisch herstellen naar uw Azure Data Lake Analytics-account. Er is contact opgenomen met technici van Azure Data Lake om dit te onderzoeken.

    Waar de aanroepstack het volgende bevat:
    System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Roslyn.Compilers.MetadataReader.PEFile.CustomAttributeTableReader.get_Item(UInt32 rowId)
    ...

    Oplossing: Gebruik het newtonsoft.Json-bestand v12.0.2 of lager.

  2. Klanten zien mogelijk tijdelijke bestanden en mappen in hun winkel. Deze worden geproduceerd als onderdeel van de normale taakuitvoering, maar worden meestal verwijderd voordat de klanten ze zien. Onder bepaalde omstandigheden, die zeldzaam en willekeurig zijn, kunnen ze zichtbaar blijven. Ze worden uiteindelijk verwijderd en worden nooit meegeteld als onderdeel van gebruikersopslag of genereren geen enkele vorm van kosten. Afhankelijk van de taaklogica van de klant kunnen ze problemen veroorzaken. Als de taak bijvoorbeeld alle bestanden in de map opsommen en vervolgens bestandslijsten vergelijkt, kan deze mislukken vanwege de onverwachte tijdelijke bestanden die aanwezig zijn. En als een downstreamtaak alle bestanden uit een bepaalde map opsommen voor verdere verwerking, kan deze ook de tijdelijke bestanden opsommen.

    Oplossing: er wordt een oplossing geïdentificeerd in de runtime, waarbij de tijdelijke bestanden worden opgeslagen in de tijdelijke map op accountniveau in plaats van de huidige uitvoermap. De tijdelijke bestanden worden in deze nieuwe tijdelijke map geschreven en worden verwijderd aan het einde van de taakuitvoering.
    Omdat deze oplossing de klantgegevens verwerkt, is het belangrijk dat deze oplossing goed wordt gevalideerd in MSFT voordat deze wordt uitgebracht. Naar verwachting is deze oplossing beschikbaar als bètaruntime halverwege jaar 2021 en als standaardruntime in de tweede helft van 2021.

Zie ook