Resolução de problemas da orquestração e desencadeamentos de gasodutos na Fábrica de Dados do AzureTroubleshoot pipeline orchestration and triggers in Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Uma execução de pipeline do Azure Data Factory define uma instância de uma execução de pipeline.A pipeline run in Azure Data Factory defines an instance of a pipeline execution. Por exemplo, digamos que tem um oleoduto que funciona às 8:00, 9:00 e 10:00.For example, let's say you have a pipeline that runs at 8:00 AM, 9:00 AM, and 10:00 AM. Neste caso, há três oleodutos separados.In this case, there are three separate pipeline runs. Cada execução de pipeline tem um ID de execução de pipeline exclusivo.Each pipeline run has a unique pipeline run ID. Um ID de execução é um identificador globalmente único (GUID) que define esse gasoduto em particular.A run ID is a globally unique identifier (GUID) that defines that particular pipeline run.

Normalmente, as execuções de pipeline são instanciadas pela transmissão de argumentos a parâmetros que são definidos no pipeline.Pipeline runs are typically instantiated by passing arguments to parameters that you define in the pipeline. Pode executar uma tubagem manualmente ou utilizando um gatilho.You can run a pipeline either manually or by using a trigger. Consulte a execução do Pipeline e os gatilhos na Azure Data Factory para obter mais detalhes.See Pipeline execution and triggers in Azure Data Factory for details.

Questões comuns, causas e soluçõesCommon issues, causes, and solutions

Um pipeline de aplicativoS Azure Funs lança um erro com conectividade de ponto final privadoAn Azure Functions app pipeline throws an error with private endpoint connectivity

Tem data factory e uma aplicação de função Azure em execução num ponto final privado.You have Data Factory and an Azure function app running on a private endpoint. Está a tentar executar um oleoduto que interage com a aplicação de função.You're trying to run a pipeline that interacts with the function app. Já tentou três métodos diferentes, mas um retorna o erro "Mau Pedido", e os outros dois métodos devolvem "103 Error Forbidden".You've tried three different methods, but one returns error "Bad Request," and the other two methods return "103 Error Forbidden."

MotivoCause

A Data Factory não suporta atualmente um conector de ponto final privado para aplicações de funções.Data Factory currently doesn't support a private endpoint connector for function apps. A Azure Functions rejeita chamadas porque está configurado para permitir apenas ligações a partir de um link privado.Azure Functions rejects calls because it's configured to allow only connections from a private link.

ResoluçãoResolution

Crie um ponto final PrivateLinkService e forneça o DNS da sua aplicação de função.Create a PrivateLinkService endpoint and provide your function app's DNS.

Uma corrida de gasoduto é cancelada, mas o monitor ainda mostra o estado de progressoA pipeline run is canceled but the monitor still shows progress status

MotivoCause

Quando se cancela uma corrida ao gasoduto, a monitorização do gasoduto mostra frequentemente o estado de progresso.When you cancel a pipeline run, pipeline monitoring often still shows the progress status. Isto acontece por causa de um problema de cache do navegador.This happens because of a browser cache issue. Também pode não ter os filtros de monitorização corretos.You also might not have the correct monitoring filters.

ResoluçãoResolution

Refresque o navegador e aplique os filtros de monitorização corretos.Refresh the browser and apply the correct monitoring filters.

Você vê um erro "DelimitedTextMoreColumnsThanDefined" ao copiar um oleodutoYou see a "DelimitedTextMoreColumnsThanDefined" error when copying a pipeline

MotivoCause

Se uma pasta que está a copiar contiver ficheiros com esquemas diferentes, tais como número variável de colunas, delimiters diferentes, definições de carvão de cotação ou algum problema de dados, o gasoduto Data Factory pode lançar este erro: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,'

ResoluçãoResolution

Selecione a opção Cópia Binária enquanto cria a atividade Copy.Select the Binary Copy option while creating the Copy activity. Desta forma, para cópias a granel ou migração dos seus dados de um lago de dados para outro, a Data Factory não abrirá os ficheiros para ler o 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. Em vez disso, a Data Factory tratará cada ficheiro como binário e copiá-lo-á para o outro local.Instead, Data Factory will treat each file as binary and copy it to the other location.

