복사 작업 성능 및 확장성 가이드Copy activity performance and scalability guide

적용 대상: Azure Data Factory Azure Synapse Analytics

Data lake 또는 EDW (엔터프라이즈 데이터 웨어하우스)에서 Azure로 대규모 데이터 마이그레이션을 수행 하려는 경우가 있습니다.Sometimes you want to perform a large-scale data migration from data lake or enterprise data warehouse (EDW), to Azure. 빅 데이터 분석을 위해 다양 한 원본에서 Azure로 많은 양의 데이터를 수집 하려는 경우도 있습니다.Other times you want to ingest large amounts of data, from different sources into Azure, for big data analytics. 각 경우에서 최적의 성능 및 확장성을 구현 하는 것이 중요 합니다.In each case, it is critical to achieve optimal performance and scalability.

ADF (Azure Data Factory)는 데이터를 수집 하는 메커니즘을 제공 합니다.Azure Data Factory (ADF) provides a mechanism to ingest data. ADF의 이점은 다음과 같습니다.ADF has the following advantages:

  • 많은 양의 데이터를 처리 합니다.Handles large amounts of data
  • 고성능Is highly performant
  • 비용 효율적Is cost-effective

이러한 이점은 뛰어난 확장성이 뛰어난 데이터 수집 파이프라인을 구축 하려는 데이터 엔지니어에 게 적합 합니다.These advantages make ADF an excellent fit for data engineers who want to build scalable data ingestion pipelines that are highly performant.

이 문서를 읽은 다음에는 다음과 같은 질문에 답할 수 있습니다.After reading this article, you will be able to answer the following questions:

  • 데이터 마이그레이션 및 데이터 수집 시나리오에서 ADF 복사 작업을 사용 하 여 어떤 수준의 성능 및 확장성을 달성할 수 있나요?What level of performance and scalability can I achieve using ADF copy activity for data migration and data ingestion scenarios?
  • ADF 복사 작업의 성능을 조정 하기 위해 수행 해야 하는 단계는 무엇 인가요?What steps should I take to tune the performance of ADF copy activity?
  • 단일 복사 작업 실행의 성능을 최적화 하기 위해 활용할 수 있는 ADF 성능 최적화 노브 무엇 인가요?What ADF perf optimization knobs can I utilize to optimize performance for a single copy activity run?
  • ADF 외부에서 복사 성능을 최적화할 때 고려할 다른 요소는 무엇 인가요?What other factors outside ADF to consider when optimizing copy performance?

참고

일반적으로 복사 작업에 익숙하지 않은 경우이 문서를 읽기 전에 복사 작업 개요 를 참조 하세요.If you aren't familiar with the copy activity in general, see the copy activity overview before you read this article.

ADF를 사용 하 여 달성 가능한 복사 성능 및 확장성Copy performance and scalability achievable using ADF

ADF는 서로 다른 수준에서 병렬 처리를 허용 하는 서버 리스 아키텍처를 제공 합니다.ADF offers a serverless architecture that allows parallelism at different levels.

이 아키텍처를 통해 사용자 환경에 대 한 데이터 이동 처리량을 최대화 하는 파이프라인을 개발할 수 있습니다.This architecture allows you to develop pipelines that maximize data movement throughput for your environment. 이러한 파이프라인은 다음 리소스를 완벽 하 게 활용 합니다.These pipelines fully utilize the following resources:

  • 네트워크 대역폭Network bandwidth
  • 초당 저장소 입/출력 작업 (IOPS) 및 대역폭Storage input/output operations per second (IOPS) and bandwidth

이 전체 사용률을 통해 다음 리소스와 함께 사용할 수 있는 최소 처리량을 측정 하 여 전체 처리량을 예측할 수 있습니다.This full utilization means you can estimate the overall throughput by measuring the minimum throughput available with the following resources:

  • 원본 데이터 저장소Source data store
  • 대상 데이터 저장소Destination data store
  • 원본 및 대상 데이터 저장소 간의 네트워크 대역폭Network bandwidth in between the source and destination data stores

아래 표에서는 복사 기간을 계산 합니다.The table below calculates the copy duration. 기간은 사용자 환경의 데이터 크기와 대역폭 제한을 기반으로 합니다.The duration is based on data size and the bandwidth limit for your environment.

 

