다음을 통해 공유


데이터 수집기 아키텍처 및 처리

데이터 수집기는 SQL Server 에이전트 및 Integration Services와 통합되며 둘 다 광범위하게 사용됩니다. 따라서 데이터 수집기를 사용하려면 먼저 이러한 SQL Server 구성 요소 각각과 관련된 특정 개념을 이해해야 합니다.

SQL Server 에이전트는 컬렉션 작업을 예약하고 실행하는 데 사용됩니다. 다음 개념을 이해해야 합니다.

  • 작업

  • 작업 단계

  • 작업 일정

  • 하위 시스템

  • 프록시 계정

자세한 내용은 관리 태스크 자동화(SQL Server 에이전트)를 참조하십시오.

Integration Services(SSIS)는 개별 데이터 공급자에서 데이터를 수집하는 패키지를 실행하는 데 사용됩니다. 다음 SSIS 도구 및 개념에 대해 잘 알고 있어야 합니다.

  • SSIS 패키지

  • SSIS 패키지 구성

자세한 내용은 Integration Services 패키지를 참조하십시오.

데이터 수집기 아키텍처

다음 그림에서는 데이터 컬렉션 및 저장소에 대한 아키텍처 모델을 보여 줍니다.

데이터 수집기 아키텍처

그림에서 볼 수 있듯이 모델의 구성 요소는 다음 범주로 그룹화됩니다.

  • 저장소 구성 요소는 구성 정보 및 수집된 데이터를 포함하는 데이터베이스입니다.

  • 실행 구성 요소는 데이터 컬렉션 및 저장소에 사용됩니다.

  • API 구성 요소는 사용자 인터페이스와 데이터 수집기 간에 상호 작용이 가능하도록 만드는 데 사용됩니다.

  • 클라이언트 구성 요소는 데이터 수집기의 사용자 인터페이스입니다.

다음 섹션에서는 이러한 범주 및 구성 요소에 대해 자세히 설명합니다.

저장소

데이터 수집기는 msdb 데이터베이스와 관리 데이터 웨어하우스, 두 장소에 데이터를 저장합니다.

[!참고]

데이터 수집기는 SQL Server 2005에 도입된 사용자와 스키마 분리 기능을 구현합니다. 자세한 내용은 사용자와 스키마 분리를 참조하십시오.

msdb 시스템 데이터베이스

데이터 수집기는 구성 정보, 런타임 정보, 감사 및 컬렉션 기록 정보를 저장하는 데 msdb 데이터베이스를 사용합니다. 이 데이터베이스는 데이터 수집기를 실행하는 SQL Server 인스턴스에 있어야 합니다. msdb를 사용하면 다음과 같은 이점이 있습니다.

  • 데이터 수집기를 구성하고 실행하는 데 필요한 모든 데이터가 단일 위치에 있습니다.

  • 파일 시스템을 사용하지 않고도 여러 서버에서 데이터 컬렉션 구성을 배포할 수 있습니다.

  • 데이터 수집기가 기존 SQL Server 보안 메커니즘을 사용하여 데이터를 보호할 수 있습니다. 또한 데이터베이스 역할을 사용하여 세부적인 보안을 제공할 수 있으므로 데이터베이스 간 체인을 구현할 필요가 없습니다.

  • msdb가 관계형 데이터베이스이므로 구성 및 런타임 데이터의 참조 무결성이 적용되도록 할 수 있습니다.

msdb는 수집기별 정보를 저장할 뿐만 아니라 SQL Server 에이전트 작업 정보와 SSIS 패키지 정보를 저장하는 데에도 사용됩니다.

데이터 컬렉션 구성

데이터 컬렉션 구성 관련 테이블 및 뷰에는 컬렉션 집합, 수집기 유형 및 컬렉션 항목에 대한 정보가 포함됩니다. 이러한 테이블 및 뷰에는 또한 관리 데이터 웨어하우스의 위치와 같은 전역 데이터 수집기 매개 변수도 포함됩니다. 데이터 수집기 및 관리 데이터 웨어하우스에 대한 데이터베이스 역할도 여기에 저장됩니다. 각 데이터 컬렉션 구성 뷰에 대한 자세한 내용은 데이터 수집기 뷰(Transact-SQL)를 참조하십시오.

