Información sobre cómo solucionar errores de runtime de U-SQL debido a cambios en el runtime
Importante
Azure Data Lake Analytics retiró el 29 de febrero de 2024. Más información sobre este anuncio.
Para el análisis de datos, su organización puede usar Azure Synapse Analytics o Microsoft Fabric.
El runtime U-SQL de Azure Data Lake, incluidos el compilador, el optimizador y el administrador de trabajos, es lo que procesa el código de U-SQL.
Elección de la versión de runtime de U-SQL
Al enviar trabajos de U-SQL desde Visual Studio, el SDK de ADL o el portal de Azure Data Lake Analytics, el trabajo utilizará el runtime predeterminado disponible actualmente. Las nuevas versiones del entorno de ejecución de U-SQL se publican periódicamente e incluyen actualizaciones secundarias y correcciones de seguridad.
También puede elegir una versión personalizada en tiempo de ejecución; ya sea porque quiere probar una nueva actualización, debe permanecer en una versión anterior de un entorno de ejecución o se le proporcionó una revisión para un problema notificado en el que no puede esperar a la nueva actualización normal.
Precaución
La elección de un runtime diferente del predeterminado tiene la posibilidad de interrumpir los trabajos de U-SQL. Use estas otras versiones solo para pruebas.
En raras ocasiones, Soporte técnico de Microsoft puede anclar una versión diferente de un entorno de ejecución como valor predeterminado para la cuenta. Asegúrese de revertir esta patilla lo antes posible. Si se permanece anclado a esa versión, expirará más adelante.
Supervisión de la versión de runtime de los trabajos de U-SQL
Puede ver el historial de la versión en tiempo de ejecución que han usado los trabajos pasados en el historial de trabajos de su cuenta mediante el explorador de trabajos de Visual Studio o el historial de trabajos de Azure Portal.
- En Azure Portal, vaya a la cuenta de Data Lake Analytics.
- Seleccione Ver todos los trabajos. Aparece una lista de todos los trabajos activos y finalizados recientemente en la cuenta.
- Opcionalmente, seleccione Filtrar para ayudarle a encontrar los trabajos por intervalo de tiempo, Nombre del trabajo y Crear valores.
- Puede ver el runtime que se usa en los trabajos completados.
Las versiones disponibles de runtime cambian con el tiempo. El tiempo de ejecución predeterminado siempre se denomina "predeterminado" y mantenemos al menos el tiempo de ejecución anterior disponible durante algún tiempo y hacemos que los entornos de ejecución especiales estén disponibles por diversos motivos. Los runtimes con nombres explícitos suelen seguir el formato siguiente (las partes variables se ponen en cursiva y [] indica partes opcionales):
release_YYYYMMDD_adl_buildno[_modifier]
Por ejemplo, release_20190318_adl_3394512_2 se refiere a la segunda versión de la compilación 3394512 de la versión de runtime del 18 de marzo de 2019 y release_20190318_adl_3394512_private se refiere a una compilación privada de la misma versión. Nota: La fecha se relaciona con el momento en que se ha realizado la última inserción en el repositorio para esa versión y no necesariamente en la fecha de lanzamiento oficial.
Solución de incidencias de versión de runtime de U-SQL
Hay dos posibles problemas de versión en tiempo de ejecución que podría encontrar:
Un script o algún código de usuario está cambiando el comportamiento de una versión a la siguiente. Estos cambios importantes se comunican normalmente de antemano con la publicación de notas de la versión. Si se produce un cambio importante, póngase en contacto con Soporte técnico de Microsoft para notificar este comportamiento importante (en caso de que aún no se haya documentado) y envíe los trabajos a la versión anterior en tiempo de ejecución.
Ha estado usando un entorno de ejecución no predeterminado de forma explícita o implícita cuando se ha anclado a su cuenta y ese tiempo de ejecución se ha quitado después de algún tiempo. Si encuentra runtimes que faltan, actualice los scripts para que se ejecuten con el runtime predeterminado actual. Si necesita más tiempo, póngase en contacto con Soporte técnico de Microsoft
Problemas conocidos
La referencia al archivo Newtonsoft.json, versión 12.0.3 o posterior, en un script USQL provocará el siguiente error de compilación:
"Es probable que los trabajos que se ejecutan en la cuenta de Data Lake Analytics funcionen con lentitud o no se completen. Un problema inesperado nos impide restaurar automáticamente esta funcionalidad en la cuenta de Azure Data Lake Analytics, pero nos hemos puesto en contacto con los ingenieros de Azure Data Lake para que lo investiguen".
Donde la pila de llamadas contendrá:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Roslyn.Compilers.MetadataReader.PEFile.CustomAttributeTableReader.get_Item(UInt32 rowId)
...
Solución: use el archivo Newtonsoft.Json v12.0.2 o inferior.
Los clientes pueden ver archivos y carpetas temporales en su almacén. Se generan como parte de la ejecución normal del trabajo, pero normalmente se eliminan antes de que los clientes los vean. En determinadas circunstancias, que son raras y aleatorias, pueden permanecer visibles. Finalmente se eliminan y nunca se cuentan como parte del almacenamiento del usuario o generan cualquier forma de cargos. En función de la lógica del trabajo de los clientes, podrían causar problemas. Por ejemplo, si el trabajo enumera todos los archivos de la carpeta y, a continuación, compara las listas de archivos, podría producirse un error debido a la presencia de archivos temporales inesperados. Del mismo modo, si un trabajo de bajada enumera todos los archivos de una carpeta determinada para su posterior procesamiento, también puede enumerar los archivos temporales.
Solución: se identifica una corrección en el tiempo de ejecución donde los archivos temporales se almacenarán en la carpeta temporal de nivel de cuenta en lugar de en la carpeta de salida actual. Los archivos temporales se escribirán en esta nueva carpeta temporal y se eliminarán al final de la ejecución del trabajo.
Dado que esta corrección controla los datos del cliente, es importante que esta corrección esté bien validada dentro de MSFT antes de que se publique. Se espera que esta corrección esté disponible como tiempo de ejecución beta a mediados del año 2021 y como tiempo de ejecución predeterminado en la segunda mitad del año 2021.