Apprenez à résoudre les défaillances du runtime U-SQL en raison des modifications du runtime

Important

Azure Data Lake Analytics mis hors service le 29 février 2024. Découvrez-en plus avec cette annonce.

Pour l’analytique des données, votre organization peut utiliser Azure Synapse Analytics ou Microsoft Fabric.

Le runtime U-SQL Azure Data Lake, y compris le compilateur, l’optimiseur et le gestionnaire de travaux, est ce qui traite votre code U-SQL.

Choix de votre version du runtime U-SQL

Lorsque vous envoyez des travaux U-SQL depuis Visual Studio, le Kit de développement logiciel (SDK) ADL ou le Portail Azure Data Lake Analytics, votre travail utilise le runtime par défaut actuellement disponible. Les nouvelles versions du runtime U-SQL sont publiées régulièrement et incluent des mises à jour mineures et des correctifs de sécurité.

Vous pouvez également choisir une version de runtime personnalisée ; soit parce que vous souhaitez essayer une nouvelle mise à jour, que vous devez conserver une version antérieure d’un runtime ou que vous avez reçu un correctif logiciel pour un problème signalé où vous ne pouvez pas attendre la nouvelle mise à jour normale.

Attention

Le choix d’un runtime différent de la valeur par défaut est susceptible d’interrompre vos travaux U-SQL. Utilisez ces autres versions à des fins de test uniquement.

Dans de rares cas, Support Microsoft pouvez épingler une autre version d’un runtime comme valeur par défaut pour votre compte. Veillez à rétablir cette épingle dès que possible. Si vous restez épinglé à cette version, elle expirera à une date ultérieure.

Surveillance de la version du runtime U-SQL de vos travaux

Vous pouvez voir l’historique de la version du runtime utilisée par vos anciens travaux dans l’historique des travaux de votre compte par le biais de l’explorateur de travaux de Visual Studio ou de l’historique des travaux du Portail Azure.

  1. Dans le portail Azure, accédez à votre compte Data Lake Analytics.
  2. Sélectionnez Afficher tous les travaux. Une liste de tous les travaux actifs et récemment terminés dans le compte apparaît.
  3. Si vous le souhaitez, sélectionnez Filtrer pour vous aider à trouver les travaux par intervalle de temps, nom du travail et valeurs d’auteur .
  4. Vous pouvez voir le runtime utilisé dans les travaux terminés.

Affichage de la version du runtime d’un travail passé

Les versions de runtime disponibles changent au fil du temps. Le runtime par défaut est toujours appelé « par défaut » et nous conservons au moins le runtime précédent disponible pendant un certain temps et mettons des runtimes spéciaux à disposition pour diverses raisons. Les runtimes nommés explicitement suivent généralement le format suivant (les italiques sont utilisées pour les parties variables et [] indique des parties facultatives) :

release_YYYYMMDD_adl_buildno[_modifier]

Par exemple, release_20190318_adl_3394512_2 correspond à la deuxième version de la build 3394512 de la publication du runtime du 18 mars 2019 et release_20190318_adl_3394512_private correspond à une build privée de la même version. Remarque : La date est liée au moment où le dernier archivage a été effectué pour cette version et pas nécessairement à la date de publication officielle.

Résoudre les problèmes de version du runtime U-SQL

Vous pouvez rencontrer deux problèmes de version du runtime :

  1. Un script ou un code utilisateur change le comportement d’une version à l’autre. Ces changements cassants sont normalement communiqués à l’avance avec la publication des notes de publication. Si vous rencontrez un tel changement cassant, contactez Support Microsoft pour signaler ce comportement cassant (au cas où il n’a pas encore été documenté) et envoyez vos travaux par rapport à l’ancienne version du runtime.

  2. Vous utilisez un runtime non défini par défaut explicitement ou implicitement lorsqu’il a été épinglé à votre compte et que ce runtime a été supprimé après un certain temps. Si vous expérimentez des problèmes de runtimes manquants, mettez à niveau vos scripts pour qu’ils s’exécutent avec le runtime par défaut actuel. Si vous avez besoin de plus de temps, contactez Support Microsoft

Problèmes connus

  1. La référence au fichier Newtonsoft.Json version 12.0.3 ou ultérieure dans un script USQL entraîne l’échec de compilation suivant :

    « Nous sommes désolés, les travaux exécutés dans votre compte Data Lake Analytics vont probablement s’exécuter plus lentement ou ne pas se terminer. Un problème inattendu nous empêche de restaurer automatiquement cette fonctionnalité sur votre compte Azure Data Lake Analytics. Les ingénieurs Azure Data Lake ont été contactés pour enquêter. »

    Où la pile des appels contiendra :
    System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Roslyn.Compilers.MetadataReader.PEFile.CustomAttributeTableReader.get_Item(UInt32 rowId)
    ...

    Solution : utilisez le fichier Newtonsoft.Json v12.0.2 ou version antérieure.

  2. Les clients peuvent voir des fichiers et dossiers temporaires dans leur magasin. Ceux-ci sont produits dans le cadre de l’exécution normale du travail, mais généralement supprimés avant que les clients les voient. Dans certaines circonstances, rares et aléatoires, elles peuvent rester visibles. Ils sont finalement supprimés et ne sont jamais comptabilisés comme faisant partie du stockage utilisateur, ni génèrent quelque forme que ce soit de frais. En fonction de la logique du travail des clients, ils peuvent occasionner des problèmes. Par exemple, si le travail énumère tous les fichiers du dossier, puis compare des listes de fichiers, il peut échouer en raison de la présence de fichiers temporaires inattendus. De même, si un travail en aval énumère tous les fichiers d’un dossier donné pour un traitement ultérieur, il peut également énumérer les fichiers temporaires.

    Solution : un correctif est identifié dans le runtime où les fichiers temporaires seront stockés dans le dossier temporaire au niveau du compte plutôt que dans le dossier de sortie actuel. Les fichiers temporaires seront écrits dans ce nouveau dossier temporaire, et supprimés à la fin de l’exécution du travail.
    Étant donné que ce correctif gère les données client, il est important que ce correctif soit bien validé dans MSFT avant sa publication. Ce correctif devrait être disponible en tant que runtime bêta au milieu de l’année 2021 et en tant que runtime par défaut au second semestre de l’année 2021.

Voir aussi