Trabajo persistente y resultado de la tarea

Una tarea que se ejecuta en Azure Batch puede generar datos de salida cuando se ejecuta. Los datos de salida de tareas se suelen almacenar para su recuperación por parte de otras tareas del trabajo, la aplicación cliente que ejecuta el trabajo o ambos. Las tareas escriben datos de salida en el sistema de archivos de un nodo de proceso de Batch, pero todos los datos del nodo se pierden al restablecer su imagen inicial o cuando el nodo abandona el grupo. Las tareas también pueden tener un período de retención de archivos, después del cual se eliminan los archivos creados por la tarea. Por estos motivos, es importante conservar el resultado de la tarea, que podría necesitar más adelante, en un almacén de datos como Azure Storage.

Para conocer las opciones de cuenta de almacenamiento en Batch, consulte Cuentas de Batch y de Azure Storage.

Algunos ejemplos comunes de resultados de tareas incluyen:

  • Archivos creados cuando la tarea procesa los datos de entrada.
  • Archivos de registro asociados con la ejecución de tareas.

Este artículo describe varias opciones para la persistencia de los datos de salida. Puede persistir los datos de salida de las tareas y trabajos de Batch en Azure Storage o en otros almacenes.

Opciones para almacenar la salida

Hay varias maneras de conservar los datos de salida. Elija el mejor método para su escenario:

API del servicio Batch

Puede usar la API del servicio Batch para almacenar los datos de salida. Especifique los archivos de salida en Azure Storage para los datos de las tareas cuando agrega una tarea a un trabajo o agrega una colección de tareas a un trabajo.

Para más información, consulte Almacenamiento de datos de tareas en Azure Storage con la API del servicio Batch.

Biblioteca de convenciones de archivos Batch

El estándar Batch File Conventions es un conjunto opcional de convenciones para nombrar los archivos de salida de las tareas en Azure Storage. El estándar proporciona convenciones de nomenclatura para el contenedor de destino y la ruta de acceso de blob de un archivo, en función de los nombres del trabajo y la tarea.

Es opcional usar el estándar Convenciones de archivo para asignar un nombre a los archivos de datos de salida. En su lugar, puede elegir el nombre del contenedor de destino y la ruta de acceso del blob. Si usa el estándar File Conventions, puede ver sus archivos de salida en Azure Portal.

Si va a compilar una solución de Batch con C# y .NET, puede usar la biblioteca Batch File Conventions para .NET. La biblioteca mueve los archivos de salida a Azure Storage y nombra los contenedores y blobs de destino de acuerdo con el estándar Batch File Conventions.

Para obtener más información, consulte Almacenar datos de trabajos y tareas en Azure Storage con la biblioteca Batch File Conventions para .NET.

Estándar Batch File Conventions

Si va a usar un lenguaje distinto de .NET, puede implementar el estándar Batch File Conventions en su propia aplicación. Use este enfoque en los siguientes casos:

  • Quiere usar un esquema de nomenclatura común.
  • Quiere ver la salida de tarea en Azure Portal.

Una solución personalizada de movimiento de archivos

También puede implementar su propia solución completa de movimiento de archivos. Use este enfoque en los siguientes casos:

  • Quiere almacenar datos de tareas en un almacén de datos distinto de Azure Storage. Por ejemplo, quiere cargar archivos en un almacén de datos como Azure SQL o Azure DataLake. Cree un script personalizado o ejecutable para cargarlo en esa ubicación. A continuación, llame al script personalizado o ejecutable en la línea de comandos después de ejecutar el ejecutable principal. Por ejemplo, en un nodo Windows, llame a doMyWork.exe && uploadMyFilesToSql.exe.
  • Quiere realizar puntos de control o la carga anticipada de los resultados iniciales.
  • Quiere mantener un control granular sobre el control de errores. Por ejemplo, quiere usar acciones de dependencia de la tarea para ejecutar ciertas acciones de carga basadas en códigos de salida de la tarea específicos.

Consideraciones de diseño

Al diseñar la solución de Batch, tenga en cuenta los siguientes factores.

Los nodos de proceso suelen ser transitorios, especialmente en los grupos de Batch con el escalado automático habilitado. Solo puede ver la salida de una tarea:

  • Mientras exista el nodo donde se ejecuta la tarea.
  • Durante el período de retención de archivos que estableció para la tarea.

Al ver una tarea de Batch en el Azure Portal y seleccionar Archivos en el nodo, verá todos los archivos de esa tarea, no solo los archivos de salida. Para recuperar la salida de la tarea directamente desde los nodos de ejecución de su grupo, necesita el nombre del archivo y la ubicación de su salida en el nodo.

Si desea mantener los datos de salida de la tarea más tiempo, configure la tarea para cargar sus archivos de salida en un almacén de datos. Se recomienda usar Azure Storage como almacén de datos. Hay integración para escribir datos de salida de tareas Azure Storage en la API del servicio Batch. Puede usar otras opciones de almacenamiento duradero para mantener los datos. Sin embargo, debe escribir la lógica de la aplicación para otras opciones de almacenamiento usted mismo.

Para ver los datos de salida en Azure Storage, use Azure Portal o una aplicación cliente de Azure Storage, como Azure Storage Explorer. Anote la ubicación del archivo de salida y vaya a esa ubicación directamente.

Paso siguiente