Sdílet prostřednictvím


Ladění uživatelem definovaného kódu jazyka C# pro neúspěšné úlohy U-SQL

Důležité

Azure Data Lake Analytics vyřazena 29. února 2024. Další informace najdete v tomto oznámení.

Pro analýzu dat může vaše organizace používat Azure Synapse Analytics nebo Microsoft Fabric.

U-SQL poskytuje model rozšiřitelnosti pomocí jazyka C#. Ve skriptech U-SQL je snadné volat funkce jazyka C# a provádět analytické funkce, které deklarativní jazyk podobný SQL nepodporuje. Další informace o rozšiřitelnosti U-SQL najdete v průvodci programovatelností U-SQL.

V praxi může každý kód vyžadovat ladění, ale je obtížné ladit distribuovanou úlohu s vlastním kódem v cloudu s omezenými soubory protokolu. Nástroje Azure Data Lake pro Visual Studio poskytuje funkci s názvem Failed Vertex Debug,která vám pomůže snadněji ladit chyby, ke kterým dochází ve vlastním kódu. Když úloha U-SQL selže, služba zachová stav selhání a nástroj vám pomůže stáhnout prostředí cloudového selhání do místního počítače pro účely ladění. Místní stahování zachycuje celé cloudové prostředí, včetně všech vstupních dat a uživatelského kódu.

Následující video ukazuje neúspěšné ladění vrcholů v Nástroje Azure Data Lake pro Visual Studio.

Důležité

Visual Studio vyžaduje pro použití této funkce následující dvě aktualizace: Microsoft Visual C++ 2015 Redistributable Update 3 a Universal C Runtime pro Windows.

Stažení neúspěšného vrcholu do místního počítače

Když v Nástroje Azure Data Lake pro Visual Studio otevřete neúspěšnou úlohu, zobrazí se na kartě chyby žlutý panel upozornění s podrobnými chybovými zprávami.

  1. Vyberte Stáhnout a stáhněte si všechny požadované prostředky a vstupní streamy. Pokud se stahování nedokončí, vyberte Opakovat.

  2. Po dokončení stahování vyberte Otevřít a vygenerujte místní ladicí prostředí. Otevře se nové řešení ladění, a pokud máte existující řešení otevřené v sadě Visual Studio, nezapomeňte ho před laděním uložit a zavřít.

Snímek obrazovky s úlohou Data Lake Analytics v USQL se zvýrazněným tlačítkem Stáhnout

Konfigurace prostředí ladění

Poznámka

Před laděním zkontrolujte výjimky modulu Common Language Runtime v okně Nastavení výjimek (Ctrl + Alt + E).

Snímek obrazovky se zdrojovým kódem jazyka C# definovaným uživatelem, který zobrazuje nastavení výjimek s nastavenými výjimkami modulu Common Language Runtime

V nově spuštěné instanci sady Visual Studio můžete nebo nemusíte najít zdrojový kód jazyka C# definovaný uživatelem:

  1. V řešení najdu zdrojový kód.

  2. Nemůžu najít zdrojový kód v řešení

Zdrojový kód je součástí řešení ladění.

Zdrojový kód jazyka C# je zaznamenán ve dvou případech:

  1. Uživatelský kód je definován v souboru kódu na pozadí (obvykle pojmenovaný Script.usql.cs v projektu U-SQL).

  2. Uživatelský kód je definován v projektu knihovny tříd jazyka C# pro aplikaci U-SQL a zaregistrován jako sestavení s informacemi o ladění.

Pokud se zdrojový kód importuje do řešení, můžete k řešení problému použít ladicí nástroje sady Visual Studio (watch, proměnné atd.):

  1. Stisknutím klávesy F5 spusťte ladění. Kód se spustí, dokud ho nezastaví výjimka.

  2. Otevřete soubor zdrojového kódu a nastavte zarážky a stisknutím klávesy F5 kód krok za krokem vylaďte.

    Snímek obrazovky uživatelem definovaného kódu se sadou zarážek, který zobrazuje výjimku na zvýrazněné čáře

Zdrojový kód není součástí řešení ladění.

Pokud uživatelský kód není součástí souboru s kódem na pozadí nebo jste nezaregistrovali sestavení s informacemi o ladění, zdrojový kód se automaticky nezahrne do řešení ladění. V takovém případě potřebujete další kroky k přidání zdrojového kódu:

  1. Klikněte pravým tlačítkem na Řešení VertexDebug > Přidat > existující projekt... a vyhledejte zdrojový kód sestavení a přidejte projekt do řešení ladění.

    Snímek obrazovky Průzkumníka řešení v sadě Visual Studio s řešením VertexDebug

  2. Získejte cestu ke složce projektu FailedVertexDebugHost .

  3. Right-Click vlastnosti přidaného projektu > zdrojového kódu sestavení vyberte vlevo kartu Sestavení a vložte zkopírovanou cestu končící na \bin\debug jako výstupní cestu výstupu>. Konečná výstupní cesta je podobná <DataLakeTemp path>\fd91dd21-776e-4729-a78b-81ad85a4fba6\loiu0t1y.mfo\FailedVertexDebug\FailedVertexDebugHost\bin\Debug\.

    Snímek obrazovky s kartou sestavení v editoru Visual Studio Code a zvýrazněnou odchozí cestou v části Výstup

Po těchto nastaveních spusťte ladění pomocí F5 a zarážek. K řešení problému můžete také použít ladicí nástroje sady Visual Studio (watch, proměnné atd.).

Poznámka

Znovu sestavte projekt zdrojového kódu sestavení pokaždé po úpravě kódu tak, aby se vygenerovaly aktualizované soubory .pdb.

Opětovné odeslání úlohy

Pokud se po ladění projekt úspěšně dokončí, okno výstupu zobrazí následující zprávu:

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

Snímek obrazovky s výstupním oknem se zvýrazněným řádkem dokončení

Opětovné odeslání neúspěšné úlohy:

  1. V případě úloh s řešením s kódem na pozadí zkopírujte kód jazyka C# do zdrojového souboru kódu na pozadí (obvykle Script.usql.cs).

  2. U úloh se sestaveními klikněte pravým tlačítkem na projekt zdrojového kódu sestavení v řešení ladění a zaregistrujte aktualizovaná sestavení .dll do katalogu Azure Data Lake.

  3. Znovu odešlete úlohu U-SQL.

Další kroky