Freigeben über


Erfahren Sie, wie Sie U-SQL-Laufzeitfehler aufgrund von Laufzeitänderungen beheben.

Wichtig

Azure Data Lake Analytics wurde am 29. Februar 2024 eingestellt. Erfahren Sie mehr über in dieser Ankündigung.

Bei Datenanalysen kann Ihre Organisation Azure Synapse Analytics oder Microsoft Fabricverwenden.

Die U-SQL-Runtime von Azure Data Lake, einschließlich Compiler, Optimierer und Auftragsmanager, verarbeitet Ihren U-SQL-Code.

Auswählen der U-SQL-Laufzeitversion

Wenn Sie U-SQL-Aufträge von Visual Studio, dem ADL SDK oder dem Azure Data Lake Analytics-Portal übermitteln, verwendet Ihr Auftrag die derzeit verfügbare Standardlaufzeit. Neue Versionen der U-SQL-Runtime werden regelmäßig veröffentlicht und enthalten sowohl kleinere Updates als auch Sicherheitsupdates.

Sie können auch eine benutzerdefinierte Laufzeitversion auswählen; Entweder weil Sie ein neues Update ausprobieren möchten, eine ältere Version einer Laufzeit beibehalten müssen oder mit einem Hotfix für ein gemeldetes Problem bereitgestellt wurden, bei dem Sie nicht auf das normale neue Update warten können.

Vorsicht

Die Auswahl einer Laufzeit, die sich von der Standardeinstellung unterscheidet, hat das Potenzial, Ihre U-SQL-Aufträge zu unterbrechen. Verwenden Sie diese anderen Versionen nur zum Testen.

In seltenen Fällen kann der Microsoft-Support eine andere Version einer Laufzeit als Standard für Ihr Konto anheften. Stellen Sie sicher, dass Sie diesen Pin so schnell wie möglich zurücksetzen. Wenn Sie an dieser Version haften bleiben, läuft sie später ab.

Überwachen Ihrer Aufträge U-SQL-Laufzeitversion

Sie können sehen, welche Laufzeitversionen Ihre vergangenen Aufträge verwendet haben, indem Sie in der Auftragsübersicht Ihres Kontos entweder den Auftragsbrowser von Visual Studio oder die Verlaufsansicht im Azure-Portal nutzen.

  1. Wechseln Sie im Azure-Portal zu Ihrem Data Lake Analytics-Konto.
  2. Wählen Sie Alle Aufträge anzeigenaus. Es wird eine Liste aller aktiven und zuletzt abgeschlossenen Aufträge im Konto angezeigt.
  3. Wählen Sie optional Filter- aus, damit Sie die Aufträge nach Zeitbereich, Auftragsnameund Autoren- Werten finden können.
  4. Die in den abgeschlossenen Aufträgen verwendete Laufzeit wird angezeigt.

Anzeigen der Laufzeitversion eines früheren Auftrags

Die verfügbaren Laufzeitversionen ändern sich im Laufe der Zeit. Die Standardlaufzeit wird immer als "Standard" bezeichnet, und wir behalten mindestens die vorherige Laufzeit für einige Zeit zur Verfügung und stellen spezielle Laufzeiten aus verschiedenen Gründen zur Verfügung. Explizit benannte Laufzeiten folgen im Allgemeinen dem folgenden Format (kursiv wird für variable Teile verwendet und [] gibt optionale Teile an):

release_YYYYMMDD_adl_buildno[_modifier]

Beispielsweise bedeutet release_20190318_adl_3394512_2 die zweite Version des Build-3394512 der Laufzeitversion vom 18. März 2019 und release_20190318_adl_3394512_private einen privaten Build derselben Version. Hinweis: Das Datum bezieht sich auf den Zeitpunkt, an dem die letzte Überprüfung für diese Veröffentlichung durchgeführt wurde, und nicht unbedingt das offizielle Veröffentlichungsdatum.

Behandeln von Problemen mit der U-SQL-Laufzeitversion

Es gibt zwei mögliche Probleme mit der Laufzeitversion, die auftreten können:

  1. Ein Skript oder ein Benutzercode ändert das Verhalten von einer Version zur nächsten. Solche umwälzenden Änderungen werden normalerweise im Voraus mit der Veröffentlichung der Release Notes bekanntgegeben. Wenn Sie auf eine solche kritische Änderung stoßen, wenden Sie sich an den Microsoft-Support, um dieses Fehlerverhalten zu melden (falls es noch nicht dokumentiert wurde), und übermitteln Sie Ihre Aufträge für die ältere Laufzeitversion.

  2. Sie haben entweder explizit oder implizit eine nicht standardmäßige Laufzeitumgebung verwendet, die Ihrem Konto zugewiesen wurde. Diese Laufzeitumgebung wurde nach einiger Zeit entfernt. Wenn fehlende Laufzeiten auftreten, aktualisieren Sie Ihre Skripts so, dass sie mit der aktuellen Standardlaufzeit ausgeführt werden. Wenn Sie mehr Zeit benötigen, wenden Sie sich an den Microsoft-Support

Bekannte Probleme

  1. Das Verweisen auf die Datei Newtonsoft.Json, Version 12.0.3 oder höher in einem USQL-Skript, verursacht den folgenden Kompilierungsfehler:

    "Es tut uns leid; Aufträge, die in Ihrem Data Lake Analytics-Konto ausgeführt werden, werden wahrscheinlich langsamer oder nicht abgeschlossen. Ein unerwartetes Problem verhindert, dass wir diese Funktionalität automatisch in Ihr Azure Data Lake Analytics-Konto wiederherstellen. Azure Data Lake-Ingenieure wurden kontaktiert, um zu untersuchen."

    Dabei enthält der Aufrufstapel Folgendes:
    System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Roslyn.Compilers.MetadataReader.PEFile.CustomAttributeTableReader.get_Item(UInt32 rowId)
    ...

    Lösung: Verwenden Sie die Datei Newtonsoft.Json v12.0.2 oder niedriger.

  2. Kunden könnten möglicherweise temporäre Dateien und Ordner in ihrem Geschäft sehen. Diese werden als Teil der normalen Auftragsausführung erstellt, werden jedoch in der Regel gelöscht, bevor die Kunden sie sehen. Unter bestimmten Umständen, die selten und zufällig sind, bleiben sie möglicherweise sichtbar. Sie werden schließlich gelöscht, werden nie als Teil des Benutzerspeichers angerechnet und verursachen keinerlei Gebühren. Abhängig von der Auftragslogik der Kunden können sie Probleme verursachen. Wenn der Auftrag beispielsweise alle Dateien im Ordner aufzählt und dann Dateilisten vergleicht, schlägt der Auftrag möglicherweise fehl, da unerwartete temporäre Dateien vorhanden sind. Wenn ein nachgelagerter Auftrag alle Dateien aus einem bestimmten Ordner zur weiteren Verarbeitung aufzählt, kann er auch die temporären Dateien aufzählen.

    Lösung: Während der Laufzeit wird eine Änderung vorgenommen, sodass die temporären Dateien im temporären Ordner auf Kontoebene statt im aktuellen Ausgabeordner gespeichert werden. Die temporären Dateien werden in diesem neuen temporären Ordner geschrieben und am Ende der Auftragsausführung gelöscht.
    Da dieser Fix die Kundendaten verarbeitet, ist es wichtig, dass dieser Fix innerhalb von MSFT gut überprüft wird, bevor er veröffentlicht wird. Es wird erwartet, dass dieser Fix Mitte des Jahres 2021 als Beta-Laufzeit und als Standardlaufzeit im zweiten Halbjahr 2021 verfügbar ist.

Siehe auch