Um gasoduto falha quando se atinge o limite de capacidade do tempo de execução da integração para o fluxo de dadosA pipeline run fails when you reach the capacity limit of the integration runtime for data flow

ProblemaIssue

Mensagem de erro: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'.

MotivoCause

Atingiste o limite de capacidade do tempo de integração.You've reached the integration runtime's capacity limit. Você pode estar executando uma grande quantidade de fluxo de dados usando o mesmo tempo de integração ao mesmo tempo.You might be running a large amount of data flow by using the same integration runtime at the same time. Consulte limites de subscrição e serviço da Azure, quotas e constrangimentos para mais detalhes.See Azure subscription and service limits, quotas, and constraints for details.

ResoluçãoResolution

  • Executar os seus oleodutos em diferentes momentos de disparo.Run your pipelines at different trigger times.
  • Crie um novo tempo de integração e divida os seus oleodutos através de vários tempos de integração.Create a new integration runtime, and split your pipelines across multiple integration runtimes.

Um erro de execução do gasoduto ao invocar rest api numa atividade webA pipeline run error while invoking REST api in a Web activity

ProblemaIssue

Mensagem de erro:Error message:

Operation on target Cancel failed: {“error”:{“code”:”AuthorizationFailed”,”message”:”The client ‘<client>’ with object id ‘<object>’ does not have authorization to perform action ‘Microsoft.DataFactory/factories/pipelineruns/cancel/action’ over scope ‘/subscriptions/<subscription>/resourceGroups/<resource group>/providers/Microsoft.DataFactory/factories/<data factory name>/pipelineruns/<pipeline run id>’ or the scope is invalid. If access was recently granted, please refresh your credentials.”}}

MotivoCause

Os oleodutos podem utilizar a atividade Web para ligar para os métodos ADF REST API se e somente se o membro da Azure Data Factory for atribuído o papel de Contribuinte.Pipelines may use the Web activity to call ADF REST API methods if and only if the Azure Data Factory member is assigned the Contributor role. Primeiro, deve configurar adicionar a identidade gerida pela Azure Data Factory à função de segurança do Contribuinte.You must first configure add the Azure Data Factory managed identity to the Contributor security role.

ResoluçãoResolution

Antes de utilizar a API REST da Azure Data Factory no separador Definições de uma atividade Web, a segurança deve ser configurada.Before using the Azure Data Factory’s REST API in a Web activity’s Settings tab, security must be configured. Os oleodutos Azure Data Factory podem utilizar a atividade Web para ligar para os métodos ADF REST API se e somente se a identidade gerida pela Azure Data Factory for atribuída a função de Contribuinte.Azure Data Factory pipelines may use the Web activity to call ADF REST API methods if and only if the Azure Data Factory managed identity is assigned the Contributor role. Comece por abrir o portal Azure e clicar na ligação todos os recursos no menu esquerdo.Begin by opening the Azure portal and clicking the All resources link on the left menu. Selecione Azure Data Factory para adicionar identidade gerida a ADF com papel de Contribuinte clicando no botão Adicionar uma caixa de atribuição de funções.Select Azure Data Factory to add ADF managed identity with Contributor role by clicking the Add button in the Add a role assignment box.

Como verificar e ramificar o sucesso e a falha a nível de atividade nos oleodutosHow to check and branch on activity-level success and failure in pipelines

MotivoCause

A orquestração Azure Data Factory permite a lógica condicional e permite que os utilizadores tomem caminhos diferentes com base no resultado de uma atividade anterior.Azure Data Factory orchestration allows conditional logic and enables users to take different paths based upon the outcome of a previous activity. Permite quatro caminhos condicional: Após o Sucesso (passe padrão), Após O Fracasso, Após A Conclusão, e Após O Salto.It allows four conditional paths: Upon Success (default pass), Upon Failure, Upon Completion, and Upon Skip.

A Azure Data Factory avalia o resultado de todas as atividades ao nível das folhas.Azure Data Factory evaluates the outcome of all leaf-level activities. Os resultados do gasoduto só são bem sucedidos se todas as folhas forem bem sucedidas.Pipeline results are successful only if all leaves succeed. Se uma atividade de folha foi ignorada, avaliamos a sua atividade principal.If a leaf activity was skipped, we evaluate its parent activity instead.

ResoluçãoResolution

Como monitorizar falhas de gasodutos em intervalos regularesHow to monitor pipeline failures in regular intervals

MotivoCause

Pode ser necessário monitorizar os oleodutos falhados da Data Factory em intervalos, digamos, 5 minutos.You might need to monitor failed Data Factory pipelines in intervals, say 5 minutes. Pode consultar e filtrar o gasoduto a partir de uma fábrica de dados utilizando o ponto final.You can query and filter the pipeline runs from a data factory by using the endpoint.

ResoluçãoResolution

  • Pode configurar uma aplicação lógica Azure para consultar todos os oleodutos falhados a cada 5 minutos, conforme descrito na Consulta By Factory.You can set up an Azure logic app to query all of the failed pipelines every 5 minutes, as described in Query By Factory. Então, pode reportar incidentes ao seu sistema de bilhética.Then, you can report incidents to your ticketing system.
  • Pipeline monitor visualVisually Monitor Pipeline

O grau de aumento do paralelismo não resulta numa maior produçãoDegree of parallelism increase does not result in higher throughput

MotivoCause

O grau de paralelismo em ForEach é, na verdade, o grau máximo de paralelismo.The degree of parallelism in ForEach is actually max degree of parallelism. Não podemos garantir um número específico de execuções que ocorram ao mesmo tempo, mas este parâmetro garantirá que nunca ultrapassamos o valor estabelecido.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. Deve ver isto como um limite, para ser alavancado ao controlar o acesso simultâneo às suas fontes e pias.You should see this as a limit, to be leveraged when controlling concurrent access to your sources and sinks.

Factos Conhecidos sobre ForEachKnown Facts about ForEach

  • Foreach tem uma propriedade chamada contagem de lote(n) onde o valor padrão é 20 e o máximo é de 50.Foreach has a property called batch count(n) where default value is 20 and the max is 50.
  • A contagem de lotes, n, é usada para construir n filas.The batch count, n, is used to construct n queues.
  • Cada fila corre sequencialmente, mas você pode ter várias filas correndo em paralelo.Every queue runs sequentially, but you can have several queues running in parallel.
  • As filas são pré-criadas.The queues are pre-created. Isto significa que não há reequilíbrio das filas durante o tempo de funcionamento.This means there is no rebalancing of the queues during the runtime.
  • A qualquer momento, tem no máximo um item sendo processado por fila.At any time, you have at most one item being process per queue. Isto significa que, no máximo, n itens estão a ser processados a qualquer momento.This means at most n items being processed at any given time.
  • O tempo total de processamento forifível é igual ao tempo de processamento da fila mais longa.The foreach total processing time is equal to the processing time of the longest queue. Isto significa que a atividade do foreach depende da forma como as filas são construídas.This means that the foreach activity depends on how the queues are constructed.

ResoluçãoResolution

  • Não deve utilizar a atividade SetVariable dentro de cada um que funciona em paralelo.You should not use SetVariable activity inside For Each that runs in parallel.
  • Tendo em conta a forma como as filas são construídas, o cliente pode melhorar o desempenho do foreach, definindo múltiplos de proa onde cada proa terá itens com tempo de processamento semelhante.Taking in consideration the way the queues are constructed, customer can improve the foreach performance by setting multiples of foreach where each foreach will have items with similar processing time.
  • Isto assegurará que os longos prazos sejam processados paralelamente de forma bastante sequencial.This will ensure that long runs are processed in parallel rather sequentially.

O estado do gasoduto está na fila ou preso por muito tempoPipeline status is queued or stuck for a long time

MotivoCause