중요 정보중요

구성 테이블의 데이터를 수정하지 마십시오. 이러한 테이블의 데이터는 저장 프로시저에 의해 적용되는 특정한 방법으로 삽입, 업데이트 및 삭제되어야 합니다. 테이블 이름과 정의는 응용 프로그램을 업데이트할 때 변경될 수 있으며 후속 릴리스에서 변경될 수 있습니다. 테이블을 직접 사용하지 않고 데이터 수집기에서 제공하는 문서화된 저장 프로시저와 뷰를 사용하여 인스턴스 및 응용 프로그램 데이터에 액세스하십시오.

SQL Server 에이전트 작업

SQL Server 에이전트 작업 정보는 별도의 스키마를 사용하여 msdb에 저장됩니다. 이 작업 정보는 컬렉션 집합이 추가, 제거 또는 변경될 때마다 생성되거나 업데이트됩니다. 컬렉션 집합이 시작되면 SQL Server 에이전트는 이 정보를 사용하여 데이터 수집기 작업을 실행합니다.

SQL Server Integration Services 패키지

SSIS 패키지는 기존의 SSIS 저장소 테이블을 사용하여 msdb에 저장됩니다. 데이터 수집기는 이러한 패키지를 사용하여 데이터를 수집하고 관리 데이터 웨어하우스에 업로드합니다.

감사 및 기록

데이터 컬렉션 실행의 자세한 감사 및 기록 레코드를 저장하기 위한 전용 저장소가 제공됩니다. 데이터 컬렉션 중 데이터 수집기 런타임 구성 요소와 SSIS 패키지는 이벤트를 생성합니다. 이 정보는 컬렉션 처리를 모니터링하고 해당 문제를 해결하는 데 사용됩니다.

관리 데이터 웨어하우스

관리 데이터 웨어하우스는 보유된 모든 데이터를 포함하는 관계형 데이터베이스입니다. 이 데이터베이스는 데이터 수집기와 같은 시스템에 있거나 다른 컴퓨터에 있을 수 있습니다.

실행

실행 범주의 구성 요소는 메모리 내에서 실행되며 데이터를 수집 및 저장합니다.

SQL Server 에이전트

SQL Server 에이전트는 데이터 수집기 런타임 구성 요소를 호스팅합니다. 데이터 컬렉션은 SQL Server 에이전트 작업으로 예약됩니다. 작업이 실행되면 컬렉션 집합을 만들고 실행하는 데 필요한 매개 변수를 사용하여 데이터 수집기 런타임 구성 요소가 호출됩니다.

데이터 수집기 런타임 구성 요소

데이터 수집기 런타임 구성 요소는 Dcexec.exe라는 독립 실행형 프로세스에 의해 호스팅됩니다. 이 구성 요소는 컬렉션 집합에 제공된 정의를 기반으로 데이터 컬렉션을 관리하며 모든 컬렉션 집합을 입력으로 받아들일 수 있습니다. 데이터 수집기 런타임 구성 요소는 컬렉션 집합의 일부인 SSIS 패키지를 로드 및 실행합니다.

컬렉션 집합은 다음 컬렉션 및 업로드 모드 중 하나에서 실행됩니다.

  • 캐시되지 않은 모드. 데이터 컬렉션과 업로드가 같은 일정에 속해 있습니다. 패키지가 시작되고 구성된 빈도로 데이터를 수집 및 업로드하며 완료될 때까지 계속 실행됩니다. 패키지가 완료되면 메모리에서 언로드됩니다.

  • 캐시된 모드. 데이터 컬렉션과 업로드가 서로 다른 일정으로 실행됩니다. 제어 흐름 루프 태스크 종료 신호를 받을 때까지 패키지가 데이터를 수집하고 캐시합니다. 이를 통해 데이터 흐름을 반복적으로 실행할 수 있어 지속적인 데이터 수집이 가능합니다.

[!참고]

데이터 수집기 런타임 구성 요소는 데이터 컬렉션 또는 데이터 업로드 중 하나만 실행할 수 있으며 이러한 태스크를 동시에 실행할 수는 없습니다.

SSIS 런타임 구성 요소

데이터 수집기 런타임 구성 요소는 데이터 수집기가 사용하는 SSIS 패키지를 호출합니다. 이 패키지는 in-process로 실행됩니다.

SSIS 패키지의 두 가지 가장 중요한 태스크는 데이터 컬렉션과 데이터 업로드이며 이러한 태스크는 별도의 패키지에 의해 수행됩니다.

  • 컬렉션 패키지는 데이터 공급자의 데이터를 수집하여 임시 저장소에 유지합니다. 따로 구성된 경우 이 패키지는 수집하는 데이터에 데이터 원본 정보 또는 스냅숏 시간과 같은 추가 정보를 추가하기도 합니다.

  • 업로드 패키지는 임시 저장소에서 데이터를 읽고 필요에 따라 데이터를 처리(예: 불필요한 데이터 요소 제거, 데이터 정규화, 데이터 집계)한 다음 해당 데이터를 관리 데이터 웨어하우스에 업로드합니다. 서버 성능에 대한 영향을 최소화하기 위해 업로드는 대량 삽입으로 수행됩니다.

데이터 컬렉션과 데이터 업로드를 분리하면 유연성과 효율성이 높아집니다. 이 디자인은 데이터의 스냅숏이 짧은 간격(예: 15초 간격)으로 캡처되지만 수집된 데이터는 1시간 간격으로만 업로드하면 되는 시나리오를 지원합니다. 데이터 컬렉션과 업로드 빈도는 특정 SQL Server 설치의 모니터링 요구 사항에 따라 결정되어야 합니다.

임시 저장소

임시 저장소는 데이터 수집 중 컬렉션 집합에서 제공하거나 동적으로 계산되는 속성 값을 저장하는 데 사용됩니다. 이러한 값은 컬렉션 처리 중 얻은 원시 데이터나 처리된 데이터(예: 집계된 데이터)일 수 있습니다.

API

API 범주에는 데이터 수집기를 구성, 유지 관리 및 확장하는 데 사용되는 클래스 라이브러리 및 개체 모델이 포함됩니다. 클라이언트는 API를 통해 시스템 데이터베이스에 액세스해야 합니다.

클래스 라이브러리

데이터 수집기에는 자체 네임스페이스가 있습니다. 또한 데이터 수집기는 SMO(SQL Server Management Objects)의 영향을 받지 않습니다.

저장 프로시저 및 뷰

저장 프로시저 및 뷰는 데이터 수집기 구성 데이터 및 관리 데이터 웨어하우스에 대한 만들기, 읽기, 업데이트 및 삭제 권한을 제공합니다.

클라이언트

데이터 수집기는 SQL Server Management Studio 및 Windows Powershell™ 명령줄 인터페이스를 데이터 수집기 구성과 사용을 위한 클라이언트로 사용합니다. 다음과 같은 작업에 SQL Server Management Studio를 사용할 수 있습니다.

  • 개체 탐색기에서 데이터 컬렉션 구성 마법사를 사용하여 데이터 컬렉션 구성

  • 개체 탐색기를 사용하여 데이터 컬렉션 활성화 또는 비활성화

  • 개체 탐색기를 사용하여 특정 컬렉션 집합 시작 또는 중지

  • 개체 탐색기를 사용하여 데이터 컬렉션 또는 데이터 컬렉션 집합 속성 보기 또는 구성

  • 관리 데이터 웨어하우스에 저장된 기록 데이터를 기반으로 보고서 확인. 이 데이터베이스는 로컬 인스턴스나 다른 서버에 있을 수 있습니다. 후자가 권장됩니다.

Windows Powershell 명령줄 인터페이스를 사용하여 다음과 같은 작업을 할 수 있습니다.

  • 컬렉션 집합 시작 또는 중지

  • 컬렉션 집합 추가 또는 제거

  • 컬렉션 집합의 편집 가능한 속성 변경

구성 요소 상호 작용 및 처리

다음 표에서는 데이터 수집기 아키텍처의 다양한 구성 요소 간 상호 작용에 대해 설명합니다.

구성 요소

구성 요소

설명

SQL Server Management Studio

데이터 수집기 API

클라이언트는 API와 통신하여 데이터 수집기를 구성합니다.

SQL Server Management Studio

관리 데이터 웨어하우스

클라이언트는 관리 데이터 웨어하우스에 대한 읽기 권한을 가지며 수집된 데이터를 가져올 수 있습니다.

SQL Server Management Studio 콘솔 클라이언트

데이터 수집기 API

두 클라이언트 모두 API를 사용하여 프로그래밍 방식으로 데이터 수집기를 구성할 수 있습니다.

데이터 수집기 API

저장 프로시저 및 뷰

API는 데이터 수집기 구성 정보 및 관리 데이터 웨어하우스에 대한 읽기 및 쓰기 권한이 있는 저장 프로시저를 사용합니다.

msdb – 작업 정의

SQL Server 에이전트

SQL Server 에이전트는 작업 정의를 읽을 수 있습니다. 작업 정의에는 작업 일정 및 작업 구성 정보가 포함됩니다.

SQL Server 에이전트

데이터 수집기 런타임 구성 요소

SQL Server 에이전트는 작업 정의에 대한 응답으로 데이터 수집기를 호출합니다.

데이터 수집기 런타임 구성 요소

msdb - SSIS 패키지

데이터 수집기는 SSIS 패키지를 로드하며 SSIS를 사용하여 이러한 패키지를 실행할 수 있습니다.

데이터 수집기 런타임 구성 요소

msdb – 감사 및 기록

데이터 수집기는 msdb의 이 부분에 대한 쓰기 권한을 가지므로 데이터 컬렉션 중 생성된 이벤트를 기록할 수 있습니다.

SSIS

관리 데이터 웨어하우스

SSIS 패키지는 관리 데이터 웨어하우스에 대한 쓰기 권한을 가지므로 수집된 데이터를 업로드할 수 있습니다.

SSIS

임시 저장소

컬렉션 프로세스 중 SSIS는 필요한 모든 임시 저장소를 생성, 사용 및 삭제할 수 있습니다.

msdb – 데이터 컬렉션 구성

msdb – 작업 정의

데이터 컬렉션 구성의 정보는 작업 정의에 매핑됩니다. 자세한 내용은 아래의 "컬렉션 집합 및 작업 매핑"을 참조하십시오.

컬렉션 집합 및 작업 매핑

데이터 수집기 아키텍처의 핵심 요소는 데이터 수집기 구성에 정의된 컬렉션 집합과 작업 정의의 작업 간 매핑입니다.

컬렉션 집합은 SSIS 패키지를 사용하여 정의된 수집기 유형의 인스턴스인 항목 그룹입니다. 메모리 내 인스턴스인 모든 컬렉션 집합에는 수명이 있습니다. 이에 대해서는 이 항목의 뒷부분에서 자세히 설명합니다. 각 컬렉션 집합은 SQL Server 작업에 의해 호출될 때 데이터 수집기 런타임 구성 요소에 의해 실행됩니다. 다음 예에서는 컬렉션 집합이 작업에 매핑되는 방법을 보여 줍니다.

컬렉션 집합

예 1

다음 예제 컬렉션 집합 "Base Performance Data"에는 컬렉션 및 업로드 패키지의 다양한 일정을 지원하는 별도의 컬렉션 및 업로드 패키지가 있습니다.

컬렉션 집합: Name = "Base Performance Data"

컬렉션 항목: Name = "SQL_RE_Active_Requests_History"

컬렉션 패키지: ARH_Collect.dtsx

업로드 패키지: ARH_Upload.dtsx

컬렉션 빈도: 1초

컬렉션 항목: Name = "SQL_RE_Wait_Statistics"

컬렉션 패키지: WS_Collect.dtsx

업로드 패키지: WS_Upload.dtsx

컬렉션 빈도: 15초

컬렉션 항목: Name = "SQL_RE_Performance_Counters"

컬렉션 패키지: PC_Collect.dtsx

업로드 패키지: PC_Upload.dtsx

입력: Counter – Locks: Current Latch Waits

컬렉션 빈도: 15초

컬렉션 항목: Name = "WIN_OS_Performance_Counters"

컬렉션 패키지: OS_PC_Collect.dtsx

업로드 패키지: OS_PC_Upload.dts

입력: Counter – Process: % Processor Time

컬렉션 빈도: 15초

업로드 일정: 매 30분마다

예 2

다음 예제 컬렉션 집합 "Server Configuration Data"에는 Transact-SQL 기반 스냅숏을 가져오고 이 작업 수행 시 관리 데이터 웨어하우스로 해당 스냅숏을 업로드하는 단일 패키지가 있습니다.

컬렉션 집합: Name = "Server Configuration Data"

컬렉션 항목: Name = "SQL_RE_TSQL"

컬렉션 및 업로드 패키지: TSQL_Upload.dtsx

입력: Transact-SQL query for database sizes

컬렉션 빈도: <none>

컬렉션 항목: Name = "SQL_RE_TSQL"

컬렉션 및 업로드 패키지: TSQL_Upload.dtsx

입력: Transact-SQL query for configuration options

컬렉션 빈도: <none>

업로드 일정: 매 24시간마다

작업

앞의 예에 제시된 컬렉션 집합이 생성될 때 데이터 컬렉션을 수행하기 위해 SQL Server 에이전트 작업이 생성됩니다. 다음은 작업 생성을 제어하는 규칙입니다.

  • 다양한 컬렉션 집합별 데이터 컬렉션은 별도의 작업으로 실행됩니다.

  • 캐시된 컬렉션 모드를 사용하는 컬렉션 집합은 SQL Server 에이전트 시작 시 시작되는 작업으로 예약됩니다. 이러한 작업은 계속 실행되고 데이터 수집기 런타임 구성 요소에 의해 제어됩니다.

  • 캐시되지 않은 컬렉션 모드를 사용하는 컬렉션 집합은 일반 SQL Server 에이전트 작업으로 예약됩니다. 이러한 작업은 컬렉션 집합에 정의된 일정과 일치하는 SQL Server 에이전트 일정을 사용합니다. 실제 실행 기간은 사용자 지정할 수 있습니다.

다음 예에서는 앞의 규칙이 사용된 작업을 보여 줍니다. 이러한 작업은 제공된 컬렉션 집합 예를 실행할 수 있습니다.

컬렉션 집합 예 1에 대한 작업

이 컬렉션 집합을 처리하는 데 2가지 작업 즉, 컬렉션과 업로드에 대한 작업이 사용됩니다.

작업 1. 이름: "Base Performance Data Collection"

범주: "Data Collector"

Job Step 1:

컬렉션 집합: Name = "Base Performance Data"

컬렉션 모드: Collection Only, Continuous Run

패키지 실행: ARH_Collect, WS_Collect, PC_Collect, OS_PC_Collect

일정: At Agent start-up

Job 2,Name: "Base Performance Data Upload"

범주: "Data Collector"

Job Step 1:

컬렉션 집합: Name = "Base Performance Data"

컬렉션 모드: Upload Only, Single Run

패키지 실행: ARH_Upload, WS_Upload, PC_Upload, OS_PC_Upload

일정: 매 30분마다, 12:00 AM PST 시작

컬렉션 집합 예 2에 대한 작업

컬렉션 집합을 처리하기 위해 하나의 작업이 생성됩니다.

Job 3,Name = "Server Configuration Data"

Category = "Data Collector"

Job Step 1:

Collection Set, Name = "Server Configuration Data"

컬렉션 모드: Collection and Upload, Single Run

패키지 실행: TSQL_Upload, TSQL_Upload

일정: 매일 12:00 AM PST 시작

[!참고]

위의 각 예는 작업에 대한 컬렉션 모드를 지정합니다. 이 정보는 컬렉션 집합 실행 시 컬렉션 및 업로드 처리를 관리하는 데 사용됩니다.

데이터 수집기 및 컬렉션 집합

데이터 수집기와 컬렉션 집합은 사용자가 상호 작용하는 데이터 컬렉션 요소이므로 각각의 유효한 상태 및 컬렉션 집합 수명의 개념을 이해해야 합니다.

유효한 상태

데이터 컬렉션을 켜거나 끄려면 데이터 컬렉션을 활성화 또는 비활성화하면 됩니다. 관리 데이터 웨어하우스 연결 문자열에 대한 변경과 같이 수집기 차원의 매개 변수에 영향을 주는 변경을 수행하려면 먼저 데이터 컬렉션을 비활성화해야 합니다.

컬렉션 집합 구성을 변경하면 먼저 컬렉션 집합을 중지해야 합니다.

컬렉션 집합 실행 중에 데이터 컬렉션을 비활성화하는 경우 이러한 컬렉션 집합은 데이터 컬렉션이 다시 활성화될 때까지 일시 중지된 상태가 됩니다. 다시 활성화되는 시점에 컬렉션 집합은 실행을 재개합니다. 데이터 컬렉션을 비활성화했을 때 실행 중이 아니었던 컬렉션 집합은 계속 중지된 상태로 유지됩니다. 데이터 컬렉션이 비활성화된 경우 임의의 컬렉션 집합을 시작할 수 있습니다. 하지만 데이터 컬렉션을 활성화하기 전에는 컬렉션 집합 실행이 시작되지 않습니다.

컬렉션 집합 수명

컬렉션 집합이 시작된 후 해당 집합은 전체 수명 동안 여러 번의 전환 과정을 거칠 수 있습니다. 이러한 전환 과정과 해당 과정 중 발생하는 동작은 다음과 같습니다.

  1. 생성

    • 컬렉션 집합 개체가 메모리에 생성됩니다.

    • 모든 속성을 자유롭게 설정하고 수정할 수 있습니다.

  2. 수집기 유형 추가

    • 새 컬렉션 항목이 컬렉션 집합에 추가됩니다.

    • 컬렉션 집합에서 모든 컬렉션 항목이 같은 대상 루트를 참조하는지 확인합니다.

  3. 수집기 유형 제거

    • 컬렉션 집합에서 기존 컬렉션 항목이 제거됩니다.
  4. 만들기

    • 컬렉션 집합에서 자체 집합에 하나 이상의 컬렉션 항목이 있는지 확인합니다.

    • 모든 컬렉션 항목 및 해당 속성, 컬렉션 빈도, 모든 컬렉션 집합의 속성에 대한 정보가 데이터 수집기 구성 저장소에 삽입됩니다.

    • 컬렉션 집합의 초기 상태가 비활성으로 설정됩니다.

    • 컬렉션 집합을 실행할 SQL Server 에이전트 작업이 생성되고 컬렉션 집합에 연결됩니다.

    • SQL Server 에이전트 작업의 초기 상태가 비활성으로 설정됩니다.

  5. 시작

    • 컬렉션 집합의 상태가 실행 중으로 변경됩니다.

    • 관련 SQL Server 에이전트 작업이 활성화됩니다.

    • 작업이 에이전트 시작 시 실행되도록 플래그가 지정된 경우 작업이 즉시 시작됩니다.

  6. 중지

    • 컬렉션 집합의 상태가 중지됨으로 변경됩니다.

    • 컬렉션 집합에 대해 실행 중인 모든 작업이 중지되고 비활성화됩니다.

    • 컬렉션 집합과 관련된 모든 작업이 비활성으로 설정됩니다.

  7. 삭제

    • 컬렉션 집합과 관련된 모든 작업이 메모리에서 삭제됩니다.

    • 컬렉션 집합과 관련된 데이터 수집기 구성의 모든 개체(컬렉션 항목, 컬렉션 집합)가 삭제됩니다.

런타임 처리

다음 그림에서는 컬렉션 집합이 시작되고 데이터가 수집되어 업로드될 때의 런타임 처리를 간단하고 정확하게 보여 줍니다. 이 그림에서는 데이터 컬렉션과 데이터 업로드를 두 개의 별도 작업 처리로 보여 주지만 이러한 작업은 앞의 예에서 볼 수 있듯이 단일 작업이 될 수도 있습니다.

컬렉션 및 및 업로드 처리 단계

데이터 컬렉션

앞의 그림에서 데이터 컬렉션 처리 단계는 접두사 "C"로 시작합니다. 처리 단계는 다음과 같습니다.

  1. 저장 프로시저가 컬렉션 집합을 시작합니다. msdb 컬렉션 집합의 상태가 실행 중으로 변경됩니다. 이러한 상태 변경을 통해 컬렉션 집합과 관련된 SQL Server 에이전트 작업이 활성화됩니다.

  2. SQL Server 에이전트가 다음과 같이 작업을 시작합니다.

    • 컬렉션 집합 모드가 캐시된 모드로 설정된 경우 컬렉션 작업이 즉시 시작됩니다.

    • 컬렉션 집합 모드가 캐시되지 않은 모드로 설정된 경우 컬렉션 작업이 구성된 일정에 따라 시작됩니다.

  3. 작업이 시작되면 데이터 수집기 런타임 구성 요소(Dcexec.exe)를 실행하고 컬렉션 집합과 관련된 컬렉션 패키지를 실행하도록 이 구성 요소에 지시하는 프로세스가 생성됩니다.

  4. Dcexec.exe가 시작되면 사용할 컬렉션 모드(캐시된 모드 또는 캐시되지 않은 모드)를 찾기 위해 msdb의 데이터 수집기 구성을 읽습니다.

  5. 데이터 수집기 런타임 구성 요소가 SSIS 런타임 구성 요소를 사용하여 컬렉션 집합에 대해 정의된 컬렉션 패키지를 실행합니다.

  6. 중지 신호를 받거나 미리 정의된 끝점에 도달할 때까지 컬렉션 패키지가 실행됩니다. 컬렉션 패키지는 데이터가 업로드될 때까지 준비 영역에서 수집된 데이터를 저장합니다.

    [!참고]

    컬렉션 집합의 수집기 유형 디자인에 따라 사용되는 준비 영역 종류가 달라집니다. 준비 영역은 공유 메모리 영역, 임시 파일 또는 메시지 큐일 수 있습니다.

데이터 업로드

앞의 그림에서 데이터 업로드 처리 단계는 접두사 "U"로 시작합니다. 처리 단계는 다음과 같습니다.

  1. 업로드가 필요할 때 저장 프로시저가 작업을 시작합니다. 이 작업은 SQL Server 에이전트에서 처리합니다.

  2. SQL Server 에이전트가 다음과 같이 작업을 시작합니다.

    • 사용자가 요청 시 업로드 요청을 전송할 경우 업로드 작업이 즉시 시작됩니다.

    • 요청 시 업로드 요청이 없을 경우 업로드 작업이 컬렉션 집합에 대해 구성된 일정에 따라 시작됩니다.

  3. 작업이 시작되면 데이터 수집기 런타임 구성 요소(Dcexec.exe)를 실행하고 컬렉션 집합과 관련된 업로드 패키지를 실행하도록 이 구성 요소에 지시하는 프로세스가 생성됩니다.

  4. Dcexec.exe가 시작되면 관리 데이터 웨어하우스에 대한 연결 문자열 또는 기타 필요한 데이터 처리와 같은 업로드의 처리 방법을 찾기 위해 msdb의 데이터 수집기 구성을 읽습니다.

  5. 데이터 수집기 런타임 구성 요소가 SSIS 런타임 구성 요소를 사용하여 컬렉션 집합에 대해 정의된 업로드 패키지를 실행합니다.

  6. 업로드 패키지가 준비 영역에 보유된 데이터를 읽고 정규화, 샘플링 등과 같이 필요한 변환을 수행합니다. 변환이 완료되면 업로드 패키지가 관리 데이터 웨어하우스에 연결하여 데이터를 삽입합니다.

  7. 업로드가 완료되면 처리가 끝나지만 컬렉션 집합의 상태는 변경되지 않습니다. 컬렉션 집합 일정에 따라 다음 업로드가 시작됩니다.