Informace o řešení potíží se selháními modulu runtime U-SQL kvůli změnám modulu runtime

Důležité

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

K analýze dat může vaše organizace použít Azure Synapse Analytics nebo Microsoft Fabric.

Modul runtime Azure Data Lake U-SQL, včetně kompilátoru, optimalizátoru a správce úloh, zpracovává kód U-SQL.

Volba verze modulu runtime U-SQL

Když odesíláte úlohy U-SQL ze sady Visual Studio, sady ADL SDK nebo portálu Azure Data Lake Analytics Portal, bude vaše úloha používat aktuálně dostupný výchozí modul runtime. Pravidelně se vydávají nové verze modulu runtime U-SQL, které zahrnují dílčí aktualizace i opravy zabezpečení.

Můžete také zvolit vlastní verzi modulu runtime; Buď proto, že chcete vyzkoušet novou aktualizaci, potřebujete zůstat na starší verzi modulu runtime, nebo jste dostali opravu hotfix pro nahlášený problém, kdy nemůžete čekat na běžnou novou aktualizaci.

Upozornění

Výběr modulu runtime, který se liší od výchozího, může narušit vaše úlohy U-SQL. Tyto ostatní verze používejte pouze pro testování.

Ve výjimečných případech můžou podpora Microsoftu připnout jinou verzi modulu runtime jako výchozí pro váš účet. Ujistěte se, že tento PIN kód co nejdříve vrátíte. Pokud k této verzi zůstanete připnuti, vyprší její platnost později.

Monitorování verze modulu runtime U-SQL úloh

Historii verze modulu runtime, kterou vaše předchozí úlohy použily v historii úloh vašeho účtu, můžete zobrazit v prohlížeči úloh sady Visual Studio nebo v historii úloh Azure Portal.

  1. V Azure Portal přejděte na svůj účet Data Lake Analytics.
  2. Vyberte Zobrazit všechny úlohy. Zobrazí se seznam všech aktivních a nedávno dokončených úloh v účtu.
  3. Volitelně můžete vybrat Filtr , který vám pomůže najít úlohy podle hodnot Časový rozsah, Název úlohy a Autor .
  4. V dokončených úlohách můžete vidět použitý modul runtime.

Zobrazení verze modulu runtime minulé úlohy

Dostupné verze modulu runtime se v průběhu času mění. Výchozí modul runtime se vždy nazývá "výchozí" a po určitou dobu udržujeme k dispozici alespoň předchozí modul runtime a z různých důvodů zpřístupňujeme speciální moduly runtime. Explicitně pojmenované moduly runtime mají obecně následující formát (kurzíva se používá pro proměnné části a [] označuje volitelné části):

release_YYYYMMDD_adl_buildno[_modifier]

Například release_20190318_adl_3394512_2 znamená druhou verzi sestavení 3394512 vydání modulu runtime z 18. března 2019 a release_20190318_adl_3394512_private znamená privátní sestavení stejné verze. Poznámka: Datum souvisí s datem posledního ohlášení této verze, a nemusí nutně odpovídat oficiálnímu datu vydání.

Řešení potíží s verzí modulu runtime U-SQL

Existují dva možné problémy s verzí modulu runtime, se kterými se můžete setkat:

  1. Skript nebo nějaký uživatelský kód mění chování z jedné verze na další. Tyto zásadní změny se obvykle sdělují předem při publikování poznámek k verzi. Pokud narazíte na takovou zásadní změnu, obraťte se na podpora Microsoftu a nahlaste toto chování způsobující chybu (pokud ještě není zdokumentované) a odešlete úlohy do starší verze modulu runtime.

  2. Používáte nevýchozí modul runtime explicitně nebo implicitně, když byl připnutý k vašemu účtu, a tento modul runtime se po nějaké době odebral. Pokud narazíte na chybějící moduly runtime, upgradujte skripty tak, aby běžely s aktuálním výchozím modulem runtime. Pokud potřebujete víc času, kontaktujte podpora Microsoftu

Známé problémy

  1. Odkazování na soubor Newtonsoft.Json verze 12.0.3 nebo novější ve skriptu USQL způsobí následující selhání kompilace:

    "Omlouváme se. úlohy spuštěné ve vašem Data Lake Analytics účtu budou pravděpodobně běžet pomaleji nebo se nedokonjí. Neočekávaný problém nám brání v automatickém obnovení této funkce do vašeho účtu Azure Data Lake Analytics. Kontaktovali jsme techniky Azure Data Lake, kteří je prošetří.

    Kde bude zásobník volání obsahovat:
    System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Roslyn.Compilers.MetadataReader.PEFile.CustomAttributeTableReader.get_Item(UInt32 rowId)
    ...

    Řešení: Použijte soubor Newtonsoft.Json verze 12.0.2 nebo nižší.

  2. Zákazníci můžou v úložišti vidět dočasné soubory a složky. Ty se vytvářejí jako součást normálního provádění úloh, ale obvykle se odstraní dříve, než je uvidí zákazníci. Za určitých okolností, které jsou vzácné a náhodné, mohou zůstat viditelné. Nakonec se odstraní a nikdy se nezapočítávají do uživatelského úložiště ani se negenerují žádné poplatky. V závislosti na logice úloh zákazníka můžou způsobovat problémy. Pokud například úloha vytvoří výčet všech souborů ve složce a pak porovná seznamy souborů, může selhat kvůli přítomnosti neočekávaných dočasných souborů. Podobně platí, že pokud podřízená úloha vytvoří výčet všech souborů z dané složky pro další zpracování, může také vytvořit výčet dočasných souborů.

    Řešení: Oprava je identifikována v modulu runtime, kde dočasné soubory budou uloženy v dočasné složce na úrovni účtu, nikoli v aktuální výstupní složce. Dočasné soubory budou zapsány v této nové dočasné složce a budou odstraněny na konci provádění úlohy.
    Vzhledem k tomu, že tato oprava zpracovává zákaznická data, je důležité, aby se tato oprava před vydáním správně ověřila v MSFT. Očekává se, že tato oprava bude k dispozici jako beta modul runtime v polovině roku 2021 a jako výchozí modul runtime v druhé polovině roku 2021.

Viz také