Megosztás a következőn keresztül:


Felhasználó által definiált C#-kód hibakeresése sikertelen U-SQL-feladatok esetén

Fontos

Az Azure Data Lake Analytics 2024. február 29-én megszűnt. További információ ezzel a bejelentéssel.

Az adatelemzéshez a szervezet használhatja a Azure Synapse Analyticset vagy a Microsoft Fabricet.

Az U-SQL bővíthetőségi modellt biztosít a C# használatával. U-SQL-szkriptekben egyszerűen hívhat C#-függvényeket, és olyan elemzési függvényeket hajthat végre, amelyeket az SQL-szerű deklaratív nyelv nem támogat. Az U-SQL bővíthetőségével kapcsolatos további információkért lásd: U-SQL programozhatósági útmutató.

A gyakorlatban bármely kódhoz szükség lehet hibakeresésre, de nehéz hibakeresést végezni egy olyan elosztott feladatban, amely egyéni kóddal rendelkezik a felhőben korlátozott naplófájlokkal. Az Azure Data Lake Tools for Visual Studio a Failed Vertex Debug (Sikertelen csúcspont hibakeresése) nevű funkciót nyújt, amely egyszerűbben segít az egyéni kódban előforduló hibák hibakeresésében. Ha az U-SQL-feladat meghiúsul, a szolgáltatás megőrzi a hiba állapotát, és az eszköz segít a felhőhibás környezet letöltésében a helyi gépre hibakeresés céljából. A helyi letöltés a teljes felhőkörnyezetet rögzíti, beleértve a bemeneti adatokat és a felhasználói kódot is.

Az alábbi videó a Sikertelen csúcspont hibakeresését mutatja be az Azure Data Lake Tools for Visual Studióban.

Fontos

A Visual Studio használatához a következő két frissítés szükséges: a Microsoft Visual C++ 2015 terjeszthető 3. frissítése és a Windows univerzális C-futtatókörnyezete.

Sikertelen csúcspont letöltése a helyi gépre

Amikor sikertelen feladatot nyit meg az Azure Data Lake Tools for Visual Studióban, egy sárga riasztási sáv jelenik meg, amely részletes hibaüzeneteket tartalmaz a hiba lapon.

  1. Válassza a Letöltés lehetőséget az összes szükséges erőforrás és bemeneti stream letöltéséhez. Ha a letöltés nem fejeződik be, válassza az Újra elemet.

  2. Helyi hibakeresési környezet létrehozásához válassza a Megnyitás a letöltés befejezése után lehetőséget. Ekkor megnyílik egy új hibakeresési megoldás, és ha már megnyitotta a megoldást a Visual Studióban, a hibakeresés előtt mindenképpen mentse és zárja be.

Képernyőkép egy Data Lake Analytics feladatról az USQL-ben, kiemelve a Letöltés gombot.

A hibakeresési környezet konfigurálása

Megjegyzés

A hibakeresés előtt ellenőrizze a gyakori nyelvi futtatókörnyezeti kivételeket a Kivételbeállítások ablakban (Ctrl + Alt + E).

Képernyőkép a felhasználó által definiált C#-forráskódról, amelyen a Common Language Runtime Exceptions (Közös nyelvi futtatókörnyezeti kivételek) beállítású kivételek beállításai láthatók.

Az új elindított Visual Studio-példányban előfordulhat, hogy a felhasználó által definiált C#-forráskód nem található:

  1. Megtalálom a forráskódomat a megoldásban

  2. Nem találom a forráskódot a megoldásban

A forráskód szerepel a hibakeresési megoldásban

A C#-forráskód két esetben van rögzítve:

  1. A felhasználói kód kód mögötti fájlban van definiálva (általában egy U-SQL-projektben nevezik el Script.usql.cs ).

  2. A felhasználói kód a U-SQL-alkalmazás C# osztálykódtár-projektjében van definiálva, és hibakeresési adatokkal szerelvényként van regisztrálva.

Ha a forráskódot importálja a megoldásba, a Visual Studio hibakeresési eszközeit (watch, változókat stb.) használhatja a probléma elhárításához:

  1. Nyomja le az F5 billentyűt a hibakeresés megkezdéséhez. A kód addig fut, amíg egy kivétel le nem állította.

  2. Nyissa meg a forráskódfájlt, és állítson be töréspontokat, majd nyomja le az F5 billentyűt a kód részletes hibakereséséhez.

    A felhasználó által definiált kód képernyőképe töréspontkészlettel, amely kivételt mutat a kiemelt sorban.

A forráskód nem szerepel a hibakeresési megoldásban

Ha a felhasználói kód nem szerepel a kód mögötti fájlban, vagy nem regisztrálta a szerelvényt hibakeresési adatokkal, akkor a forráskód nem szerepel automatikusan a hibakeresési megoldásban. Ebben az esetben további lépésekre van szükség a forráskód hozzáadásához:

  1. Kattintson a jobb gombbal a "VertexDebug" > Megoldás Meglévő projekt hozzáadása > elemre a szerelvény forráskódjának megkereséséhez, és adja hozzá a projektet a hibakeresési megoldáshoz.

    Képernyőkép a Visual Studióban található megoldáskezelőről, amelyen a VertexDebug Solution látható.

  2. Kérje le a FailedVertexDebugHost projekt projektmappájának elérési útját.

  3. Right-Click a hozzáadott szerelvény forráskód projektjének > Tulajdonságai elemét, válassza a bal oldali Build lapot, és illessze be a másolt elérési utat ,bin\debug végződésű kimeneti > elérési útként. A végső kimeneti elérési út a következő: <DataLakeTemp path>\fd91dd21-776e-4729-a78b-81ad85a4fba6\loiu0t1y.mfo\FailedVertexDebug\FailedVertexDebugHost\bin\Debug\.

    Képernyőkép a Visual Studio Code Build lapjának kimenete alatt kiemelt kimenő útvonalról.

A beállítások után kezdje el a hibakeresést az F5 és a töréspontok használatával. A Visual Studio hibakeresési eszközeit (watch, változókat stb.) is használhatja a probléma elhárításához.

Megjegyzés

A kód módosítása után minden alkalommal újraépítheti a szerelvény forráskódprojektet a frissített .pdb fájlok létrehozásához.

A feladat újbóli elküldése

A hibakeresés után, ha a projekt sikeresen befejeződött, a kimeneti ablak a következő üzenetet jeleníti meg:

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

Képernyőkép a kimeneti ablakról, kiemelve a befejezési sort.

A sikertelen feladat újbóli elküldése:

  1. Kód mögötti megoldásokkal rendelkező feladatok esetén másolja a C#-kódot a kód mögötti forrásfájlba (általában Script.usql.cs).

  2. Szerelvényekkel kapcsolatos feladatok esetén kattintson a jobb gombbal a szerelvény forráskód-projektjére a hibakeresési megoldásban, és regisztrálja a frissített .dll szerelvényeket az Azure Data Lake-katalógusban.

  3. Küldje el újra az U-SQL-feladatot.

Következő lépések