데이터 크기/Data size /
bandwidthbandwidth
50Mbps50 Mbps 100Mbps100 Mbps 500Mbps500 Mbps 1Gbps1 Gbps 5Gbps5 Gbps 10Gbps10 Gbps 50Gbps50 Gbps
1 GB1 GB 2.7 분2.7 min 1.4 분1.4 min 0.3 분0.3 min 0.1 분0.1 min 0.03 분0.03 min 0.01 분0.01 min 0.0 분0.0 min
10 GB10 GB 27.3 분27.3 min 13.7 분13.7 min 2.7 분2.7 min 1.3 분1.3 min 0.3 분0.3 min 0.1 분0.1 min 0.03 분0.03 min
100GB100 GB 4.6 시간4.6 hrs 2.3 시간2.3 hrs 0.5 시간0.5 hrs 0.2 시간0.2 hrs 0.05 시간0.05 hrs 0.02 시간0.02 hrs 0.0 시간0.0 hrs
1TB1 TB 46.6 시간46.6 hrs 23.3 시간23.3 hrs 4.7 시간4.7 hrs 2.3 시간2.3 hrs 0.5 시간0.5 hrs 0.2 시간0.2 hrs 0.05 시간0.05 hrs
10TB10 TB 19.4 일19.4 days 9.7 일9.7 days 1.9 일1.9 days 0.9 일0.9 days 0.2 일0.2 days 0.1 일0.1 days 0.02 일0.02 days
100TB100 TB 194.2 일194.2 days 97.1 일97.1 days 19.4 일19.4 days 9.7 일9.7 days 1.9 일1.9 days 1일1 day 0.2 일0.2 days
1PB1 PB 64.7 mo64.7 mo 32.4 mo32.4 mo 6.5 mo6.5 mo 3.2 mo3.2 mo 0.6 mo0.6 mo 0.3 mo0.3 mo 0.06 mo0.06 mo
10gb10 PB 647.3 mo647.3 mo 323.6 mo323.6 mo 64.7 mo64.7 mo 31.6 mo31.6 mo 6.5 mo6.5 mo 3.2 mo3.2 mo 0.6 mo0.6 mo

ADF 복사본은 다양 한 수준에서 확장 가능 합니다.ADF copy is scalable at different levels:

ADF 복사본 크기 조정 방법

  • ADF 제어 흐름은 여러 복사 작업을 병렬로 시작할 수 있습니다(예: For Each 루프 사용).ADF control flow can start multiple copy activities in parallel, for example using For Each loop.

  • 단일 복사 작업은 확장 가능한 계산 리소스를 활용할 수 있습니다.A single copy activity can take advantage of scalable compute resources.

    • IR (Azure integration runtime)을 사용 하는 경우 각 복사 작업에 대해 최대 256 개의 DIUs (데이터 통합 단위) 를 서버를 사용 하지 않는 방식으로 지정할 수 있습니다.When using Azure integration runtime (IR), you can specify up to 256 data integration units (DIUs) for each copy activity, in a serverless manner.
    • 자체 호스팅 IR을 사용 하는 경우 다음 방법 중 하나를 사용할 수 있습니다.When using self-hosted IR, you can take either of the following approaches:
      • 수동으로 컴퓨터를 확장 합니다.Manually scale up the machine.
      • 여러 컴퓨터 (최대 4 개 노드)로 규모를 확장 하 고, 단일 복사 작업은 모든 노드에 걸쳐 해당 파일 집합을 분할 합니다.Scale out to multiple machines (up to 4 nodes), and a single copy activity will partition its file set across all nodes.
  • 단일 복사 작업은 여러 스레드를 병렬로사용 하 여 데이터 저장소에서 읽고 씁니다.A single copy activity reads from and writes to the data store using multiple threads in parallel.

성능 튜닝 단계Performance tuning steps

복사 작업을 사용 하 여 Azure Data Factory 서비스의 성능을 조정 하려면 다음 단계를 수행 합니다.Take the following steps to tune the performance of your Azure Data Factory service with the copy activity:

  1. 테스트 데이터 집합을 선택 하 고 기준선을 설정 합니다.Pick up a test dataset and establish a baseline.

    개발 하는 동안 대표 데이터 샘플에 대 한 복사 작업을 사용 하 여 파이프라인을 테스트 합니다.During development, test your pipeline by using the copy activity against a representative data sample. 선택한 데이터 집합은 다음과 같은 특성을 따르는 일반적인 데이터 패턴을 나타내야 합니다.The dataset you choose should represent your typical data patterns along the following attributes:

    • 폴더 구조Folder structure
    • 파일 패턴File pattern
    • 데이터 스키마Data schema

    그리고 데이터 집합은 복사 성능을 평가할 만큼 충분히 커야 합니다.And your dataset should be big enough to evaluate copy performance. 복사 작업이 완료 되기까지 좋은 크기는 10 분 이상 소요 됩니다.A good size takes at least 10 minutes for copy activity to complete. 복사 작업 모니터링을 수행 하 여 실행 세부 정보 및 성능 특징을 수집 합니다.Collect execution details and performance characteristics following copy activity monitoring.

  2. 단일 복사 작업의 성능을 최대화 하는 방법:How to maximize performance of a single copy activity:

    먼저 단일 복사 작업을 사용 하 여 성능을 최대화 하는 것이 좋습니다.We recommend you to first maximize performance using a single copy activity.

    • Azure integration runtime에서 복사 작업을 실행 하는 경우:If the copy activity is being executed on an Azure integration runtime:

      DIU (데이터 통합 단위 ) 및 병렬 복사 설정에 대 한 기본값을 사용 하 여 시작 합니다.Start with default values for Data Integration Units (DIU) and parallel copy settings.

    • 복사 작업이 자체 호스팅 통합 런타임에서 실행 되는 경우:If the copy activity is being executed on a self-hosted integration runtime:

      IR을 호스트 하는 전용 컴퓨터를 사용 하는 것이 좋습니다.We recommend that you use a dedicated machine to host IR. 컴퓨터는 데이터 저장소를 호스트 하는 서버와 분리 해야 합니다.The machine should be separate from the server hosting the data store. 병렬 복사 설정의 기본값을 사용 하 여 시작 하 고 자체 호스팅 IR에 단일 노드를 사용 합니다.Start with default values for parallel copy setting and using a single node for the self-hosted IR.

    성능 테스트 실행을 수행 합니다.Conduct a performance test run. 달성 한 성능을 적어 둡니다.Take a note of the performance achieved. 사용 되는 실제 값 (예: DIUs 및 병렬 복사본)을 포함 합니다.Include the actual values used, such as DIUs and parallel copies. 사용 되는 실행 결과 및 성능 설정을 수집 하는 방법에 대 한 복사 작업 모니터링 을 참조 하세요.Refer to copy activity monitoring on how to collect run results and performance settings used. 병목 상태를 식별 하 고 해결 하기 위해 복사 작업 성능 문제를 해결 하는 방법에 대해 알아봅니다.Learn how to troubleshoot copy activity performance to identify and resolve the bottleneck.

    문제 해결 및 튜닝 지침에 따라 추가 성능 테스트 실행을 수행 하려면 반복 합니다.Iterate to conduct additional performance test runs following the troubleshooting and tuning guidance. 단일 복사 작업 실행이 더 나은 처리량을 달성할 수 없는 경우 여러 복사본을 동시에 실행 하 여 집계 처리량을 최대화할 지 여부를 고려 합니다.Once single copy activity runs cannot achieve better throughput, consider whether to maximize aggregate throughput by running multiple copies concurrently. 이 옵션은 번호가 매겨진 다음 글머리 기호에 설명 되어 있습니다.This option is discussed in the next numbered bullet.

  3. 여러 복사본을 동시에 실행 하 여 집계 처리량을 최대화 하는 방법:How to maximize aggregate throughput by running multiple copies concurrently:

    이제 단일 복사 작업의 성능을 최대화 했습니다.By now you have maximized the performance of a single copy activity. 환경에 대 한 처리량 상한을 아직 달성 하지 않은 경우 여러 개의 복사 작업을 병렬로 실행할 수 있습니다.If you have not yet achieved the throughput upper limits of your environment, you can run multiple copy activities in parallel. ADF 제어 흐름 구문을 사용 하 여 병렬로 실행할 수 있습니다.You can run in parallel by using ADF control flow constructs. 이러한 구문 중 하나는 For each 루프입니다.One such construct is the For Each loop. 자세한 내용은 솔루션 템플릿에 대 한 다음 문서를 참조 하세요.For more information, see the following articles about solution templates:

  4. 전체 데이터 집합에 대 한 구성을 확장 합니다.Expand the configuration to your entire dataset.

    실행 결과 및 성능에 만족 하는 경우 정의 및 파이프라인을 확장 하 여 전체 데이터 집합을 포함할 수 있습니다.When you're satisfied with the execution results and performance, you can expand the definition and pipeline to cover your entire dataset.

복사 작업 성능 문제 해결Troubleshoot copy activity performance

성능 튜닝 단계 를 따라 시나리오에 대 한 성능 테스트를 계획 하 고 수행 합니다.Follow the Performance tuning steps to plan and conduct performance test for your scenario. 그리고 복사 작업 성능 문제 해결의 Azure Data Factory에서 각 복사 작업 실행의 성능 문제를 해결 하는 방법에 대해 알아봅니다.And learn how to troubleshoot each copy activity run's performance issue in Azure Data Factory from Troubleshoot copy activity performance.

성능 최적화 기능 복사Copy performance optimization features

Azure Data Factory는 다음과 같은 성능 최적화 기능을 제공 합니다.Azure Data Factory provides the following performance optimization features:

데이터 통합 단위Data Integration Units

DIU (데이터 통합 단위)는 Azure Data Factory에서 단일 단위의 기능을 나타내는 측정값입니다.A Data Integration Unit (DIU) is a measure that represents the power of a single unit in Azure Data Factory. 전원은 CPU, 메모리 및 네트워크 리소스 할당의 조합입니다.Power is a combination of CPU, memory, and network resource allocation. DIU는 Azure integration runtime에만 적용 됩니다.DIU only applies to Azure integration runtime. DIU는 자체 호스팅 통합 런타임에적용 되지 않습니다.DIU does not apply to self-hosted integration runtime. 자세한 내용은 여기를 참조하세요.Learn more here.

자체 호스팅 통합 런타임 확장성Self-hosted integration runtime scalability

늘어난 동시 작업을 호스트할 수 있습니다.You might want to host an increasing concurrent workload. 또는 현재 워크 로드 수준에서 더 높은 성능을 달성할 수 있습니다.Or you might want to achieve higher performance in your present workload level. 다음 방법으로 처리 규모를 향상 시킬 수 있습니다.You can enhance the scale of processing by the following approaches:

  • 노드에서 실행할 수 있는 동시 작업 수를 늘려서 자체 호스팅 IR 을 확장할 수 있습니다.You can scale up the self-hosted IR, by increasing the number of concurrent jobs that can run on a node.
    수직 확장은 노드의 프로세서와 메모리가 완전히 활용 된 것 보다 작은 경우에만 작동 합니다.Scale up works only if the processor and memory of the node are being less than fully utilized.
  • 노드 (컴퓨터 )를 더 추가 하 여 자체 호스팅 IR을 확장할 수 있습니다.You can scale out the self-hosted IR, by adding more nodes (machines).

자세한 내용은 다음을 참조하세요.For more information, see:

병렬 복사Parallel copy

속성을 설정 parallelCopies 하 여 복사 작업에 사용할 병렬 처리를 나타낼 수 있습니다.You can set the parallelCopies property to indicate the parallelism you want the copy activity to use. 이 속성은 복사 작업 내의 최대 스레드 수로 간주 합니다.Think of this property as the maximum number of threads within the copy activity. 스레드가 병렬로 작동 합니다.The threads operate in parallel. 스레드는 원본에서 읽거나 싱크 데이터 저장소에 기록 합니다.The threads either read from your source, or write to your sink data stores. 자세히 알아봅니다.Learn more.

준비된 복사Staged copy

데이터 복사 작업은 데이터를 싱크 데이터 저장소로 직접 보낼 수 있습니다.A data copy operation can send the data directly to the sink data store. 또는 Blob storage를 임시 준비 저장소로 사용 하도록 선택할 수 있습니다.Alternatively, you can choose to use Blob storage as an interim staging store. 자세히 알아보기.Learn more.

다음 단계Next steps

다른 복사 작업 문서를 참조하세요.See the other copy activity articles: