Azure Data Factory 파이프라인 오케스트레이션 및 트리거 문제 해결Troubleshoot pipeline orchestration and triggers in Azure Data Factory

적용 대상: Azure Data Factory Azure Synapse Analytics

Azure Data Factory의 파이프라인 실행은 파이프라인 실행의 인스턴스를 정의합니다.A pipeline run in Azure Data Factory defines an instance of a pipeline execution. 예를 들어 오전 8:00 시, 9:00 오전 및 10:00 AM에 실행 되는 파이프라인이 있다고 가정해 보겠습니다.For example, let's say you have a pipeline that runs at 8:00 AM, 9:00 AM, and 10:00 AM. 이 경우 세 개의 별도 파이프라인이 실행 됩니다.In this case, there are three separate pipeline runs. 각 파이프라인 실행에는 고유한 파이프라인 실행 ID가 있습니다.Each pipeline run has a unique pipeline run ID. 실행 ID는 특정 파이프라인 실행을 정의 하는 GUID (globally unique identifier)입니다.A run ID is a globally unique identifier (GUID) that defines that particular pipeline run.

파이프라인 실행은 일반적으로 파이프라인에 정의된 매개 변수에 인수를 전달하여 인스턴스화됩니다.Pipeline runs are typically instantiated by passing arguments to parameters that you define in the pipeline. 수동으로 또는 트리거를 사용 하 여 파이프라인을 실행할 수 있습니다.You can run a pipeline either manually or by using a trigger. 자세한 내용은 Azure Data Factory 파이프라인 실행 및 트리거 를 참조 하세요.See Pipeline execution and triggers in Azure Data Factory for details.

일반적인 문제, 원인 및 해결 방법Common issues, causes, and solutions

Azure Functions 앱 파이프라인이 개인 끝점 연결을 사용 하 여 오류를 throw 합니다.An Azure Functions app pipeline throws an error with private endpoint connectivity

개인 끝점에서 실행 되는 Data Factory 및 Azure 함수 앱이 있습니다.You have Data Factory and an Azure function app running on a private endpoint. 함수 앱과 상호 작용 하는 파이프라인을 실행 하려고 합니다.You're trying to run a pipeline that interacts with the function app. 세 가지 다른 방법을 시도 했지만 하나는 오류 "잘못 된 요청"을 반환 하 고 다른 두 메서드는 "103 오류를 사용할 수 없습니다."를 반환 합니다.You've tried three different methods, but one returns error "Bad Request," and the other two methods return "103 Error Forbidden."

원인Cause

현재 Data Factory는 함수 앱에 대 한 개인 끝점 커넥터를 지원 하지 않습니다.Data Factory currently doesn't support a private endpoint connector for function apps. Azure Functions은 개인 링크의 연결만 허용 하도록 구성 되어 있기 때문에 호출을 거부 합니다.Azure Functions rejects calls because it's configured to allow only connections from a private link.

해결 방법Resolution

PrivateLinkService 끝점을 만들고 함수 앱의 DNS를 제공 합니다.Create a PrivateLinkService endpoint and provide your function app's DNS.

파이프라인 실행이 취소 되었지만 모니터는 계속 진행 상태를 표시 합니다.A pipeline run is canceled but the monitor still shows progress status

원인Cause

파이프라인 실행을 취소 하면 파이프라인 모니터링에서 여전히 진행 상태를 표시 하는 경우가 많습니다.When you cancel a pipeline run, pipeline monitoring often still shows the progress status. 이는 브라우저 캐시 문제로 인해 발생 합니다.This happens because of a browser cache issue. 또한 올바른 모니터링 필터를 사용할 수 없습니다.You also might not have the correct monitoring filters.

해결 방법Resolution

브라우저를 새로 고치고 올바른 모니터링 필터를 적용 합니다.Refresh the browser and apply the correct monitoring filters.

파이프라인을 복사할 때 "DelimitedTextMoreColumnsThanDefined" 오류가 표시 됩니다.You see a "DelimitedTextMoreColumnsThanDefined" error when copying a pipeline

원인Cause

복사 하는 폴더에 다양 한 수의 열, 서로 다른 구분 기호, 따옴표 문자 설정, 일부 데이터 문제 등의 스키마가 있는 파일이 포함 되어 있으면 Data Factory 파이프라인이이 오류를 throw 할 수 있습니다.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,'

해결 방법Resolution

복사 작업을 만드는 동안 이진 복사 옵션을 선택 합니다.Select the Binary Copy option while creating the Copy activity. 이러한 방식으로 data lake에서 다른 data lake로 데이터를 대량 복사 하거나 마이그레이션하면 스키마를 읽을 수 Data Factory 파일이 열리지 않습니다.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. 대신, Data Factory는 각 파일을 이진으로 처리 하 고 다른 위치에 복사 합니다.Instead, Data Factory will treat each file as binary and copy it to the other location.

데이터 흐름에 대 한 통합 런타임의 용량 제한에 도달 하면 파이프라인 실행이 실패 합니다.A pipeline run fails when you reach the capacity limit of the integration runtime for data flow

문제점Issue

오류 메시지: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'.

원인Cause

통합 런타임의 용량 제한에 도달 했습니다.You've reached the integration runtime's capacity limit. 동시에 동일한 통합 런타임을 사용 하 여 많은 양의 데이터 흐름을 실행 하 고 있을 수 있습니다.You might be running a large amount of data flow by using the same integration runtime at the same time. 자세한 내용은 Azure 구독 및 서비스 제한, 할당량 및 제약 조건 을 참조 하세요.See Azure subscription and service limits, quotas, and constraints for details.

해결 방법Resolution

  • 여러 트리거 시간에 파이프라인을 실행 합니다.Run your pipelines at different trigger times.
  • 새 integration runtime을 만들고 여러 통합 런타임으로 파이프라인을 분할 합니다.Create a new integration runtime, and split your pipelines across multiple integration runtimes.

파이프라인에서 활동 수준 오류 및 실패를 수행 하는 방법How to perform activity-level errors and failures in pipelines

원인Cause

Azure Data Factory 오케스트레이션은 조건부 논리를 허용 하 고 사용자가 이전 작업의 결과에 따라 다른 경로를 사용할 수 있도록 합니다.Azure Data Factory orchestration allows conditional logic and enables users to take different paths based upon the outcome of a previous activity. 성공 시 (기본 패스), 실패 시, 완료 시, 건너뛸 때 네 가지 조건부 경로를 사용할 수 있습니다.It allows four conditional paths: Upon Success (default pass), Upon Failure, Upon Completion, and Upon Skip.

Azure Data Factory은 모든 리프 수준 활동의 결과를 평가 합니다.Azure Data Factory evaluates the outcome of all leaf-level activities. 모든 작업이 성공 하는 경우에만 파이프라인 결과가 성공 합니다.Pipeline results are successful only if all leaves succeed. 리프 활동을 건너뛴 경우 해당 부모 활동을 대신 평가 합니다.If a leaf activity was skipped, we evaluate its parent activity instead.

해결 방법Resolution

정기적으로 파이프라인 오류를 모니터링 하는 방법How to monitor pipeline failures in regular intervals

원인Cause

5 분 이라는 간격으로 실패 한 Data Factory 파이프라인을 모니터링 해야 할 수도 있습니다.You might need to monitor failed Data Factory pipelines in intervals, say 5 minutes. 끝점을 사용 하 여 데이터 팩터리에서 파이프라인 실행을 쿼리하고 필터링 할 수 있습니다.You can query and filter the pipeline runs from a data factory by using the endpoint.

해결 방법Resolution

병렬 처리 수준 증가로 인해 처리량이 더 높지 않습니다.Degree of parallelism increase does not result in higher throughput

원인Cause

ForEach 의 병렬 처리 수준은 실제로 최대 병렬 처리 수준입니다.The degree of parallelism in ForEach is actually max degree of parallelism. 특정 횟수의 실행이 동시에 발생 하는 것을 보장할 수는 없지만이 매개 변수는 설정 된 값을 초과 하지 않도록 보장 합니다.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. 소스 및 싱크에 대 한 동시 액세스를 제어할 때 활용할 수 있도록이를 제한으로 표시 해야 합니다.You should see this as a limit, to be leveraged when controlling concurrent access to your sources and sinks.

ForEach 에 대 한 알려진 팩트Known Facts about ForEach

  • Foreach에는 배치 수 (n) 라는 속성이 있습니다. 여기서 기본값은 20이 고 최대값은 50입니다.Foreach has a property called batch count(n) where default value is 20 and the max is 50.
  • 일괄 처리 수 n은 n 개 큐를 구성 하는 데 사용 됩니다.The batch count, n, is used to construct n queues. 이러한 큐가 생성 되는 방법에 대 한 자세한 내용은 뒷부분에서 설명 합니다.Later we will discuss some details on how these queues are constructed.
  • 모든 큐는 순차적으로 실행 되지만 여러 큐를 병렬로 실행할 수 있습니다.Every queue runs sequentially, but you can have several queues running in parallel.
  • 큐는 미리 생성 됩니다.The queues are pre-created. 즉, 런타임 중에 큐의 균형을 다시 조정 하지 않습니다.This means there is no rebalancing of the queues during the runtime.
  • 언제 든 지 큐 당 최대 하나의 항목만 처리할 수 있습니다.At any time, you have at most one item being process per queue. 이는 지정 된 시간에 최대 n 개의 항목이 처리 됨을 의미 합니다.This means at most n items being processed at any given time.
  • Foreach 총 처리 시간은 가장 긴 큐의 처리 시간과 같습니다.The foreach total processing time is equal to the processing time of the longest queue. 즉, foreach 활동은 큐가 생성 되는 방법에 따라 달라 집니다.This means that the foreach activity depends on how the queues are constructed.

해결 방법Resolution

  • 병렬로 실행 되는 각에 대해 setvariable 활동을 사용 하면 안 됩니다.You should not use SetVariable activity inside For Each that runs in parallel.
  • 큐가 생성 되는 방식을 고려 하 여 고객은 각 foreach에 비슷한 처리 시간이 있는 항목을 포함 하는 여러 foreaches 를 설정 하 여 foreach 성능을 향상 시킬 수 있습니다.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. 이렇게 하면 장기 실행이 순차적으로 병렬로 처리 됩니다.This will ensure that long runs are processed in parallel rather sequentially.

파이프라인 상태가 큐에 대기 중이거나 오랜 시간 동안 정지 됨Pipeline status is queued or stuck for a long time

원인Cause

동시성 한도, 서비스 중단, 네트워크 오류 등의 다양 한 이유로 발생할 수 있습니다.This can happen for various reasons like hitting concurrency limits, service outages, network failures and so on.

해결 방법Resolution

  • 동시성 제한: 파이프라인에 동시성 정책이 있는 경우 이전 파이프라인 실행이 진행 중이 아닌지 확인 합니다.Concurrency Limit: If your pipeline has a concurrency policy, verify that there are no old pipeline runs in progress. Azure Data Factory에서 허용 되는 최대 파이프라인 동시성은 10 개의 파이프라인입니다.The maximum pipeline concurrency allowed in Azure Data Factory is 10 pipelines .
  • 제한 모니터링: ADF 제작 캔버스로 이동 하 여 파이프라인을 선택 하 고 동시성 속성이 할당 되어 있는지 확인 합니다.Monitoring limits: Go to the ADF authoring canvas, select your pipeline, and determine if it has a concurrency property assigned to it. 이 경우 모니터링 보기로 이동 하 여 지난 45 일 동안 진행 중인 내용이 없는지 확인 합니다.If it does, go to the Monitoring view, and make sure there's nothing in the past 45 days that's in progress. 진행 중인 항목이 있으면 취소 하 고 새 파이프라인 실행을 시작 해야 합니다.If there is something in progress, you can cancel it and the new pipeline run should start.
  • 일시적인 문제: 일시적인 네트워크 문제, 자격 증명 오류, 서비스 중단 등으로 인해 실행이 영향을 받을 수 있습니다. 이 경우 Azure Data Factory에는 모든 실행을 모니터링 하 고 문제가 발생 했을 때 시작 하는 내부 복구 프로세스가 있습니다.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. 이 프로세스는 1 시간 마다 발생 하므로 실행이 1 시간 이상 걸린 경우 지원 사례를 만듭니다.This process happens every one hour, so if your run is stuck for more than an hour, create a support case.

ADF 복사 및 데이터 흐름에서 활동에 대 한 시작 시간이 길어집니다.Longer start up times for activities in ADF Copy and Data Flow

원인Cause

이 문제는 데이터 흐름에 대 한 time to live 기능을 구현 하지 않았거나 최적화 된 SHIR을 구현 하지 않은 경우에 발생할 수 있습니다.This can happen if you have not implemented time to live feature for Data Flow or optimized SHIR.

해결 방법Resolution

  • 각 복사 작업을 시작하는 데 최대 2분이 걸리고 이 문제가 주로 VNet 조인(및 Azure IR)에서 발생하는 경우 이는 복사 성능 문제일 수 있습니다.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. 문제 해결 단계를 검토 하려면 복사 성능 향상으로 이동 합니다.To review troubleshooting steps, go to Copy Performance Improvement.
  • Time to live 기능을 사용 하 여 데이터 흐름 작업에 대 한 클러스터 시작 시간을 줄일 수 있습니다.You can use time to live feature to decrease cluster start up time for data flow activities. Integration Runtime 데이터 흐름을 검토 하십시오.Please review Data Flow Integration Runtime.

SHIR의 용량 문제 (자체 호스트 된 Integration Runtime) 적중Hitting capacity issues in SHIR(Self Hosted Integration Runtime)

원인Cause

이는 작업에 따라 SHIR을 확장 하지 않은 경우에 발생할 수 있습니다.This can happen if you have not scaled up SHIR as per your workload.

해결 방법Resolution

  • SHIR에서 용량 문제가 발생 한 경우 VM을 업그레이드 하 여 노드를 늘려 활동의 균형을 유지 합니다.If you encounter a capacity issue from SHIR, upgrade the VM to increase the node to balance the activities. 자체 호스팅 IR 일반 오류 또는 오류, 자체 호스팅 IR 업그레이드 또는 긴 큐를 생성할 수 있는 자체 호스팅 IR 연결 문제에 대 한 오류 메시지가 표시 되는 경우 자체 호스팅 통합 런타임 문제 해결로 이동 합니다.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.

ADF 복사 및 데이터 흐름에 대 한 긴 큐로 인 한 오류 메시지Error messages due to long queues for ADF Copy and Data Flow

원인Cause

다양 한 이유로 긴 큐 관련 오류 메시지가 표시 될 수 있습니다.Long queue related error messages can appear for various reasons.

해결 방법Resolution

다음 단계Next steps

문제 해결을 위한 도움이 필요한 경우 다음 리소스를 참조하세요.For more troubleshooting help, try these resources: