복사 작업 성능 및 확장성 가이드
적용 대상: Azure Data Factory Azure Synapse Analytics
팁
기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아봅니다!
Data lake 또는 EDW(엔터프라이즈 데이터 웨어하우스)에서 Azure로 대규모 데이터 마이그레이션을 수행하려는 경우가 있습니다. 빅 데이터 분석을 위해 다양한 원본에서 Azure로 많은 양의 데이터를 수집하려는 경우도 있습니다. 각 경우에서 최적의 성능 및 확장성을 구현하는 것이 중요합니다.
Azure Data Factory 및 Azure Synapse Analytics 파이프라인은 데이터를 수집하는 메커니즘을 제공하며, 이점은 다음과 같습니다.
- 대량의 데이터 핸들
- 고성능
- 비용 효과적
이러한 이점은 고성능의 확장성 있는 데이터 수집 파이프라인을 구축하려는 데이터 엔지니어에게 매우 적합합니다.
이 문서를 읽은 다음에는 다음과 같은 질문에 답할 수 있습니다.
- 데이터 마이그레이션 및 데이터 수집 시나리오에서 복사 작업을 사용하여 어떤 수준의 성능과 확장성을 달성할 수 있나요?
- 복사 작업의 성능을 조정하기 위해 수행해야 하는 단계는 무엇인가요?
- 단일 복사 작업을 실행하는 데 활용할 수 있는 성능 최적화 기능은 무엇인가요?
- 복사 성능을 최적화할 때 고려할 다른 외부 요소는 무엇인가요?
참고 항목
일반적으로 복사 작업에 익숙하지 않은 경우 이 문서를 읽기 전에 복사 작업 개요를 참조하세요.
Azure Data Factory 및 Synapse 파이프라인을 사용하여 달성 가능한 복사 성능과 확장성
Azure Data Factory 및 Synapse 파이프라인은 여러 수준에서 병렬 처리를 허용하는 서버리스 아키텍처를 제공합니다.
이 아키텍처를 통해 사용자 환경에 대한 데이터 이동 처리량을 최대화하는 파이프라인을 개발할 수 있습니다. 이러한 파이프라인은 다음 리소스를 완벽하게 활용합니다.
- 원본 및 대상 데이터 저장소 간의 네트워크 대역폭
- 원본 또는 대상 데이터 저장소 IOPS(초당 입력/출력 작업 수) 및 대역폭
이 전체 사용률을 통해 다음 리소스와 함께 사용할 수 있는 최소 처리량을 측정하여 전체 처리량을 예측할 수 있습니다.
- 원본 데이터 스토리지
- 대상 데이터 저장소
- 원본 및 대상 데이터 저장소 간의 네트워크 대역폭
아래 표에서는 데이터 이동 기간의 계산을 보여 줍니다. 각 셀의 기간은 지정된 네트워크 및 데이터 저장소 대역폭과 지정된 데이터 페이로드 크기를 기준으로 계산됩니다.
참고 항목
아래에 제공된 기간은 ForEach를 사용해 여러 개의 동시 복사 작업을 분할 및 생성하는 등 복사 성능 최적화 기능에 설명된 성능 최적화 기술을 하나 이상 이용하여 엔드투엔드 데이터 통합 솔루션에서 달성 가능한 성능을 나타냅니다. 특정 데이터 세트 및 시스템 구성에 대한 복사 성능을 최적화하려면 성능 튜닝 단계에 나와 있는 단계를 따르는 것이 좋습니다. 성능 튜닝 테스트에서 얻은 숫자를 프로덕션 배포 계획, 용량 계획 및 청구 프로젝션에 사용해야 합니다.
데이터 크기 / bandwidth |
50Mbps | 100Mbps | 500Mbps | 1Gbps | 5Gbps | 10Gbps | 50Gbps |
---|---|---|---|---|---|---|---|
1GB | 2.7분 | 1.4분 | 0.3분 | 0.1분 | 0.03분 | 0.01분 | 0.0분 |
10GB | 27.3분 | 13.7분 | 2.7분 | 1.3분 | 0.3분 | 0.1분 | 0.03분 |
100GB | 4.6시간 | 2.3시간 | 0.5시간 | 0.2시간 | 0.05시간 | 0.02시간 | 0.0시간 |
1TB | 46.6시간 | 23.3시간 | 4.7시간 | 2.3시간 | 0.5시간 | 0.2시간 | 0.05시간 |
10TB | 19.4일 | 9.7일 | 1.9일 | 0.9일 | 0.2일 | 0.1일 | 0.02일 |
100TB | 194.2일 | 97.1일 | 19.4일 | 9.7일 | 1.9일 | 하루 | 0.2일 |
1PB | 64.7달 | 32.4달 | 6.5달 | 3.2달 | 0.6달 | 0.3달 | 0.06달 |
10 PB | 647.3달 | 323.6달 | 64.7달 | 31.6달 | 6.5달 | 3.2달 | 0.6달 |
복사본은 다양한 수준에서 확장 가능합니다.
제어 흐름에서는 여러 복사 작업을 병렬로 시작할 수 있습니다(예: For Each 루프 사용).
단일 복사 작업은 확장 가능한 컴퓨팅 리소스를 활용할 수 있습니다.
- Azure IR(통합 런타임)을 사용하는 경우 각 복사 작업에 대해 최대 256개의 DIUs(데이터 통합 단위)를 서버를 사용하지 않는 방식으로 지정할 수 있습니다.
- 자체 호스팅 IR을 사용하는 경우 다음 방법 중 하나를 사용할 수 있습니다.
- 수동으로 컴퓨터를 스케일 업합니다.
- 여러 컴퓨터 (최대 4 개 노드)로 규모를 스케일 아웃하고, 단일 복사 작업은 모든 노드에 걸쳐 해당 파일 집합을 파티션합니다.
단일 복사 작업은 여러 스레드를 병렬로 사용하여 데이터 저장소에서 읽고 씁니다.
성능 튜닝 단계
복사 작업을 사용하여 서비스의 성능을 조정하려면 다음 단계를 수행합니다.
테스트 데이터 집합을 선택하고 기준선을 설정합니다.
개발 중 대표적인 데이터 샘플에 대한 복사 작업을 사용하여 파이프라인을 테스트합니다. 선택한 데이터 집합은 다음과 같은 특성을 따르는 일반적인 데이터 패턴을 나타내야 합니다.
- 폴더 구조
- 파일 패턴
- 데이터 스키마
그리고 데이터 집합은 복사 성능을 평가할 만큼 충분히 커야 합니다. 복사 작업이 완료되기까지 적절한 크기는 10분 이상 소요됩니다. 복사 작업 모니터링에서 실행 세부 정보 및 성능 특성을 파악합니다.
단일 복사 작업의 성능을 최대화하는 방법:
먼저 단일 복사 작업을 사용하여 성능을 최대화하는 것이 좋습니다.
Azure 통합 런타임에서 복사 작업을 실행하는 경우:
DIU(데이터 통합 단위) 및 병렬 복사 설정에 대한 기본값을 사용하여 시작합니다.
복사 작업이 자체 호스팅 통합 런타임에서 실행되는 경우:
전용 컴퓨터를 사용하여 통합 런타임을 호스팅하는 것이 좋습니다. 컴퓨터는 데이터 저장소를 호스트하는 서버와 분리해야 합니다. 병렬 복사 설정의 기본값을 사용하여 시작하고 자체 호스팅 IR에 단일 노드를 사용합니다.
성능 테스트 실행을 수행합니다. 달성한 성능을 적어둡니다. 사용되는 실제 값(예: DIUs 및 병렬 복사본)을 포함합니다. 사용되는 실행 결과 및 성능 설정을 수집하는 방법에 대한 복사 작업 모니터링을 참조하세요. 병목 상태를 식별하고 해결하기 위해 복사 작업 성능 문제를 해결하는 방법에 대해 알아봅니다.
문제 해결 및 튜닝 지침에 따라 추가 성능 테스트 실행을 수행하려면 반복합니다. 단일 복사 작업 실행이 더 나은 처리량을 달성할 수 없는 경우 여러 복사본을 동시에 실행하여 집계 처리량을 최대화할 지 여부를 고려합니다. 이 옵션은 번호가 매겨진 다음 글머리 기호에 설명되어 있습니다.
여러 복사본을 동시에 실행하여 집계 처리량을 최대화하는 방법:
이제 단일 복사 작업의 성능을 최대화 했습니다. 환경에 대한 처리량 상한을 아직 달성하지 않은 경우 여러 개의 복사 작업을 병렬로 실행할 수 있습니다. 제어 흐름 구문을 사용하여 병렬로 실행할 수 있습니다. 이러한 구문 중 하나는 For each 루프입니다. 자세한 내용은 솔루션 템플릿에 대한 다음 문서를 참조하세요.
전체 데이터 집합으로 구성 확장.
실행 결과 및 성능에 만족하면 정의 및 파이프라인을 확장하여 전체 데이터 집합을 포함할 수 있습니다.
복사 작업 성능 문제 해결
성능 튜닝 단계를 따라 시나리오에 대한 성능 테스트를 계획하고 수행합니다. 그리고 복사 작업 성능 문제 해결에서 각 복사 작업 실행의 성능 문제를 해결하는 방법에 대해 알아봅니다.
복사 작업 성능 최적화 기능
서비스에서 제공하는 성능 최적화 기능은 다음과 같습니다.
데이터 통합 단위
DIU(데이터 통합 단위)는 Azure Data Factory 및 Synapse 파이프라인에 있는 단일 유닛의 전원을 나타내는 단위입니다. 전원은 CPU, 메모리 및 네트워크 리소스 할당의 조합입니다. DIU는 Azure Integration Runtime에만 적용됩니다. DIU는 자체 호스팅 통합 런타임에 적용되지 않습니다. 여기를 참조하세요.
자체 호스팅 통합 런타임 확장성
늘어난 동시 워크로드를 호스트할 수 있습니다. 또는 현재 워크로드 수준에서 더 높은 성능을 달성하길 원할 수 있습니다. 다음 방법으로 처리 규모를 향상 시킬 수 있습니다.
- 노드에서 실행할 수 있는 동시 작업 수를 스케일 업해서 자체 호스팅 IR을 확장할 수 있습니다.
스케일 업 작업은 노드의 프로세서와 메모리가 완전히 활용된 것 보다 작은 경우에만 작동합니다. - 노드 (컴퓨터)를 더 스케일 아웃하여 자체 호스팅 IR을 확장할 수 있습니다.
자세한 내용은 다음을 참조하세요.
병렬 복사
parallelCopies
속성을 설정하여 복사 작업에 사용할 병렬 처리를 나타낼 수 있습니다. 이 속성은 복사 작업 내의 최대 스레드 수로 간주합니다. 스레드가 병렬로 작동합니다. 스레드는 원본에서 읽거나 싱크 데이터 저장소에 기록합니다. 자세히 알아보기.
준비된 복사
데이터 복사 작업은 데이터를 싱크 데이터 저장소로 직접 보낼 수 있습니다. 또는 Blob Storage를 임시 준비 저장소로 사용하도록 선택할 수 있습니다. 자세히 알아보기.
관련 콘텐츠
다른 복사 작업 문서를 참조하세요.