Felsöka användardefinierad C#-kod för misslyckade U-SQL-jobb

Viktigt

Azure Data Lake Analytics drog sig tillbaka den 29 februari 2024. Läs mer med det här meddelandet.

För dataanalys kan din organisation använda Azure Synapse Analytics eller Microsoft Fabric.

U-SQL tillhandahåller en utökningsmodell med hjälp av C#. I U-SQL-skript är det enkelt att anropa C#-funktioner och utföra analysfunktioner som SQL-liknande deklarativt språk inte stöder. Mer information om utökningsbarhet för U-SQL finns i U-SQL-programmeringsguiden.

I praktiken kan all kod behöva felsökas, men det är svårt att felsöka ett distribuerat jobb med anpassad kod i molnet med begränsade loggfiler. Azure Data Lake Tools för Visual Studio innehåller en funktion med namnet Failed Vertex Debug , som hjälper dig att enklare felsöka de fel som uppstår i din anpassade kod. När U-SQL-jobbet misslyckas behåller tjänsten feltillståndet och verktyget hjälper dig att ladda ned molnfelmiljön till den lokala datorn för felsökning. Den lokala nedladdningen samlar in hela molnmiljön, inklusive indata och användarkod.

Följande video visar Felsökning av misslyckat hörn i Azure Data Lake Tools för Visual Studio.

Viktigt

Visual Studio kräver följande två uppdateringar för att använda den här funktionen: Microsoft Visual C++ 2015 Redistributable Update 3 och Universal C Runtime för Windows.

Det gick inte att ladda ned hörn till den lokala datorn

När du öppnar ett misslyckat jobb i Azure Data Lake Tools för Visual Studio visas ett gult varningsfält med detaljerade felmeddelanden på felfliken.

  1. Välj Ladda ned för att ladda ned alla nödvändiga resurser och indataströmmar. Om nedladdningen inte slutförs väljer du Försök igen.

  2. Välj Öppna när nedladdningen har slutförts för att generera en lokal felsökningsmiljö. En ny felsökningslösning öppnas och om du har en befintlig lösning öppen i Visual Studio måste du spara och stänga den innan du felsöker.

Skärmbild av ett Data Lake Analytics jobb i USQL med knappen Ladda ned markerad.

Konfigurera felsökningsmiljön

Anteckning

Kontrollera Common Language Runtime-undantag i fönstret Undantagsinställningar innan du felsöker (Ctrl + Alt + E).

Skärmbild av den användardefinierade C#-källkoden som visar undantagsinställningarna med Common Language Runtime Exceptions set.

I den nya lanserade Visual Studio-instansen kanske du hittar den användardefinierade C#-källkoden:

  1. Jag hittar min källkod i lösningen

  2. Jag hittar inte källkoden i lösningen

Källkod ingår i felsökningslösningen

Det finns två fall där C#-källkoden samlas in:

  1. Användarkoden definieras i kod bakom filen (vanligtvis namngiven Script.usql.cs i ett U-SQL-projekt).

  2. Användarkoden definieras i C#-klassbiblioteksprojektet för U-SQL-programmet och registreras som sammansättning med felsökningsinformation.

Om källkoden importeras till lösningen kan du använda felsökningsverktygen i Visual Studio (watch, variabler osv.) för att felsöka problemet:

  1. Starta felsökningen genom att trycka på F5. Koden körs tills den stoppas av ett undantag.

  2. Öppna källkodsfilen och ange brytpunkter och tryck sedan på F5 för att felsöka koden steg för steg.

    Skärmbild av användardefinierad kod med en brytpunktsuppsättning som visar ett undantag på den markerade raden.

Källkod ingår inte i felsökningslösningen

Om användarkoden inte ingår i filen bakom koden eller om du inte registrerade sammansättningen med felsökningsinformation, inkluderas inte källkoden automatiskt i felsökningslösningen. I det här fallet behöver du extra steg för att lägga till källkoden:

  1. Högerklicka på Lösningen "VertexDebug" > Lägg till > befintligt projekt... för att hitta sammansättningens källkod och lägga till projektet i felsökningslösningen.

    Skärmbild av lösningsutforskaren i Visual Studio som visar vertexDebug-lösningen.

  2. Hämta sökvägen till projektmappen för FailedVertexDebugHost-projektet .

  3. Right-Click det tillagda projektet > Egenskaper för sammansättningskällan väljer du fliken Skapa till vänster och klistrar in den kopierade sökvägen som slutar med \bin\debug som utdatasökväg>. Den slutliga utdatasökvägen är som <DataLakeTemp path>\fd91dd21-776e-4729-a78b-81ad85a4fba6\loiu0t1y.mfo\FailedVertexDebug\FailedVertexDebugHost\bin\Debug\.

    Skärmbild av byggfliken i Visual Studio Code med den utgående sökvägen markerad under Utdata.

Efter de här inställningarna börjar du felsöka med F5 och brytpunkter. Du kan också använda felsökningsverktygen i Visual Studio (watch, variabler osv.) för att felsöka problemet.

Anteckning

Återskapa sammansättningens källkodsprojekt varje gång när du har modifierat koden för att generera uppdaterade .pdb-filer.

Skicka jobbet igen

När du har felsökt visar utdatafönstret följande meddelande om projektet har slutförts:

The Program 'LocalVertexHost.exe' has exited with code 0 (0x0).

Skärmbild av utdatafönstret med slutföranderaden markerad.

Skicka det misslyckade jobbet igen:

  1. För jobb med bakomliggande lösningar kopierar du C#-koden till källkodsfilen (vanligtvis Script.usql.cs).

  2. För jobb med sammansättningar högerklickar du på sammansättningens källkodsprojekt i felsökningslösningen och registrerar de uppdaterade .dll sammansättningarna i Azure Data Lake-katalogen.

  3. Skicka U-SQL-jobbet igen.

Nästa steg