Compartir a través de


Ejecución de puntos de conexión por lotes desde Azure Data Factory

SE APLICA A:Extensión ML de la CLI de Azure v2 (actual)SDK de Python azure-ai-ml v2 (actual)

Los macrodatos requieren un servicio que pueda orquestar y operacionalizar los procesos para convertir estos enormes almacenes de datos sin procesar en información empresarial en función de la cual se puedan emprender acciones. El servicio en la nube administrado Azure Data Factory controla estos complejos proyectos híbridos de extracción, transformación y carga de datos (ETL), extracción, carga de datos y transformación (ELT) e integración de datos.

Azure Data Factory permite crear canalizaciones que pueden organizar múltiples transformaciones de datos y administrarlas como una sola unidad. Los puntos de conexión por lotes son un excelente candidato para llegar a ser uno de los pasos en este flujo de trabajo de procesamiento.

En este artículo, aprenderá a usar puntos de conexión por lotes en actividades de Azure Data Factory mediante la actividad de invocación web y la API de REST.

Sugerencia

Al usar canalizaciones de datos en Fabric, puede invocar el punto de conexión por lotes directamente mediante la actividad de Azure Machine Learning. Se recomienda usar Fabric para la orquestación de datos siempre que sea posible para aprovechar las funcionalidades más recientes. La actividad de Azure Machine Learning en Azure Data Factory solo puede trabajar con recursos de Azure Machine Learning V1. Para obtener más información, consulte Ejecución de modelos de Azure Machine Learning desde Fabric mediante puntos de conexión por lotes (versión preliminar).

Requisitos previos

Autenticación en puntos de conexión por lotes

Azure Data Factory puede invocar las API de REST de los puntos de conexión por lotes mediante la actividad de invocación web. Los puntos de conexión por lotes admiten Microsoft Entra ID para la autorización y la solicitud realizada a las API requiere un control de autenticación adecuado. Para obtener más información, consulte Actividad web de Azure Data Factory y Azure Synapse Analytics.

Puede usar una entidad de servicio o una identidad administrada para autenticarse en puntos de conexión por lotes. Recomendamos usar una identidad administrada porque simplifica el uso de secretos.

Para comunicarse con los puntos de conexión de por lotes, puede usar la identidad administrada de Azure Data Factory. En este caso, solo debe asegurarse de que su recurso de Azure Data Factory se implementó con una identidad administrada.

  1. Si no tiene un recurso de Azure Data Factory o ya se implementó sin una identidad administrada, siga este procedimiento para crearlo: Identidad administrada asignada por el sistema.

    Precaución

    No es posible cambiar la identidad del recurso en Azure Data Factory después de la implementación. Si necesita cambiar la identidad de un recurso después de crearlo, debe volver a crear el recurso.

  2. Después de la implementación, conceda acceso a la identidad administrada del recurso que creó en su área de trabajo de Azure Machine Learning. Consulte Conceder acceso. En este ejemplo, la entidad de servicio requiere:

    • Permiso en el área de trabajo para leer las implementaciones por lotes y realizar acciones sobre ellas.
    • Permisos para leer y escribir en almacenes de datos.
    • Permisos para leer en cualquier ubicación en la nube (cuenta de almacenamiento) que se indique como entrada de datos.

Acerca de la canalización

En este ejemplo, creará una canalización en Azure Data Factory que pueda invocar un punto de conexión por lotes determinado a través de algunos datos. La canalización se comunica con los puntos de conexión por lotes de Azure Machine Learning mediante REST. Para obtener más información sobre cómo usar la API de REST de puntos de conexión por lotes, consulte Creación de trabajos y datos de entrada para puntos de conexión por lotes.

La canalización tiene el siguiente aspecto:

Diagrama que muestra la estructura de alto nivel de la canalización que va a crear.

La canalización contiene las siguientes actividades:

  • Ejecutar punto de conexión por lotes: una actividad web que usa el URI del punto de conexión por lotes para invocarla. Pasa el identificador uniforme de recursos de datos de entrada donde se encuentran los datos y el archivo de salida esperado.

  • Esperar trabajo: es una actividad de bucle que comprueba el estado del trabajo creado y espera su finalización, ya sea como Completado o Con errores. Esta actividad, a su vez, usa las actividades siguientes:

    • Comprobar estado: una actividad web que consulta el estado del recurso de trabajo que se devolvió como respuesta de la actividad Ejecutar punto de conexión de Batch.
    • Wait: una actividad de espera que controla la frecuencia de sondeo del estado del trabajo. Establecemos un valor predeterminado de 120 (2 minutos).

La canalización requiere que configure los siguientes parámetros:

Parámetro Descripción Valor de ejemplo
endpoint_uri El identificador uniforme de recursos de puntuación del punto de conexión https://<endpoint_name>.<region>.inference.ml.azure.com/jobs
poll_interval El número de segundos que deben transcurrir antes de comprobar el estado de trabajo para finalizar. Su valor predeterminado es 120. 120
endpoint_input_uri Los datos de entrada del punto de conexión. Se admiten varios tipos de entrada de datos. Asegúrese de que la identidad administrada que usa para ejecutar el trabajo tiene acceso a la ubicación subyacente. Como alternativa, si usa almacenes de datos, asegúrese de que las credenciales se indican allí. azureml://datastores/.../paths/.../data/
endpoint_input_type Tipo de datos de entrada que se proporcionan. Actualmente, los puntos de conexión por lotes admiten carpetas (UriFolder) y Archivo (UriFile). Tiene como valor predeterminado UriFolder. UriFolder
endpoint_output_uri El archivo de datos de salida del punto de conexión. Debe ser una ruta de acceso a un archivo de salida de un Almacén de Datos asociado al área de trabajo de Machine Learning. No se admite ningún otro tipo de identificador uniforme de recursos. Puede usar el almacén de datos predeterminado de Azure Machine Learning, denominado workspaceblobstore. azureml://datastores/workspaceblobstore/paths/batch/predictions.csv

Advertencia

Recuerde que endpoint_output_uri debería ser la ruta de acceso a un archivo que aún no existe. De lo contrario, en el trabajo se produce el error la ruta de acceso ya existe.

Creación de la canalización

Para crear esta canalización en la instancia de Azure Data Factory existente e invocar puntos de conexión por lotes, siga estos pasos:

  1. Asegúrese de que el proceso en el que se ejecuta el punto de conexión por lotes tiene permisos para montar los datos que Azure Data Factory proporciona como entrada. La entidad que invoca el punto de conexión todavía concede acceso.

    En este caso, es Azure Data Factory. Pero el proceso en el que se ejecuta el punto de conexión por lotes debe tener permiso para montar la cuenta de almacenamiento que proporciona Azure Data Factory. Consulte Acceso a los servicios de almacenamiento para más información.

  2. Abra Azure Data Factory Studio. Seleccione el icono del lápiz para abrir el panel Autor y, en Recursos de Factory, seleccione el signo más.

  3. SeleccioneCanalización>Importar desde la plantilla de canalización.

  4. Seleccione un archivo .zip.

    • Para usar identidades administradas, seleccione este archivo.
    • Para usar un principio de servicio, seleccione este archivo.
  5. En el portal aparece una vista previa de la canalización. Seleccione Usar esta plantilla.

    La canalización se crea para usted con el nombre Run-BatchEndpoint.

  6. Configure los parámetros de la implementación por lotes:


Advertencia

Asegúrese de que el punto de conexión por lotes tiene configurada una implementación predeterminada antes de enviarle un trabajo. La canalización creada invoca el punto de conexión. Es necesario crear y configurar una implementación predeterminada.

Sugerencia

Para mejorar la reutilización, use la canalización creada como plantilla y llámela desde otras canalizaciones de Azure Data Factory usando Ejecutar actividad de canalización. En ese caso, no configure los parámetros de la canalización interna, es preferible que use como parámetros de la canalización externa, como se muestra en la imagen siguiente:

Captura de pantalla de los parámetros de canalización esperados para la canalización resultante cuando se invoca desde otra canalización.

La canalización está lista para usarse.

Limitaciones

Tenga en cuenta las siguientes limitaciones al usar las implementaciones por lotes de Azure Machine Learning:

Entradas de datos

  • Solo se admiten como entradas almacenes de datos de Azure Machine Learning o cuentas de Azure Storage (Azure Blob Storage, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2). Si sus datos de entrada están en otro origen, use la actividad de copia de Azure Data Factory antes de la ejecución del trabajo por lotes para recibir los datos en un almacén compatible.
  • Los trabajos de punto de conexión por lotes no exploran las carpetas anidadas. No pueden trabajar con estructuras de carpetas anidadas. Si los datos se distribuyen en varias carpetas, debe acoplar la estructura.
  • Asegúrese de que su script de puntuación que proporcionó en la implementación pueda controlar los datos tal y como se espera que se inserte en el trabajo. Si el modelo es MLflow, para conocer las limitaciones de los tipos de archivo admitidos, consulte Implementación de modelos de MLflow en implementaciones por lotes.

Salidas de datos

  • Solo se admiten almacenes de datos registrados de Azure Machine Learning. Se recomienda registrar la cuenta de almacenamiento que Azure Data Factory usa como almacén de datos en Azure Machine Learning. De este modo, puede volver a escribir en la misma cuenta de almacenamiento en la que está leyendo.
  • Solo se admiten para salidas cuentas de Azure Blob Storage. Por ejemplo, Azure Data Lake Storage Gen2 no se admite como salida en trabajos de implementación por lotes. Si necesita enviar los datos a otra ubicación o receptor, use la actividad de copia de Azure Data Factory después de ejecutar el trabajo por lotes.