Isto pode acontecer por várias razões como bater limites de concordância, falhas de serviço, falhas de rede e assim por diante.This can happen for various reasons like hitting concurrency limits, service outages, network failures and so on.

ResoluçãoResolution

  • Limite de Concordância: Se o seu gasoduto tiver uma política de concordância, verifique se não existem antigos gasodutos em curso.Concurrency Limit: If your pipeline has a concurrency policy, verify that there are no old pipeline runs in progress. A concordância máxima permitida na Fábrica de Dados Azure é de 10 oleodutos.The maximum pipeline concurrency allowed in Azure Data Factory is 10 pipelines .
  • Limites de monitorização: Vá à tela de autoria da ADF, selecione o seu oleoduto e determine se tem uma propriedade de conuncy atribuída a ele.Monitoring limits: Go to the ADF authoring canvas, select your pipeline, and determine if it has a concurrency property assigned to it. Se tiver, aceda à vista Monitorização e confirme se não há nada nos últimos 45 dias que esteja em curso.If it does, go to the Monitoring view, and make sure there's nothing in the past 45 days that's in progress. Se houver algo em andamento, pode cancelá-lo e o novo oleoduto deve começar.If there is something in progress, you can cancel it and the new pipeline run should start.
  • Questões Transitórias: É possível que a sua execução tenha sido afetada por um problema transitório de rede, falhas de credenciais, falhas de serviços, etc. Se isso acontecer, a Azure Data Factory tem um processo de recuperação interna que monitoriza todas as corridas e as inicia quando percebe que algo correu mal.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 processo acontece a cada hora, por isso, se a sua corrida ficar presa por mais de uma hora, crie um caso de apoio.This process happens every one hour, so if your run is stuck for more than an hour, create a support case.

Tempos de arranque mais longos para atividades em ADF Copy e Data FlowLonger start up times for activities in ADF Copy and Data Flow

MotivoCause

Isto pode acontecer se não tiver implementado tempo para viver recurso para Data Flow ou SHIR otimizado.This can happen if you have not implemented time to live feature for Data Flow or optimized SHIR.

ResoluçãoResolution

  • Se cada atividade de cópia estiver a demorar até 2 minutos a ser iniciada e o problema ocorrer principalmente numa associação VNet (vs. Azure IR), poderá tratar-se de um problema de desempenho da cópia.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 rever os passos de resolução de problemas, vá para Copy Performance Improvement.To review troubleshooting steps, go to Copy Performance Improvement.
  • Pode utilizar o tempo para viver a funcionalidade para diminuir o tempo de arranque do cluster para atividades de fluxo de dados.You can use time to live feature to decrease cluster start up time for data flow activities. Por favor, reveja o tempo de execução da integração do fluxo de dados.Please review Data Flow Integration Runtime.

Problemas de capacidade de ataque em SHIR (Tempo de Execução de Integração Auto-Hospedada)Hitting capacity issues in SHIR(Self Hosted Integration Runtime)

MotivoCause

Isto pode acontecer se não tiver aumentado o SHIR de acordo com a sua carga de trabalho.This can happen if you have not scaled up SHIR as per your workload.

ResoluçãoResolution

  • Se encontrar um problema de capacidade da SHIR, atualize o VM para aumentar o nó para equilibrar as atividades.If you encounter a capacity issue from SHIR, upgrade the VM to increase the node to balance the activities. Se receber uma mensagem de erro sobre uma falha ou erro geral auto-hospedado, uma atualização ira auto-hospedada ou problemas de conectividade IR auto-hospedados, que podem gerar uma longa fila, vá para o tempo de integração auto-hospedado.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.

Mensagens de erro devido a longas filas para cópia aDF e fluxo de dadosError messages due to long queues for ADF Copy and Data Flow

MotivoCause

Mensagens de erro relacionadas com a fila longa podem aparecer por várias razões.Long queue related error messages can appear for various reasons.

ResoluçãoResolution

Passos seguintesNext steps

Para obter mais ajuda para resolver problemas, experimente estes recursos:For more troubleshooting help, try these resources: