Solución de problemas relacionados con orquestaciones y desencadenadores de canalizaciones en Azure Data FactoryTroubleshoot pipeline orchestration and triggers in Azure Data Factory

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Una ejecución de canalización en Azure Data Factory define una instancia de dicha ejecución.A pipeline run in Azure Data Factory defines an instance of a pipeline execution. Por ejemplo, supongamos que tiene una canalización que se ejecuta a las 8:00 a. m., 9:00 a. m. y 10:00 a. m.For example, let's say you have a pipeline that runs at 8:00 AM, 9:00 AM, and 10:00 AM. En este caso, hay tres ejecuciones de canalización independientes.In this case, there are three separate pipeline runs. Cada canalización ejecutar tiene un identificador de canalización único.Each pipeline run has a unique pipeline run ID. Un id. de ejecución es un identificador único global (GUID) que define esa ejecución de canalización concreta.A run ID is a globally unique identifier (GUID) that defines that particular pipeline run.

Normalmente las instancias de ejecuciones de canalización se crean al pasar argumentos a parámetros que se definen en las canalizaciones.Pipeline runs are typically instantiated by passing arguments to parameters that you define in the pipeline. Puede ejecutar una canalización manualmente o mediante un desencadenador.You can run a pipeline either manually or by using a trigger. Consulte Ejecución y desencadenadores de canalización en Azure Data Factory para más información.See Pipeline execution and triggers in Azure Data Factory for details.

Problemas comunes, causas y solucionesCommon issues, causes, and solutions

La canalización de una aplicación de Azure Functions produce un error con la conectividad de puntos de conexión privadosAn Azure Functions app pipeline throws an error with private endpoint connectivity

Data Factory y una aplicación de Azure Functions se ejecutan en un punto de conexión privado.You have Data Factory and an Azure function app running on a private endpoint. Está intentando ejecutar una canalización que interactúa con la aplicación de funciones.You're trying to run a pipeline that interacts with the function app. Ha probado tres métodos diferentes, pero uno devuelve el error "solicitud incorrecta" y los otros dos métodos devuelven "error 103 prohibido".You've tried three different methods, but one returns error "Bad Request," and the other two methods return "103 Error Forbidden."

CausaCause

Data Factory no admite actualmente un conector de punto de conexión privado para las aplicaciones de funciones.Data Factory currently doesn't support a private endpoint connector for function apps. Azure Functions rechaza las llamadas porque está configurado para permitir solo las conexiones de un vínculo privado.Azure Functions rejects calls because it's configured to allow only connections from a private link.

ResoluciónResolution

Cree un punto de conexión de PrivateLinkService y especifique el DNS de la aplicación de funciones.Create a PrivateLinkService endpoint and provide your function app's DNS.

Se cancela una ejecución de la canalización, pero el monitor sigue mostrando el mantenimiento en cursoA pipeline run is canceled but the monitor still shows progress status

CausaCause

Cuando se cancela una ejecución de canalización, la supervisión de la canalización sigue mostrando el estado En curso.When you cancel a pipeline run, pipeline monitoring often still shows the progress status. Esto sucede debido a un problema de caché del explorador web.This happens because of a browser cache issue. También es posible que no tenga los filtros de supervisión correctos.You also might not have the correct monitoring filters.

ResoluciónResolution

Actualice el explorador y aplique los filtros de supervisión adecuados.Refresh the browser and apply the correct monitoring filters.

Aparece un error "DelimitedTextMoreColumnsThanDefined" al copiar una canalizaciónYou see a "DelimitedTextMoreColumnsThanDefined" error when copying a pipeline

CausaCause

Si una carpeta que está copiando contiene archivos con esquemas diferentes, como un número variable de columnas, delimitadores diferentes, valores de carácter de comillas o algún problema de datos, la canalización de Data Factory podría devolver este error:If a folder you're copying contains files with different schemas, such as variable number of columns, different delimiters, quote char settings, or some data issue, the Data Factory pipeline might throw this error:

Operation on target Copy_sks failed: Failure happened on 'Sink' side. ErrorCode=DelimitedTextMoreColumnsThanDefined, 'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException, Message=Error found when processing 'Csv/Tsv Format Text' source '0_2020_11_09_11_43_32.avro' with row number 53: found more columns than expected column count 27., Source=Microsoft.DataTransfer.Common,'

ResoluciónResolution

Seleccione la opción Binary Copy (Copia binaria) al crear la actividad de copia.Select the Binary Copy option while creating the Copy activity. De esta manera, para realizar copias masivas o migrar los datos de un lago de datos a otro, Data Factory no abrirá los archivos para leer el esquema.This way, for bulk copies or migrating your data from one data lake to another, Data Factory won't open the files to read the schema. En su lugar, Data Factory tratará cada archivo como un archivo binario y cópielo en la otra ubicación.Instead, Data Factory will treat each file as binary and copy it to the other location.

Se produce un error de ejecución de canalización cuando se alcanza el límite de capacidad del entorno de ejecución de integración del flujo de datosA pipeline run fails when you reach the capacity limit of the integration runtime for data flow

ProblemaIssue

Mensaje de error:Error message:

Type=Microsoft.DataTransfer.Execution.Core.ExecutionException,Message=There are substantial concurrent MappingDataflow executions which is causing failures due to throttling under Integration Runtime 'AutoResolveIntegrationRuntime'.

CausaCause

Ha alcanzado el límite de capacidad del entorno de ejecución de integración.You've reached the integration runtime's capacity limit. Podría estar ejecutando una gran cantidad de flujos de datos mediante el mismo entorno de ejecución de integración de manera simultánea.You might be running a large amount of data flow by using the same integration runtime at the same time. Para más información, consulte Límites, cuotas y restricciones de suscripción y servicios de Azure).See Azure subscription and service limits, quotas, and constraints for details.

ResoluciónResolution

  • Ejecute las canalizaciones en distintos momentos del desencadenador.Run your pipelines at different trigger times.
  • Cree un nuevo entorno de ejecución de integración y divida sus canalizaciones entre varios entornos de ejecución de integración.Create a new integration runtime, and split your pipelines across multiple integration runtimes.

Realización de errores en el nivel de actividad y en las canalizacionesHow to perform activity-level errors and failures in pipelines

CausaCause

La orquestación de Azure Data Factory permite la lógica condicional y permite al usuario tomar diferentes rutas de acceso en función del resultado de una actividad anterior.Azure Data Factory orchestration allows conditional logic and enables users to take different paths based upon the outcome of a previous activity. Permite cuatro rutas de acceso condicionales: Upon Success (ruta predeterminada) (en caso de ejecución correcta), Upon Failure (en caso de error), Upon Completion (en caso de finalización) y Upon Skip (en caso de omisión).It allows four conditional paths: Upon Success (default pass), Upon Failure, Upon Completion, and Upon Skip.

Azure Data Factory evalúa el resultado de todas las actividades de nivel de hoja.Azure Data Factory evaluates the outcome of all leaf-level activities. Los resultados de la canalización son correctos solo si todas las actividades del nivel de hoja se realizan correctamente.Pipeline results are successful only if all leaves succeed. Si se omitió una actividad del nivel hoja, se evalúa su actividad primaria en su lugar.If a leaf activity was skipped, we evaluate its parent activity instead.

ResoluciónResolution

Supervisión de errores de canalización en intervalos regularesHow to monitor pipeline failures in regular intervals

CausaCause

Quizá necesite supervisar las canalizaciones de Data Factory con errores a intervalos, por ejemplo, de 5 minutos.You might need to monitor failed Data Factory pipelines in intervals, say 5 minutes. Puede consultar y filtrar las ejecuciones de canalización de una factoría de datos con el punto de conexión.You can query and filter the pipeline runs from a data factory by using the endpoint.

ResoluciónResolution

El aumento del grado de paralelismo no deriva en un rendimiento mayor.Degree of parallelism increase does not result in higher throughput

CausaCause

El grado de paralelismo de ForEach es realmente el grado máximo de paralelismo.The degree of parallelism in ForEach is actually max degree of parallelism. No se puede garantizar que se produzca un número específico de ejecuciones al mismo tiempo, pero este parámetro garantizará que nunca se supere el valor establecido.We cannot guarantee a specific number of executions happening at the same time, but this parameter will guarantee that we never go above the value that was set. Debe considerar esto como un límite que debe utilizar para controlar el acceso simultáneo a sus orígenes y receptores.You should see this as a limit, to be leveraged when controlling concurrent access to your sources and sinks.

Hechos conocidos sobre ForEachKnown Facts about ForEach

  • ForEach tiene una propiedad denominada número de lote(n), donde el valor predeterminado es 20 y el máximo es 50.Foreach has a property called batch count(n) where default value is 20 and the max is 50.
  • El número de lote, n, se usa para construir n colas.The batch count, n, is used to construct n queues. Más adelante analizaremos algunos detalles sobre cómo se construyen estas colas.Later we will discuss some details on how these queues are constructed.
  • Cada cola se ejecuta secuencialmente, pero puede tener varias colas ejecutándose en paralelo.Every queue runs sequentially, but you can have several queues running in parallel.
  • Las colas se crean previamente.The queues are pre-created. Esto significa que no hay ningún reequilibrio de las colas durante el tiempo de ejecución.This means there is no rebalancing of the queues during the runtime.
  • En cualquier momento, hay al menos un elemento que se está procesando en cada cola.At any time, you have at most one item being process per queue. Esto significa que, como máximo, se procesan n elementos en un momento dado.This means at most n items being processed at any given time.
  • El tiempo total de procesamiento de ForEach es igual al tiempo de procesamiento de la cola más larga.The foreach total processing time is equal to the processing time of the longest queue. Esto significa que la actividad de ForEach depende de cómo se construyen las colas.This means that the foreach activity depends on how the queues are constructed.

ResoluciónResolution

  • No debe utilizar la actividad SetVariable dentro de For Each que se ejecute en paralelo.You should not use SetVariable activity inside For Each that runs in parallel.
  • Teniendo en cuenta la forma en que se construyen las colas, el cliente puede mejorar el rendimiento de ForEach estableciendo varios foreaches, donde cada valor de ForEach tendrá elementos con un tiempo de procesamiento similar.Taking in consideration the way the queues are constructed, customer can improve the foreach performance by setting multiple foreaches where each foreach will have items with similar processing time. Esto garantizará que las ejecuciones largas se procesen en paralelo y no de forma secuencial.This will ensure that long runs are processed in parallel rather sequentially.

El estado de la canalización está en cola o bloqueado durante mucho tiempoPipeline status is queued or stuck for a long time

CausaCause

Esto puede ocurrir por diversos motivos: por alcanzar los límites de simultaneidad, debido a interrupciones del servicio, por errores de red, etc.This can happen for various reasons like hitting concurrency limits, service outages, network failures and so on.

ResoluciónResolution

  • Límite de simultaneidad: si la canalización tiene una directiva de simultaneidad, compruebe que no haya ninguna ejecución de canalización anterior en curso.Concurrency Limit: If your pipeline has a concurrency policy, verify that there are no old pipeline runs in progress. La simultaneidad máxima de la canalización permitida en Azure Data Factory es de 10 canalizaciones.The maximum pipeline concurrency allowed in Azure Data Factory is 10 pipelines .
  • Límites de supervisión: vaya al lienzo de creación de ADF, seleccione la canalización y determine si tiene una propiedad de simultaneidad asignada.Monitoring limits: Go to the ADF authoring canvas, select your pipeline, and determine if it has a concurrency property assigned to it. Si es así, vaya a la vista Supervisión y asegúrese de que no haya nada en curso en los últimos 45 días.If it does, go to the Monitoring view, and make sure there's nothing in the past 45 days that's in progress. Si hay algo en curso, puede cancelarlo y debería iniciarse la nueva ejecución de canalización.If there is something in progress, you can cancel it and the new pipeline run should start.
  • Problemas transitorios: es posible que la ejecución se haya visto afectada por un problema transitorio de la red, errores de credenciales, interrupciones de servicios, etc. Si esto ocurre, Azure Data Factory cuenta con un proceso de recuperación interno que supervisa todas las ejecuciones y las inicia en caso de que se produzca algún problema.Transient Issues: It is possible that your run was impacted by a transient network issue, credential failures, services outages etc. If this happens, Azure Data Factory has an internal recovery process that monitors all the runs and starts them when it notices something went wrong. Este proceso se produce cada hora, así que si la ejecución se bloquea durante más de una hora, deberá crear un caso de soporte técnico.This process happens every one hour, so if your run is stuck for more than an hour, create a support case.

Tiempos de inicio más largos para actividades en la copia de ADF y en Data FlowLonger start up times for activities in ADF Copy and Data Flow

CausaCause

Esto puede ocurrir si no ha implementado la característica de período de vida de Data Flow o si no ha optimizado SHIR.This can happen if you have not implemented time to live feature for Data Flow or optimized SHIR.

ResoluciónResolution

  • Si cada actividad de copia tarda hasta dos minutos en iniciarse y el problema se produce principalmente en una unión de red virtual (frente a Azure IR), puede tratarse de un problema de rendimiento de la copia.If each copy activity is taking up to 2 minutes to start, and the problem occurs primarily on a VNet join (vs. Azure IR), this can be a copy performance issue. Para revisar los pasos para la solución de problemas, vaya a Mejora del rendimiento de la actividad de copia.To review troubleshooting steps, go to Copy Performance Improvement.
  • Puede usar la característica de período de vida para reducir el tiempo de inicio del clúster en las actividades de flujo de datos.You can use time to live feature to decrease cluster start up time for data flow activities. Revise Entorno de ejecución de integración de Data Flow.Please review Data Flow Integration Runtime.

Problemas de capacidad en SHIR (Integration Runtime autohospedado)Hitting capacity issues in SHIR(Self Hosted Integration Runtime)

CausaCause

Esto puede ocurrir si no ha escalado verticalmente SHIR en función de la carga de trabajo.This can happen if you have not scaled up SHIR as per your workload.

ResoluciónResolution

  • Si encuentra un problema de capacidad de SHIR, actualice la máquina virtual para aumentar el nodo con el fin de equilibrar las actividades.If you encounter a capacity issue from SHIR, upgrade the VM to increase the node to balance the activities. Si recibe un mensaje de error sobre un error o un error general de IR autohospedado, una actualización de IR autohospedado o problemas de conectividad de IR autohospedado, que pueden generar una cola larga, vaya a Solución de problemas del entorno de ejecución de integración autohospedado.If you receive an error message about a self-hosted IR general failure or error, a self-hosted IR upgrade, or self-hosted IR connectivity issues, which can generate a long queue, go to Troubleshoot self-hosted integration runtime.

Mensajes de error debidos a colas largas en la copia de ADF y en Data FlowError messages due to long queues for ADF Copy and Data Flow

CausaCause

Los mensajes de error de colas largas pueden aparecer por varias razones.Long queue related error messages can appear for various reasons.

ResoluciónResolution

Pasos siguientesNext steps

Para obtener ayuda para solucionar problemas, pruebe estos recursos:For more troubleshooting help, try these resources: