TFS 데이터 웨어하우스의 구성 요소
Team Foundation 보고 웨어하우스는 별모양과 비슷한 스키마로 구성되는 관계형 데이터베이스와 해당 관계형 데이터베이스를 기반으로 구축되는 SQL Server Analysis Services 큐브로 이루어지는 일반적인 데이터 웨어하우스입니다. 아래 다이어그램에는 Team Foundation 데이터 웨어하우스의 대략적인 아키텍처와 작업 저장소, 데이터 웨어하우스 및 팀 보고서 간의 관계가 나와 있습니다.
작업 저장소
Team Foundation의 각 도구나 플러그 인은 SQL Server 2008의 관계형 데이터베이스를 사용하여 도구가 일상적인 작업에 사용하는 데이터를 저장합니다. 이 관계형 데이터베이스를 대개 작업 저장소라고 합니다. Team Foundation의 작업 저장소에는 다음 항목이 포함됩니다.
공용 구조 데이터베이스(Tfs_Configuration)
팀 프로젝트 컬렉션 데이터베이스(Tfs_Collection)
타사 도구용으로 작업 저장소를 만들 수도 있습니다.
대부분의 작업 저장소와 마찬가지로 관계형 데이터베이스의 스키마도 데이터의 온라인 트랜잭션 처리용으로 디자인 및 최적화됩니다. 도구 또는 플러그 인은 활동을 수행할 때 작업 저장소에 최신 정보를 씁니다. 따라서 작업 저장소의 데이터는 계속 변경되고 업데이트되며 모든 데이터가 최신 상태입니다.
웨어하우스 어댑터
각 도구나 플러그 인에는 자체 스키마 요구 사항이 있으며 트랜잭션 처리를 최적화하기 위해 데이터는 작업 저장소에 저장되므로, 웨어하우스 어댑터는 데이터 웨어하우스에서 사용 가능한 형식으로 작동 데이터를 저장하는 데 사용됩니다. 웨어하우스 어댑터는 작업 저장소에서 데이터를 추출하고 웨어하우스와 호환되는 표준화된 형식으로 데이터를 변환한 후 변환된 데이터를 웨어하우스 관계형 데이터베이스에 쓰는 관리되는 어셈블리입니다. 각 작동 데이터 저장소용의 개별 어댑터가 있습니다.
웨어하우스 어댑터는 새 팀 프로젝트를 만들 때 사용되는 프로세스 템플릿 또는 기본 웨어하우스 구성에 지정된 데이터 필드를 복사 및 변환합니다. 나중에 프로세스 템플릿을 변경하여 데이터 웨어하우스에 기록되는 데이터 필드를 추가하거나 삭제하면 다음 번에 어댑터를 실행할 때 해당 변경 내용이 검색됩니다. 어댑터는 RunIntervalSeconds 속성으로 설정되는 빈도에 따라 주기적으로 실행됩니다. 새로 고침 빈도의 기본 설정은 2시간(7,200초)이므로 설치에 적합한 새로 고침 빈도를 신중하게 고려해야 합니다. 새로 고침 빈도를 변경하는 방법에 대한 자세한 내용은 데이터 웨어하우스 또는 Analysis Services 큐브에 대한 프로세스 컨트롤 설정 변경을 참조하세요.
작업 저장소에서 관계형 데이터베이스 자체를 업데이트하는 동안에는 관계형 데이터베이스에서 데이터 큐브로 데이터가 기록되지 않습니다. 데이터를 읽고 쓸 때 충돌을 방지하기 위해 데이터를 밀어넣고 끌어오는 웨어하우스 어댑터가 동기화됩니다. 어댑터가 호출을 완료하고 나면 큐브가 다시 처리됩니다.
관계형 데이터베이스 또는 데이터 웨어하우스
각 도구는 데이터 웨어하우스에 대한 작업의 설명을 XML 스키마로 제공합니다. 이 스키마는 관계형 데이터베이스에 기록되는 필드를 차원, 측정값 및 세부 정보로 지정합니다. 또한 스키마는 큐브에 직접 매핑됩니다.
웨어하우스의 데이터는 별모양 스키마로 구성되는 테이블 집합에 저장됩니다. 별모양 스키마의 중심 테이블은 팩트 테이블이며 관련 테이블은 차원을 나타냅니다. 차원을 사용하여 보고서를 여러 개의 작은 부분으로 나눌 수 있습니다. 팩트 테이블의 행에는 보통 측정 값이나 차원 테이블에 대한 외래 키 참조가 포함됩니다. 행은 팩트 테이블에 포함되는 모든 항목의 현재 상태를 나타냅니다. 예를 들어 작업 항목 팩트 테이블에는 작업 항목 작업 저장소에 저장되는 모든 작업 항목에 대해 행이 하나씩 포함됩니다.
차원 테이블에는 지정된 차원의 값 집합이 저장됩니다. 차원은 여러 팩트 테이블과 큐브 간에 공유할 수 있으며 단일 팩트 테이블 또는 데이터 큐브에서 참조할 수 있습니다. 예를 들어 작업 항목 팩트 테이블의 할당 대상, 연 사용자, 해결한 사람 및 닫은 사람 속성과 코드 변동(code churn) 팩트 테이블의 체크 인한 사용자 속성에서 개인 차원을 참조합니다.
측정값은 작동 데이터에서 가져온 값입니다. 예를 들어 총 변동 수는 선택한 데이터 집합에서 변경된 소스 코드의 수를 나타내는 측정값입니다. 개수는 수를 계산하는 모든 항목에 대해 레코드가 하나씩 있으면 암시적일 수 있다는 점에서 특수한 측정값입니다. 팩트 테이블에 정의된 측정값으로 큐브의 측정값 그룹이 형성됩니다.
데이터 웨어하우스의 팩트, 차원 및 측정값에 대한 자세한 내용은 Visual Studio의 Analysis Services 큐브에 제공된 측정값 그룹 및 큐브 뷰를 참조하세요.
Analysis Services 큐브
팩트 테이블은 현재 작업 상태를 표시하는 보고서의 정보를 가져올 수 있는 유용한 출처입니다. 그러나 시간에 따라 변경되는 데이터의 추세를 보고하려면 보고할 각 시간 단위에 대해 같은 데이터를 복제해야 합니다. 예를 들어 작업 항목이나 테스트 결과의 일별 추세를 보고하려면 웨어하우스에 모든 항목의 각 날짜별 상태를 보존해야 합니다. 이렇게 하면 데이터 큐브가 일별로 측정값을 집계할 수 있습니다. 큐브는 기본 별모양 스키마의 데이터와 시간 데이터를 모두 다차원 구조로 집계합니다.
데이터 큐브를 처리할 때마다 관계형 데이터베이스의 별모양 스키마에 저장된 데이터를 큐브로 끌어와 집계한 다음 저장합니다. 이처럼 큐브의 데이터가 집계되므로 일반적으로는 별모양 스키마를 사용하여 복잡한 처리 과정을 거쳐야 하는 고급 보고서를 간단한 select 문으로 작성할 수 있습니다. 큐브는 각 작업 저장소의 스키마를 모르더라도 각 저장소에 개별적으로 액세스할 필요 없이 보고서용 데이터를 가져올 수 있는 중앙 위치입니다.
보고서 디자이너 보고서
보고서 디자이너는 Team Foundation 데이터 웨어하우스를 데이터 소스로 정의한 다음 대화형으로 보고서를 디자인하는 데 사용할 수 있는 Visual Studio의 구성 요소입니다. 보고서 디자이너는 데이터, 레이아웃 및 미리 보기용 탭 창을 제공하며, 새 보고서 디자인 아이디어를 적용하기 위해 데이터 집합을 추가하거나 미리 보기 결과에 따라 보고서 레이아웃을 조정할 수 있습니다. 또한 보고서 디자이너에서는 데이터, 레이아웃 및 미리 보기 디자인 화면뿐 아니라 쿼리 작성기, 식 편집기, 그리고 이미지를 배치하거나 간단한 보고서 만들기 과정을 단계별로 진행할 수 있는 마법사도 제공합니다. 보고서 디자이너를 사용하는 방법에 대한 자세한 내용은 Visual Studio ALM 보고서 만들기, 사용자 지정 및 관리를 참조하세요.
Excel 보고서
Team Foundation은 Microsoft Excel과 통합되므로 Microsoft Excel을 사용하여 프로젝트를 관리하고 보고서를 생성할 수 있습니다. Microsoft Excel에서는 다차원 데이터를 보고 분석하는 데 사용할 수 있는 피벗 테이블과 차트를 제공합니다. 이러한 피벗 테이블을 Team Foundation 큐브에 직접 바인딩할 수 있으므로 큐브에서 데이터와 상호 작용할 수 있습니다. 보고에 Microsoft Excel을 사용하는 방법에 대한 자세한 내용은 작업 항목 쿼리에서 Excel 보고서 만들기를 참조하세요.
보안
Team Foundation 데이터 웨어하우스의 보안은 데이터베이스 수준에서 정의되며 팀 보고서의 보안은 팀 프로젝트 수준에서 정의됩니다. Team Foundation Server 관리자는 사용자 계정에 대한 권한을 부여하거나 해지하여 데이터 웨어하우스의 데이터 액세스 권한이 있는 사용자를 결정합니다. 기본적으로 웨어하우스에 대한 쓰기 액세스 권한은 웨어하우스 서비스를 실행하는 데 사용되는 서비스 계정에만 부여됩니다. 각 도구 어댑터는 이 보안 컨텍스트에서 실행되므로 데이터 웨어하우스에 대한 쓰기 액세스 권한을 가집니다. 읽기 전용 액세스 권한은 관리자가 개별 사용자나 사용자 그룹에 부여합니다. 웨어하우스의 데이터 보기 권한이 있는 사용자에게는 모든 팀 프로젝트 컬렉션 내 모든 팀 프로젝트의 모든 데이터에 대한 모든 권한이 있습니다. 데이터 웨어하우스에 대한 읽기 전용 액세스 권한을 부여하거나 거부하는 방법에 대한 자세한 내용은 Visual Studio ALM용 데이터 웨어하우스의 데이터베이스에 대한 액세스 부여를 참조하세요.