다음을 통해 공유


분산 데이터 배포자 변환

적용 대상: SQL Server Azure Data Factory의 SSIS Integration Runtime

BDD(Balanced Data Distributor) 변환은 최신 CPU의 동시 처리 기능을 활용합니다. 들어오는 행의 버퍼를 별도의 스레드의 출력에 균일하게 분산합니다. BDD 구성 요소는 각 출력 경로에 대해 별도의 스레드를 사용하여 다중 코어 또는 다중 프로세서 컴퓨터에서 SSIS 패키지의 성능을 향상시킵니다.

다음 다이어그램에서는 BDD 변환을 사용하는 간단한 예제를 보여 줍니다. 이 예제에서 BDD 변환은 플랫 파일 원본의 입력 데이터에서 한 번에 하나의 파이프라인 버퍼를 선택하고 라운드 로빈 방식으로 세 개의 출력 경로 중 하나를 아래로 보냅니다. SQL Server 데이터 도구에서 데이터 흐름 작업의 속성을 표시하는 속성 창에서 DefaultBufferSize (파이프라인 버퍼의 기본 크기) 및 DefaultBufferMaxRows(파이프라인 버퍼의 기본 최대 행 수)의 값을 확인할 수 있습니다.

균형 있는 데이터 배포자

분산 데이터 배포자 변환은 다음 조건을 충족하는 시나리오에서 패키지의 성능을 향상시키는 데 도움이 됩니다.

  1. BDD 변환에는 많은 양의 데이터가 들어옵니다. 데이터 크기가 작고 하나의 버퍼만 데이터를 저장할 수 있는 경우 BDD 변환을 사용할 이유가 없습니다. 데이터 크기가 크고 데이터를 저장하기 위해 여러 버퍼가 필요한 경우 BDD는 별도의 스레드를 사용하여 데이터의 버퍼를 병렬로 효율적으로 처리할 수 있습니다.

  2. 데이터를 읽는 속도가 데이터 흐름의 나머지 부분에서 데이터를 처리할 수 있는 속도보다 빠른 경우. 이 시나리오에서는 데이터에서 수행되는 변환이 데이터가 들어오는 속도에 비해 느리게 실행됩니다. 대상에 병목 상태가 발생한 경우 대상이 병렬 처리될 수 있어야 합니다.

  3. 데이터를 정렬할 필요가 없습니다. 예를 들어 데이터를 정렬된 상태로 유지해야 하는 경우 BDD 변환을 사용하여 데이터를 분할하면 안 됩니다.

SSIS 패키지의 병목 현상이 원본에서 데이터를 읽을 수 있는 속도 때문에 발생하는 경우 BDD 구성 요소는 성능을 향상시키는 데 도움이 되지 않습니다. SSIS 패키지의 병목 현상이 대상이 병렬 처리를 지원하지 않기 때문인 경우 BDD는 도움이 되지 않습니다. 그러나 모든 변환을 병렬로 수행하고 Union All 변환을 사용하여 데이터를 대상으로 보내기 전에 BDD 변환의 다른 출력 경로에서 나오는 출력 데이터를 결합할 수 있습니다.

Important

변환 사용에 대한 데모를 보려면 TechNet 라이브러리에서 분산 데이터 배포자 비디오 를 참조하세요.