Eseguire il debug del codice C# definito dall'utente per i processi U-SQL non riusciti
Importante
Azure Data Lake Analytics ritirato il 29 febbraio 2024. Altre informazioni con questo annuncio.
Per l'analisi dei dati, l'organizzazione può usare Azure Synapse Analytics o Microsoft Fabric.
U-SQL fornisce un modello di estendibilità che usa C#. Negli script U-SQL è facile chiamare funzioni C# ed eseguire funzioni di analisi che il linguaggio dichiarativo come SQL non supporta. Per altre informazioni sull'estendibilità di U-SQL, vedere Guida alla programmabilità di U-SQL.
In pratica, qualsiasi codice potrebbe richiedere il debug, ma è difficile eseguire il debug di un processo distribuito con codice personalizzato nel cloud con file di log limitati. Strumenti Azure Data Lake per Visual Studio include una funzionalità denominata debug del vertice con errore, che consente di eseguire più facilmente il debug degli errori che si verificano nel codice personalizzato. Quando il processo U-SQL non riesce, il servizio mantiene lo stato di errore e lo strumento consente di scaricare l'ambiente dell'errore cloud nel computer locale per il debug. Il download locale acquisisce tutto l'ambiente cloud, inclusi eventuali dati di input e il codice utente.
Nel video seguente viene illustrata la funzione Debug del vertice con errore in Strumenti Azure Data Lake per Visual Studio.
Importante
Visual Studio richiede i due aggiornamenti seguenti per usare questa funzionalità: Aggiornamento di Microsoft Visual C++ 2015 Redistributable 3 e Universal C Runtime per Windows.
Scaricare il vertice con errori nel computer locale
Quando si apre un processo non riuscito in Strumenti Azure Data Lake per Visual Studio, viene visualizzata una barra di avviso gialla con messaggi di errore dettagliati nella scheda errore.
Selezionare Scarica per scaricare tutte le risorse e i flussi di input necessari. Se il download non viene completato, selezionare Riprova.
Selezionare Apri al termine del download per generare un ambiente di debug locale. Verrà aperta una nuova soluzione di debug e se si ha una soluzione esistente aperta in Visual Studio, assicurarsi di salvarla e chiuderla prima del debug.
Configurare l'ambiente di debug
Nota
Prima del debug, assicurarsi di selezionare le Common Language Runtime Exceptions (Eccezioni di Common Language Runtime) nella finestra Impostazioni eccezioni (CTRL + ALT + E).
Nella nuova istanza di Visual Studio avviata potrebbe essere possibile o meno trovare il codice sorgente C# definito dall'utente:
Il codice sorgente è incluso nella soluzione di debug
Il codice sorgente C# viene acquisito in due casi:
Il codice utente viene definito nel file code-behind (in genere denominato
Script.usql.cs
in un progetto U-SQL).Il codice utente viene definito nel progetto di tipo libreria di classi C# per l'applicazione U-SQL e registrato come assembly con le informazioni di debug.
Se il codice sorgente viene importato nella soluzione, è possibile usare gli strumenti di debug di Visual Studio, come espressioni di controllo, variabili e così via, per risolvere il problema:
Premere F5 per avviare il debug. Il codice viene eseguito fino a quando non viene arrestato da un'eccezione.
Aprire il file del codice sorgente e impostare i punti di interruzione, quindi premere F5 per eseguire nel dettaglio il debug del codice.
Il codice sorgente non è incluso nella soluzione di debug
Se il codice utente non è incluso nel file code-behind o non è stato registrato l'assembly con informazioni di debug, il codice sorgente non viene incluso automaticamente nella soluzione di debug. In questo caso sono necessari passaggi aggiuntivi per aggiungere il codice sorgente:
Fare clic con il pulsante destro del mouse su Soluzione 'VertexDebug' > Aggiungi > progetto esistente... per trovare il codice sorgente dell'assembly e aggiungere il progetto alla soluzione di debug.
Ottenere il percorso della cartella del progetto FailedVertexDebugHost.
Right-Click il progetto > di codice sorgente dell'assembly aggiunto, selezionare la scheda Compila a sinistra e incollare il percorso copiato che termina con \bin\debug come percorso output di output>. Il percorso di output finale è simile
<DataLakeTemp path>\fd91dd21-776e-4729-a78b-81ad85a4fba6\loiu0t1y.mfo\FailedVertexDebug\FailedVertexDebugHost\bin\Debug\
a .
Dopo queste impostazioni, avviare il debug con F5 e i punti di interruzione. È anche possibile usare gli strumenti di debug di Visual Studio, come espressioni di controllo, variabili e così via, per risolvere il problema.
Nota
Ricreare il progetto di codice sorgente assembly dopo ogni modifica al codice per generare i file con estensione PDB aggiornati.
Inviare di nuovo il processo
Dopo il debug, se il progetto viene completato correttamente la finestra di output mostra il messaggio seguente:
The Program 'LocalVertexHost.exe' has exited with code 0 (0x0).
Per inviare di nuovo il processo non riuscito:
Per i processi con soluzioni code-behind, copiare il codice C# nel file di origine code-behind, in genere
Script.usql.cs
.Per i processi con assembly, fare clic con il pulsante destro del mouse sul progetto di codice sorgente degli assembly nella soluzione di debug e registrare gli assembly DLL aggiornati nel catalogo di Azure Data Lake.
Inviare nuovamente il processo U-SQL.