Debugowanie kodu języka C# zdefiniowanego przez użytkownika dla nieudanych zadań U-SQL
Ważne
Usługa Azure Data Lake Analytics została wycofana 29 lutego 2024 r. Dowiedz się więcej z tym ogłoszeniem.
W przypadku analizy danych organizacja może używać Azure Synapse Analytics lub Microsoft Fabric.
Język U-SQL udostępnia model rozszerzalności przy użyciu języka C#. W skryptach U-SQL można łatwo wywoływać funkcje języka C# i wykonywać funkcje analityczne, które nie obsługują języka deklaratywnego SQL. Aby dowiedzieć się więcej na temat rozszerzalności języka U-SQL, zobacz U-SQL programmability guide (Przewodnik po programowości języka U-SQL).
W praktyce każdy kod może wymagać debugowania, ale trudno jest debugować zadanie rozproszone z kodem niestandardowym w chmurze z ograniczonymi plikami dziennika. Azure Data Lake Tools for Visual Studio udostępnia funkcję o nazwie Failed Vertex Debug (Niepowodzenie debugowania wierzchołka), która ułatwia łatwiejsze debugowanie błędów występujących w kodzie niestandardowym. Gdy zadanie U-SQL zakończy się niepowodzeniem, usługa zachowuje stan awarii, a narzędzie pomaga pobrać środowisko awarii chmury do komputera lokalnego na potrzeby debugowania. Pobieranie lokalne przechwytuje całe środowisko chmury, w tym wszelkie dane wejściowe i kod użytkownika.
W poniższym filmie wideo przedstawiono debugowanie wierzchołków niepowodzenie w Azure Data Lake Tools for Visual Studio.
Ważne
Program Visual Studio wymaga następujących dwóch aktualizacji do korzystania z tej funkcji: Microsoft Visual C++ 2015 Redistributable Update 3 i Universal C Runtime dla systemu Windows.
Pobieranie wierzchołka nie powiodło się na komputerze lokalnym
Po otwarciu zadania, które zakończyło się niepowodzeniem w Azure Data Lake Tools for Visual Studio, na karcie błędu zostanie wyświetlony żółty pasek alertów ze szczegółowymi komunikatami o błędach.
Wybierz pozycję Pobierz, aby pobrać wszystkie wymagane zasoby i strumienie wejściowe. Jeśli pobieranie nie zostanie ukończone, wybierz pozycję Ponów próbę.
Wybierz pozycję Otwórz po zakończeniu pobierania, aby wygenerować lokalne środowisko debugowania. Zostanie otwarte nowe rozwiązanie debugowania, a jeśli istniejące rozwiązanie zostało otwarte w programie Visual Studio, pamiętaj o zapisaniu i zamknięciu go przed debugowaniem.
Konfigurowanie środowiska debugowania
Uwaga
Przed debugowaniem sprawdź wyjątki środowiska uruchomieniowego języka wspólnego w oknie Ustawienia wyjątków (Ctrl + Alt + E).
W nowym uruchomionym wystąpieniu programu Visual Studio możesz lub nie można odnaleźć kodu źródłowego języka C#zdefiniowanego przez użytkownika:
Kod źródłowy jest uwzględniony w rozwiązaniu do debugowania
Istnieją dwa przypadki przechwycenia kodu źródłowego języka C#:
Kod użytkownika jest definiowany w pliku za pomocą kodu (zazwyczaj nazwany
Script.usql.cs
w projekcie U-SQL).Kod użytkownika jest zdefiniowany w projekcie biblioteki klas języka C# dla aplikacji U-SQL i zarejestrowany jako zestaw z informacjami o debugowaniu.
Jeśli kod źródłowy jest importowany do rozwiązania, możesz użyć narzędzi debugowania programu Visual Studio (watch, zmiennych itp.), aby rozwiązać ten problem:
Naciśnij klawisz F5, aby uruchomić debugowanie. Kod jest uruchamiany, dopóki nie zostanie zatrzymany przez wyjątek.
Otwórz plik kodu źródłowego i ustaw punkty przerwania, a następnie naciśnij klawisz F5 , aby debugować kod krok po kroku.
Kod źródłowy nie jest uwzględniony w rozwiązaniu do debugowania
Jeśli kod użytkownika nie jest uwzględniony w pliku za kodem lub nie zarejestrowano zestawu przy użyciu informacji debugowania, kod źródłowy nie jest uwzględniany automatycznie w rozwiązaniu do debugowania. W takim przypadku potrzebujesz dodatkowych kroków, aby dodać kod źródłowy:
Kliknij prawym przyciskiem myszy pozycję Rozwiązanie "VertexDebug" > Dodaj > istniejący projekt... w celu znalezienia kodu źródłowego zestawu i dodania projektu do rozwiązania debugowania.
Pobierz ścieżkę folderu projektu dla projektu FailedVertexDebugHost .
Right-Click dodany projekt > kodu źródłowego zestawu Właściwości, wybierz kartę Kompilacja po lewej stronie i wklej skopiowaną ścieżkę kończącą się ścieżką \bin\debug jako ścieżka danych wyjściowych>. Ostateczna ścieżka wyjściowa jest podobna do
<DataLakeTemp path>\fd91dd21-776e-4729-a78b-81ad85a4fba6\loiu0t1y.mfo\FailedVertexDebug\FailedVertexDebugHost\bin\Debug\
.
Po tych ustawieniach rozpocznij debugowanie przy użyciu klawisza F5 i punktów przerwania. Aby rozwiązać ten problem, możesz również użyć narzędzi debugowania programu Visual Studio (watch, zmiennych itp.).
Uwaga
Ponownie skompiluj projekt kodu źródłowego zestawu za każdym razem, gdy zmodyfikujesz kod w celu wygenerowania zaktualizowanych plików pdb.
Prześlij ponownie zadanie
Jeśli po debugowaniu projekt zakończy się pomyślnie, w oknie danych wyjściowych zostanie wyświetlony następujący komunikat:
The Program 'LocalVertexHost.exe' has exited with code 0 (0x0).
Aby ponownie przesłać zadanie, które zakończyło się niepowodzeniem:
W przypadku zadań z rozwiązaniami opartymi na kodzie skopiuj kod C# do pliku źródłowego za kodem (zazwyczaj
Script.usql.cs
).W przypadku zadań z zestawami kliknij prawym przyciskiem myszy projekt kodu źródłowego zestawu w rozwiązaniu debugowania i zarejestruj zaktualizowane zestawy .dll w katalogu usługi Azure Data Lake.
Prześlij ponownie zadanie U-SQL.
Następne kroki
- Podręcznik programowania w języku U-SQL
- Tworzenie operatorów zdefiniowanych przez użytkownika U-SQL dla zadań usługi Azure Data Lake Analytics
- Testowanie i debugowanie zadań U-SQL przy użyciu uruchamiania lokalnego i zestawu SDK U-SQL usługi Azure Data Lake
- Jak rozwiązywać problemy z nietypowym zadaniem cyklicznym