측정값 및 측정값 그룹

측정값은 집계할 수 있는 측정 가능한 데이터(대개 숫자)를 포함하는 열을 나타냅니다. 측정값은 일반적으로 팩트 테이블의 열에 매핑됩니다.

MDX(Multidimensional Expressions)에 의해 수정되는 팩트 테이블의 열을 기반으로 측정값을 정의하는 데 측정값 식을 사용할 수도 있습니다. 측정값 식을 사용하면 측정값에 가중치를 적용할 수 있습니다. 예를 들어 통화 변환을 사용하여 환율에 따라 판매 측정값에 가중치를 적용할 수 있습니다.

차원 테이블의 특성 열을 사용하여 측정값을 정의할 수도 있지만 이러한 측정값은 일반적으로 집계 동작 면에서 반가산적이거나 비가산적입니다. 반가산적 동작에 대한 자세한 내용은 반가산적 동작 정의를 참조하십시오.

MDX를 사용해 측정값을 계산 멤버로 정의하여 큐브의 다른 측정값을 기반으로 측정값에 계산된 값을 제공할 수도 있습니다. 계산 멤버는 Analysis Services의 큐브에 융통성 및 분석 기능을 추가합니다. 계산에 대한 자세한 내용은 계산계산 정의를 참조하십시오.

측정값 그룹

단순 MeasureGroup 개체는 기본 정보, 측정값, 차원 및 파티션으로 구성되어 있습니다. 기본 정보에는 측정값 그룹의 이름, 측정값의 유형, 저장소 모드, 처리 모드 등이 포함됩니다. 측정값은 측정값 그룹을 구성하는 측정값의 실제 집합입니다. 각 측정값에는 집계 함수, 서식 지정 특성, 데이터 항목 원본 등이 정의되어 있습니다. 차원은 처리된 측정값 그룹을 만드는 데 사용될 큐브 차원의 하위 집합입니다. 파티션은 처리된 측정값 그룹의 실제 분할에 대한 컬렉션입니다.

큐브에서 측정값은 기본 팩트 테이블에 의해 측정값 그룹으로 그룹화됩니다. 측정값 그룹은 차원과 측정값을 연결하는 데 사용됩니다. 측정값 그룹은 집계 동작으로 고유 카운트를 가지고 있는 측정값에도 사용됩니다. 고유 카운트 측정값을 자체 측정값 그룹에 각각 배치하면 집계 동작이 최적화됩니다.

다음 다이어그램에서는 FactSalesQuota 팩트 테이블과 이 테이블에 연결된 두 개의 차원 테이블인 DimTimeDimEmployee를 보여 줍니다.

2개의 차원 테이블이 있는 FactSalesQuota 테이블

FactSalesQuota 팩트 테이블은 Adventure Works 큐브의 Sales Quotas 측정값 그룹을 정의하고 DimTimeDimEmployee 차원 테이블은 Adventure Works DW 예제 Analysis Services 프로젝트에서 Time 및 Employee 차원을 정의합니다.

팩트 테이블에는 특성과 측정값이라는 두 가지 기본 열이 있습니다. 특성 열은 차원 테이블에 포함된 데이터로 측정값 열의 측정 가능한 데이터를 구성할 수 있도록 차원 테이블과의 외래 키 관계를 만드는 데 사용됩니다. 특성 열은 팩트 테이블 및 해당 측정값 그룹의 세분성을 정의하는 데도 사용됩니다. 측정값 열은 측정값 그룹에 포함된 측정값을 정의합니다. FactSalesQuota 팩트 테이블에서 SalesAmountQuota 열은 Sales Amount Quota 측정값을 정의하는 데 사용됩니다. 이 측정값은 Sales Quotas 측정값 그룹에 포함되며 Time 및 Employee 차원으로 구성됩니다.

세분성

세분성은 팩트 테이블에서 지원하는 정보 수준을 나타냅니다. 예를 들어 FactSalesQuota 팩트 테이블은 EmployeeKey 기본 키 열에서 DimEmployee 테이블과 외래 키 관계에 있습니다. 즉, FactSalesQuota 테이블의 각 레코드는 한 명의 직원과 관련되므로 Employee 차원에서 볼 때 측정값 그룹의 세분성은 개별 직원 수준에 있습니다.

측정값 그룹의 세분성을 측정값 그룹을 보는 차원의 최하위 수준보다 미세하게 설정할 수 없지만 추가 특성을 사용하여 세분성을 성기게 만들 수는 있습니다. 예를 들어 FactSalesQuota 팩트 테이블은 TimeKey, CalendarYear, CalendarQuarter의 3개의 열을 사용하여 DimTime 테이블과의 관계 세분성을 설정합니다. 따라서 Time 차원에서 볼 때 측정값 그룹의 세분성은 Time 차원의 최하위 수준인 날짜가 아닌 사분기가 됩니다.

큐브 디자이너의 차원 용도 탭을 통해 특정 차원과 관련하여 측정값 그룹의 세분성을 지정할 수 있습니다. 차원 관계에 대한 자세한 내용은 차원 관계를 참조하십시오.

집계 함수

차원을 사용하여 측정값을 측정값 그룹으로 구성하는 경우 측정값은 해당 차원에 포함된 계층에서 요약됩니다. 이러한 요약 동작은 측정값에 대해 지정된 집계 함수에 따라 달라집니다. 예를 들어 Employee 차원에는 다음 다이어그램에서와 같이 수준으로 구조화된 Employee Department라는 계층이 있습니다.

직원 부서 계층의 수준 구조

FactSalesQuota 팩트 테이블의 각 레코드는 EmployeeKey 열과의 외래 키 관계에 따라 DimEmployee 차원 테이블의 단일 레코드와 직접 관련됩니다. 따라서 Sales Amount Quota 측정값의 각 값은 Employee Department 계층의 Full Name 수준에서 단일 리프 멤버에 관련되며 팩트 테이블에서 직접 로드할 수 있습니다. 그러나 Full Name 위에 있는 수준의 멤버에 대한 Sales Amount Quota 측정값은 각 멤버가 여러 레코드를 나타내기 때문에 직접 로드할 수 없습니다. 즉, Title 수준의 단일 멤버에는 여러 직원이 연결되어 있을 수 있으므로 Full Name 수준에 여러 멤버가 있을 수 있습니다. 이러한 리프가 아닌 멤버에 대한 측정값은 데이터 원본에서 직접 로드되지 않는 대신에 계층에서 그 아래에 있는 멤버에서 집계됩니다.

모든 측정값이 팩트 테이블의 열에 저장된 값에서 직접 파생되는 것은 아닙니다. 예를 들어 Adventure Works DW 예제 Analysis Services 프로젝트에 있는 Adventure Works 큐브의 Sales Quota 측정값 그룹에 정의된 Sales Person Count 측정값은 실제로 FactSalesQuota 팩트 테이블의 EmployeeKey 열에 있는 고유한 값의 카운트(고유 카운트)를 기반으로 합니다.

각 측정값의 집계 동작은 해당 측정값에 연결된 집계 함수에 의해 결정됩니다. 집계 함수에 대한 자세한 내용은 반가산적 동작 정의를 참조하십시오.