Fouten opsporen in door de gebruiker gedefinieerde C#-code voor mislukte U-SQL-taken
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.
U-SQL biedt een uitbreidbaarheidsmodel met behulp van C#. In U-SQL-scripts is het eenvoudig om C#-functies aan te roepen en analytische functies uit te voeren die niet door SQL-achtige declaratieve taal worden ondersteund. Zie de handleiding voor programmeerbaarheid van U-SQL voor meer informatie over U-SQL-uitbreidbaarheid.
In de praktijk kan voor elke code foutopsporing nodig zijn, maar het is moeilijk om fouten op te sporen in een gedistribueerde taak met aangepaste code in de cloud met beperkte logboekbestanden. Azure Data Lake Tools voor Visual Studio biedt een functie met de naam Mislukte vertex-foutopsporing, waarmee u eenvoudiger fouten in uw aangepaste code kunt opsporen. Wanneer de U-SQL-taak mislukt, behoudt de service de foutstatus en helpt het hulpprogramma u de omgeving met cloudfouten te downloaden naar de lokale computer voor foutopsporing. De lokale download legt de volledige cloudomgeving vast, inclusief eventuele invoergegevens en gebruikerscode.
In de volgende video ziet u mislukte foutopsporing in Azure Data Lake Tools voor Visual Studio.
Belangrijk
Visual Studio vereist de volgende twee updates voor het gebruik van deze functie: Microsoft Visual C++ 2015 Redistributable Update 3 en de Universal C Runtime voor Windows.
Kan het hoekpunt niet downloaden naar de lokale computer
Wanneer u een mislukte taak opent in Azure Data Lake Tools voor Visual Studio, ziet u een gele waarschuwingsbalk met gedetailleerde foutberichten op het fouttabblad.
Selecteer Downloaden om alle vereiste resources en invoerstromen te downloaden. Als het downloaden niet is voltooid, selecteert u Opnieuw proberen.
Selecteer Openen nadat het downloaden is voltooid om een lokale foutopsporingsomgeving te genereren. Er wordt een nieuwe oplossing voor foutopsporing geopend. Als u een bestaande oplossing hebt geopend in Visual Studio, moet u deze opslaan en sluiten voordat u fouten gaat opsporen.
De foutopsporingsomgeving configureren
Notitie
Voordat u fouten gaat opsporen, controleert u Common Language Runtime Exceptions in het venster Uitzonderingsinstellingen (Ctrl + Alt + E).
In het nieuw gestarte Visual Studio-exemplaar kunt u de door de gebruiker gedefinieerde C#-broncode al dan niet vinden:
Broncode is opgenomen in de foutopsporingsoplossing
Er zijn twee gevallen dat de C#-broncode wordt vastgelegd:
De gebruikerscode wordt gedefinieerd in het code-behind-bestand (meestal genoemd
Script.usql.cs
in een U-SQL-project).De gebruikerscode wordt gedefinieerd in het C#-klassebibliotheekproject voor de U-SQL-toepassing en geregistreerd als assembly met foutopsporingsgegevens.
Als de broncode wordt geïmporteerd in de oplossing, kunt u de hulpprogramma's voor foutopsporing van Visual Studio (watch, variabelen, enzovoort) gebruiken om het probleem op te lossen:
Druk op F5 om de foutopsporing te starten. De code wordt uitgevoerd totdat deze wordt gestopt door een uitzondering.
Open het broncodebestand en stel onderbrekingspunten in en druk vervolgens op F5 om stap voor stap fouten in de code op te sporen.
Broncode is niet opgenomen in de foutopsporingsoplossing
Als de gebruikerscode niet is opgenomen in het code-behind-bestand of als u de assembly niet hebt geregistreerd met foutopsporingsgegevens, wordt de broncode niet automatisch opgenomen in de foutopsporingsoplossing. In dit geval hebt u extra stappen nodig om uw broncode toe te voegen:
Klik met de rechtermuisknop op Oplossing 'VertexDebug' > Bestaand project toevoegen > ... om de broncode van de assembly te zoeken en het project toe te voegen aan de foutopsporingsoplossing.
Haal het pad naar de projectmap op voor het project FailedVertexDebugHost .
Right-Click eigenschappen van het toegevoegde assemblybroncodeproject>, selecteert u het tabblad Bouwen aan de linkerkant en plakt u het gekopieerde pad dat eindigt op \bin\debug als Uitvoeruitvoerpad>. Het uiteindelijke uitvoerpad is als
<DataLakeTemp path>\fd91dd21-776e-4729-a78b-81ad85a4fba6\loiu0t1y.mfo\FailedVertexDebug\FailedVertexDebugHost\bin\Debug\
volgt.
Na deze instellingen begint u met foutopsporing met F5 en onderbrekingspunten. U kunt ook de hulpprogramma's voor foutopsporing van Visual Studio (watch, variabelen, enzovoort) gebruiken om het probleem op te lossen.
Notitie
Bouw het broncodeproject van de assembly telkens opnieuw op nadat u de code hebt gewijzigd om bijgewerkte PDB-bestanden te genereren.
De taak opnieuw indienen
Als het project na foutopsporing is voltooid, wordt in het uitvoervenster het volgende bericht weergegeven:
The Program 'LocalVertexHost.exe' has exited with code 0 (0x0).
De mislukte taak opnieuw indienen:
Voor taken met oplossingen achter code kopieert u de C#-code naar het code-behind-bronbestand (meestal
Script.usql.cs
).Voor taken met assembly's klikt u met de rechtermuisknop op het broncodeproject voor assembly's in de oplossing voor foutopsporing en registreert u de bijgewerkte .dll assembly's in uw Azure Data Lake-catalogus.
Verzend de U-SQL-taak opnieuw.
Volgende stappen
- Handleiding voor programmeren met U-SQL
- Door de gebruiker gedefinieerde U-SQL-operators ontwikkelen voor Azure Data Lake Analytics-taken
- U-SQL-taken testen en controleren op fouten met behulp van lokale uitvoering en de Azure Data Lake U-SQL-SDK
- Problemen met een abnormale terugkerende taak oplossen