Informazioni su come risolvere gli errori di runtime di U-SQL causati da modifiche di runtime

Importante

Azure Data Lake Analytics ritirato il 29 febbraio 2024. Per altre informazioni , vedere questo annuncio.

Per l'analisi dei dati, l'organizzazione può usare Azure Synapse Analytics o Microsoft Fabric.

Il runtime U-SQL di Azure Data Lake, tra cui compilatore, ottimizzatore e gestore di processi, si occupa di elaborare il codice U-SQL.

Scelta della versione del runtime U-SQL

Quando si inviano processi U-SQL da Visual Studio, ADL SDK o dal portale di Azure Data Lake Analytics, il processo userà il runtime predefinito attualmente disponibile. Le nuove versioni del runtime U-SQL vengono rilasciate regolarmente e includono aggiornamenti secondari e correzioni di sicurezza.

È anche possibile scegliere una versione di runtime personalizzata; poiché si vuole provare un nuovo aggiornamento, è necessario rimanere in una versione precedente di un runtime o fornire un hotfix per un problema segnalato in cui non è possibile attendere il nuovo aggiornamento normale.

Attenzione

La scelta di un runtime diverso da quello predefinito potrebbe interrompere i processi U-SQL. Usare queste altre versioni solo per i test.

In rari casi, supporto tecnico Microsoft può aggiungere una versione diversa di un runtime come impostazione predefinita per l'account. Assicurarsi di ripristinare il pin appena possibile. Se si rimane aggiunti a tale versione, scadrà in un secondo momento.

Monitoraggio della versione del runtime U-SQL dei processi

È possibile visualizzare la cronologia della versione di runtime usata dai processi precedenti nella cronologia dei processi dell'account tramite il browser processi di Visual Studio o la cronologia dei processi dell'portale di Azure.

  1. Nel portale di Azure accedere all'account di Data Lake Analytics.
  2. Selezionare Visualizza tutti i processi. Viene visualizzato un elenco di tutti i processi attivi e completati di recente nell'account.
  3. Facoltativamente, selezionare Filtro per trovare i processi in base ai valori Intervallo di tempo, Nome processo e Autore .
  4. È possibile visualizzare il runtime usato nei processi completati.

Visualizzazione della versione di runtime di un processo precedente

Le versioni di runtime disponibili cambiano nel tempo. Il runtime predefinito viene sempre chiamato "predefinito" e viene mantenuto almeno il runtime precedente disponibile per un certo periodo di tempo e si rendono disponibili runtime speciali per vari motivi. I runtime denominati in modo esplicito seguono in genere il formato seguente (i corsivi vengono usati per le parti variabili e [] indicano parti facoltative):

release_YYYYMMDD_adl_buildno[_modifier]

Ad esempio, release_20190318_adl_3394512_2 indica la seconda versione della build 3394512 della versione di runtime del 18 marzo 2019 e release_20190318_adl_3394512_private significa una build privata della stessa versione. Nota: la data è correlata alla data in cui è stata eseguita l'ultima archiviazione per tale versione e non necessariamente alla data di rilascio ufficiale.

Risoluzione dei problemi di versione del runtime U-SQL

Esistono due possibili problemi di versione di runtime che è possibile riscontrare:

  1. Uno script o un codice utente modifica il comportamento da una versione alla successiva. Tali modifiche di rilievo vengono in genere comunicate in anticipo con la pubblicazione delle note sulla versione. Se si verifica una modifica di rilievo, contattare supporto tecnico Microsoft per segnalare questo comportamento di interruzione (nel caso in cui non sia ancora stato documentato) e inviare i processi alla versione di runtime precedente.

  2. È stato usato un runtime non predefinito in modo esplicito o implicito quando è stato aggiunto all'account e tale runtime è stato rimosso dopo qualche tempo. Se si verificano runtime mancanti, aggiornare gli script per l'esecuzione con il runtime predefinito corrente. Se è necessario più tempo, contattare supporto tecnico Microsoft

Problemi noti

  1. Facendo riferimento al file Newtonsoft.Json versione 12.0.3 o successiva in uno script USQL si verificherà l'errore di compilazione seguente:

    "Siamo spiacenti; È probabile che i processi in esecuzione nell'account Data Lake Analytics vengano eseguiti più lentamente o non vengano completati. Un problema imprevisto impedisce di ripristinare automaticamente questa funzionalità nell'account azure Data Lake Analytics. I tecnici di Azure Data Lake sono stati contattati per indagare".

    Dove lo stack di chiamate conterrà:
    System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Roslyn.Compilers.MetadataReader.PEFile.CustomAttributeTableReader.get_Item(UInt32 rowId)
    ...

    Soluzione: usare il file Newtonsoft.Json v12.0.2 o versione precedente.

  2. I clienti potrebbero visualizzare file e cartelle temporanei nel proprio archivio. Questi vengono prodotti come parte della normale esecuzione del processo, ma vengono in genere eliminati prima che i clienti li visualizzino. In determinate circostanze, che sono rare e casuali, potrebbero rimanere visibili. Alla fine vengono eliminati e non vengono mai conteggiati come parte dell'archiviazione utente o generano qualsiasi tipo di addebito. A seconda della logica del processo dei clienti, potrebbero causare problemi. Ad esempio, se il processo enumera tutti i file nella cartella e quindi confronta gli elenchi di file, potrebbe non riuscire a causa dei file temporanei imprevisti presenti. Analogamente, se un processo downstream enumera tutti i file da una determinata cartella per un'ulteriore elaborazione, potrebbe anche enumerare i file temporanei.

    Soluzione: una correzione viene identificata nel runtime in cui i file temporanei verranno archiviati nella cartella temporanea a livello di account anziché nella cartella di output corrente. I file temporanei verranno scritti in questa nuova cartella temporanea e verranno eliminati alla fine dell'esecuzione del processo.
    Poiché questa correzione gestisce i dati dei clienti, è importante che questa correzione venga convalidata correttamente all'interno di MSFT prima del rilascio. Questa correzione dovrebbe essere disponibile come runtime beta nel corso dell'anno 2021 e come runtime predefinito nella seconda metà dell'anno 2021.

Vedi anche