통합 차원 모델

ERP(Enterprise Resource Planning) 데이터베이스와 같은 데이터 원본에서 직접 정보를 검색하려는 사용자는 몇 가지 어려운 문제에 직면하게 됩니다.

  • 이러한 데이터 원본의 내용은 사용자가 아닌 시스템과 개발자를 중심으로 디자인되므로 이해하기 어려운 경우가 많습니다.
  • 사용자가 원하는 정보는 일반적으로 서로 다른 다양한 유형의 데이터 원본에 분산되어 있습니다. 서로 다른 관계형 데이터베이스만 다루는 경우에도 사용자는 각 데이터베이스의 세부 정보(예: 사용되는 SQL 언어)를 이해하고 있어야 합니다. 데이터 원본이 관계형 데이터베이스뿐만 아니라 파일과 웹 서비스를 비롯한 다양한 유형으로 구성된 경우에는 문제가 더욱 복잡해집니다.
  • 많은 데이터 원본이 대량의 트랜잭션 수준 정보를 보관하는 데 중점을 두는 반면 비즈니스 의사결정을 지원하는 쿼리에는 요약된 집계 정보가 포함되는 경우가 많습니다. 데이터의 양이 증가할수록 대화식 최종 사용자 분석을 위해 이러한 요약 값을 검색하는 데 걸리는 시간이 상당히 늘어날 수 있습니다.
  • 비즈니스 규칙은 일반적으로 데이터 원본에 캡슐화되지 않습니다. 따라서 자신에게 맞게 데이터를 해석하는 작업은 사용자의 몫이 됩니다.

UDM(Unified Dimensional Model)은 사용자와 데이터 원본을 연결하는 교량 역할을 합니다. UDM은 하나 이상의 물리적 데이터 원본을 기반으로 생성됩니다. 사용자는 Microsoft Excel과 같은 다양한 클라이언트 도구를 사용하여 UDM에 대해 쿼리를 실행합니다.

단일 UDM을 통해 모든 데이터 원본에 액세스하는 클라이언트

단순히 데이터 원본에 대한 씬 레이어로 UDM을 생성하더라도 최종 사용자는 데이터 모델을 보다 단순하고 쉽게 이해할 수 있고 서로 다른 유형의 백엔드 데이터 원본에서 특정 데이터 원본을 구별할 수 있으며 요약 유형 쿼리의 성능이 향상되므로 여러 가지로 편리합니다. 일부 시나리오에서는 간단한 UDM을 자동으로 생성할 수 있습니다. 보다 많은 시간과 노력을 들여 UDM을 생성하면 모델에서 제공하는 메타데이터가 다양해지므로 얻을 수 있는 이점도 늘어납니다.

UDM을 사용하면 다음과 같은 이점이 있습니다.

  • 사용자 모델의 질을 향상시킵니다.
  • 대량의 데이터에 대해서도 대화식 분석을 지원하는 고성능 쿼리를 제공합니다.
  • 모델의 비즈니스 규칙을 캡처하여 보다 강력한 분석을 지원합니다.
  • 사용자가 데이터를 보면서 작업을 수행할 수 있는 '루프 닫기'를 지원합니다.

기본 최종 사용자 모델

사용자가 서로 다른 기간의 판매액과 할당액을 비교한다고 가정합니다.

판매 데이터는 기본 Sales 데이터베이스와 Inventory 데이터베이스에 저장되어 있고 이러한 데이터베이스에는 많은 다른 테이블이 포함되어 있습니다. 사용자는 관련 테이블을 식별한 다음에 Product와 같은 단일 엔터티에 대한 데이터가 여러 테이블에 분산되어 있음을 발견할 수 있습니다. 응용 프로그램 논리에 의해 참조 무결성이 적용되므로 이러한 테이블 간에는 어떠한 관계도 정의되지 않습니다. Sales Quotas는 다른 응용 프로그램의 데이터베이스에 저장되어 있습니다. 결국 두 데이터베이스 중 어떤 데이터베이스에서도 할당액을 실제 판매액과 비교할 때 주문에 대한 다른 날짜(주문 날짜, 기한, 예약 날짜 등)가 아닌 주문 선적 날짜를 사용해야 한다는 등의 비즈니스 규칙을 캡처하지 못합니다.

데이터 원본에 직접 액세스

먼저 사용자가 데이터 원본에 직접 액세스하는 경우를 가정합니다. 다음 그림에서는 예제 도구를 사용하여 쿼리를 작성하는 예를 보여 줍니다.

다른 데이터 원본 간 조인을 허용하는 DSV

여기까지 사용자는 상당히 많은 작업을 완료했습니다. 해당 작업은 다음과 같습니다.

  • 원하는 테이블을 찾기 위해 암호로 이름이 지정된 많은 테이블 검토
  • 테이블 조인에 사용해야 할 열 식별
  • 시스템 기반 세부 정보가 많이 있는 여러 테이블 중 원하는 정보를 포함하는 열 선택. 예를 들어 제품 범주에 대한 세부 정보를 저장하는 테이블의 11개 열 중에서 실제로는 두 개의 이름 열만 사용자에게 필요합니다.

이제 사용자는 '외부' 조인과 '내부' 조인을 사용해야 할 곳을 정의하고 필요한 집계를 제공하기 위해 정보를 그룹화하는 방법을 정의해야 합니다.

그러나 사용자는 더 어려운 작업을 직면하게 됩니다. 예를 들어 사용자는 다른 데이터 원본의 데이터를 조인할 수 있는 방법을 알아야 합니다. 데이터베이스 중 하나가 분산 쿼리를 지원하더라도 대부분의 사용자는 필요한 쿼리를 작성할 수 없으며 도구를 제공하더라도 사용자가 이러한 작업을 수행하는 데 충분치 못할 수 있습니다. 다음 코드 예제에서는 외부 데이터를 쿼리하는 한 방법을 보여 줍니다.

SELECT Quotas.QuotaAmount, Quotas.EmployeeId, ?FROM OPENROWSET('SQLOLEDB','seattle1';
'Sales';'MyPass',
   'SELECT * FROM Forecasts.dbo.SalesQuota?) As Quotas

웹 서비스와 같은 다른 데이터 원본을 사용하는 경우 사용자는 올바른 원격 호출을 수행하는 방법, 반환된 XML을 처리하여 다른 데이터와 조합하는 방법 등을 결정해야 하는 난관에 부딪치게 됩니다.

마침내 하나의 쿼리에 대해 이와 같은 작업을 완료한 후에도 그 다음 쿼리 및 이후의 모든 쿼리에 대해 이러한 작업의 상당 부분을 다시 수행해야 합니다.

UDM을 사용하여 데이터 원본에 액세스

위와 반대로 다음 다이어그램에서는 이러한 데이터 원본을 기반으로 생성한 간단한 UDM에 액세스하는 사용자가 쿼리를 작성하는 예를 보여 줍니다.

여러 데이터 원본을 통해 UDM에 액세스하는 클라이언트

이 예에 표시된 디자인 인터페이스는 Microsoft SQL Server 2005와 함께 제공되는 개발 도구에서 사용할 수 있습니다. 그러나 Office Excel 또는 OWC(Office Web Components)와 같은 클라이언트 도구나 많은 보고 및 분석 도구 중 하나를 비롯하여 UDM을 지원하는 아무 인터페이스나 사용할 수 있습니다.

왼쪽의 트리 뷰는 UDM의 내용을 보여 줍니다. 이 예에서는 다음 사항에 유의하십시오.

  • 사용자 기반의 관련 항목만 사용자에게 노출됩니다. 행 GUID나 마지막 수정 날짜와 같은 시스템 열은 표시되지 않습니다.
  • 기본 데이터베이스에 사용되는 개발자 중심의 명명 규칙이 아닌 일반적인 이름이 사용됩니다.

또한 UDM은 각 비즈니스 엔터티에 대한 모든 특성을 별도의 '차원'(예: Product 또는 Employee)으로 그룹화합니다. 따라서 클라이언트는 관련된 많은 테이블 간에 명시적 조인을 수행하지 않고도 이 예에 나오는 Product Color, Subcategory 및 Category를 참조할 수 있습니다.

그런 다음 트랜잭션 값 또는 측정치를 나타내는 열이 '측정값'으로 표시됩니다. 예를 들어 사용자는 일반적으로 판매액이나 판매 할당액과 같은 열을 집계하고 싶어합니다. 이와 같이 데이터를 '측정값'과 '차원'으로 표시하는 방법을 차원 모델링이라고 합니다.

다이어그램의 오른쪽은 현재 쿼리에 포함된 요소를 보여 줍니다. 이 경우 사용자는 트리 뷰에서 세 개의 관련 항목을 디자인 인터페이스의 오른쪽으로 끌어 "제품 범주별 판매액 및 할당액"을 요청하는 쿼리를 간단하게 정의했습니다. 사용자는 두 개의 서로 다른 데이터 원본에 실제로 액세스하거나 많은 관련 테이블을 올바로 조인하기 위해 세부 정보를 지정할 필요가 없습니다.

이 모델은 통화 기호 사용과 같은 단순 기본 서식을 정의합니다. 특정 임계값 미만의 값을 빨간색으로 표시하는 것과 같은 조건부 서식을 비롯하여 보다 다양한 서식을 정의할 수도 있습니다.

또한 이 모델은 다양한 쿼리를 지원합니다. 예를 들어 단순히 Employee 차원에서 특성을 끌어 오는 작업만으로도 직원별로 결과를 분류할 수 있습니다.

기본 모델 확장

앞의 예에서는 간단한 UDM만으로도 기본적인 데이터 탐색 작업을 간편하게 만들 수 있음을 보여 주었습니다. 그러나 사용자에게 데이터에 대한 액세스 권한을 제공할 때 고려해야 할 또 다른 문제가 있습니다. 예를 들면 다음과 같습니다.

  • 다양한 사용자가 실행하는 다양한 유형의 쿼리를 지원하는 UDM의 경우 크기가 엄청나게 커질 수 있습니다. 이때 특정 작업을 수행하는 사용자에게 관련이 없는 수많은 정보가 제공되지 않도록 해야 합니다.
  • 모국어로 보고서를 보려는 글로벌 사용자의 요구 사항을 지원해야 합니다.
  • 시간에 대한 모든 일반적인 쿼리를 쉽게 수행할 수 있도록 해야 합니다. 예를 들어 사용자는 지난해의 같은 기간과 비교하여 판매액을 표시하려고 할 수 있습니다.

이 섹션에서는 UDM을 통해 향상된 데이터 탐색이 가능하도록 기본 모델 확장을 지원하는 방법을 보여 주기 위해 이러한 문제 중 몇 가지를 검토합니다.

계층

한 엔터티의 모든 특성을 한 개의 차원으로 통합하면 훨씬 단순한 모델을 사용자에게 제공할 수 있지만 각 특성 간에 단순한 목록으로는 표현할 수 없는 추가적인 관계가 있습니다. 위 예의 경우 Category, SubCategory 및 SKU가 제품을 구성할 수 있는 계층 중 하나를 정의합니다. 사용자에게는 이러한 계층 기반 분석을 수행해야 하는 경우가 많으므로 UDM을 사용하여 이러한 계층을 정의할 수 있습니다. 예를 들어 사용자는 먼저 Category별 총 판매액을 본 다음 SubCategory로 드릴다운하고 마지막으로 최하위 수준인 SKU로 드릴다운할 수 있습니다. 각 계층은 이러한 드릴다운/드릴업 시나리오를 단순화하기 위해 쿼리에서 사용할 수 있는 일련의 특성이라고 할 수 있습니다.

다음 다이어그램은 최종 사용자에게 표시되는 인터페이스에 나타날 수 있는 계층의 예입니다. 이 모델에는 제품 구성의 기준이 되는 몇 가지 다양한 계층이 포함되어 있습니다. 다음 쿼리는 "제품 범주별로 판매액과 할당액을 표시한 다음 하위 범주로 분류"라는 질문에 대해 응답합니다. "Products By Category" 계층을 표로 끌어 쿼리를 정의했습니다. 자세한 데이터를 보려면 "Bike" 범주를 두 번 클릭하여 하위 범주를 확장합니다.

UDM에서 계층 탐색

UDM은 계층의 각 수준 간을 이동하는 방법에 대한 세부 정보를 처리합니다. 또한 UDM은 Quotas를 SubCategory 수준에서는 사용할 수 없고 Category 수준에서만 사용할 수 있다는 팩트 등의 세부 정보를 처리합니다.

특수한 유형의 계층 중 하나로 부모-자식 계층을 들 수 있는데 이 계층은 자신에 대해 귀속 관계를 갖는 엔터티를 포괄합니다. 다음 그림에는 Employee 차원에 "Employees By Organization Structure"라는 계층이 있습니다. 이 계층을 사용하면 부모-자식 관계를 쉽게 탐색하고 롤업된 값을 각 조직 수준에서 쉽게 분석할 수 있습니다. 예를 들어 판매 부서의 부사장인 Charles Marshall의 판매 할당액에는 모든 부하 직원의 할당액 합계 및 자신과 직접 관련된 판매 할당액이 모두 포함되어 있습니다.

UDM에서 부모-자식 계층 탐색

분류

사용자는 자연스럽게 자신의 데이터를 분류하게 됩니다. 예를 들어 사용자는 "직원 개인 정보 관련 특성"이나 "전자 메일 주소 특성" 등으로 데이터를 분류합니다. UDM은 이러한 분류를 기반으로 추가적인 값을 제공할 수 있도록 다음 두 가지 메커니즘을 제공합니다.

  • 차원, 특성 및 기타 개체를 의미 있는 범주로 분류하여 클라이언트 도구에서 개체를 보다 효율적으로 사용하도록 할 수 있습니다. 예를 들어 특성을 URL로 표시할 수 있습니다. 그러면 이 특성을 포함하는 보고서에서 URL 값을 기반으로 탐색할 수 있습니다. 또 다른 특성을 전자 메일 주소로 표시할 수 있습니다. 이 경우 보고 클라이언트에서 일부 사용자 작업에 따라 새 전자 메일을 자동으로 열 수 있습니다.
  • 측정값, 계층 및 기타 개체를 사용자에게 의미 있는 폴더로 그룹화할 수 있습니다. 이러한 그룹화를 통해 보고 도구에서 많은 특성을 보다 쉽게 관리할 수 있도록 표시할 수 있습니다. 예를 들어 '고객 통계'라는 특성 그룹을 만들 수 있습니다.

시간

시간 정보는 일반적으로 DataTime 또는 Date 데이터 형식을 사용하여 기본 데이터 원본에 기록됩니다. SQL이나 XPath에 능숙한 사용자는 연도별 합계 데이터에 필요한 날짜 정보를 추출할 수 있지만 "요일별 판매액 표시"나 "7월 1일을 시작으로 회계 연도별로 분류"와 같이 시간의 다른 측면을 기반으로 하는 쿼리는 작성하기 어려울 수 있습니다.

그러나 UDM에는 다음과 같은 달력을 비롯하여 기본으로 제공되는 시간 인식 기능이 있습니다.

  • 자연
  • 회계
  • 보고('445' 등)
  • 제조(13개의 기간)
  • ISO8601

따라서 각 날짜의 세부 사항을 정의하는 다양한 특성 집합을 제공하는 시간 차원을 모델에 포함시킬 수 있습니다. 다음 그림에서는 사용자가 회계 연도 2001년의 판매액과 할당액을 보기로 선택한 경우의 결과를 보여 줍니다. 사용자는 이 작업을 위해 관련 항목을 트리에서 필터 영역으로 끌기만 했습니다. UDM은 해당 사용자 작업을 날짜 범위로 변환하는 방법과 쿼리에 포함시켜야 할 사항이 주문 기한이나 해당 날짜에 주문한 제품이 아닌 주문 선적 날짜라는 비즈니스 규칙을 모두 알고 있습니다. UDM에 의해 올바른 조인이 암시적으로 수행됩니다.

시간별 차원 측정값

UDM은 일반적인 시간 관련 쿼리(예: "이 달과 지난해의 같은 달 비교"와 같은 기간별 비교) 대답에 대한 지원도 제공합니다.

번역

앞의 예에서는 모델의 내용과 데이터가 모두 단일 언어로 표시되어 있습니다. 그러나 다른 나라 언어 사용자는 메타데이터를 자신의 지역 언어로 볼 필요가 있는 경우가 많습니다.

이 문제를 해결하기 위해 UDM에서는 메타데이터를 번역하여 모든 언어로 제공할 수 있도록 합니다. 특정 로캘을 사용하여 연결하는 클라이언트 응용 프로그램은 해당 언어로 모든 메타데이터를 받게 됩니다.

이 모델은 데이터 번역 기능도 제공할 수 있습니다. 특성을 데이터 원본의 다양한 요소에 매핑하여 해당 요소를 다양한 언어로 번역할 수 있습니다. 예를 들어 프랑스어 로캘이 설정된 클라이언트 컴퓨터에서 앞의 예에서 사용한 것과 같은 도구를 사용하여 연결하면 아래 그림과 같이 UDM과 쿼리 결과가 모두 프랑스어로 표시됩니다.

UDM에서 메타데이터 번역 표시

큐브 뷰

여기에서 사용한 예제 모델의 크기는 그다지 크지 않지만 실제 환경에서는 수십 개의 측정값과 차원을 포함하고, 각 차원에 수십 또는 수백 개의 특성이 포함된 훨씬 더 광범위한 범위의 모델이 있을 수 있습니다. 일반적으로 특정 작업을 수행하는 사용자는 전체 모델을 볼 필요가 없습니다. 지나치게 큰 모델 크기로 사용자에게 부담을 주지 않으려면 모델의 하위 집합을 표시하는 뷰를 정의할 수 있는 기능이 필요합니다.

UDM은 큐브 뷰를 통해 이러한 뷰를 제공합니다. 모델에서 특정 사용자 그룹과 관련된 특정 하위 집합(측정값, 차원, 특성 등)만 표시하는 여러 개의 큐브 뷰를 UDM에 정의할 수 있습니다. 그런 다음 각 큐브 뷰를 해당 큐브 뷰를 볼 수 있는 권한이 있는 사용자를 정의하는 사용자 보안 역할에 연결할 수 있습니다.

예를 들어 Inventory 측정값 그룹의 측정값만 포함하고 "Warehouse By Location" 계층을 숨기며 기본 City가 "Seattle"인 Seattle Inventory라는 큐브 뷰를 정의할 수 있습니다.

특성 의미

UDM은 특성에 대한 추가 의미를 제공합니다. 이러한 의미의 목적은 정보를 보다 쉽게 사용할 수 있도록 하는 것입니다. 다음은 특성에 적용할 수 있는 의미의 몇 가지 예입니다.

  • 이름과 키: 관계형 데이터베이스를 분석할 때 EmployeeID가 아무런 의미가 없는 고유한 시스템 생성 키라는 사실을 바로 알아채지 못할 수 있습니다. UDM은 Employee 특성에 키(고유 EmployeeID)와 이름(예: FirstName과 LastName을 연결한 이름)을 모두 지정할 수 있도록 하여 이러한 문제를 해결합니다. "직원 표시"라는 쿼리는 고유 ID를 사용하여 이름이 같은 여러 직원을 구분한 다음 사용자에게 의미 있는 이름을 표시합니다.
  • 순서 지정: 특성 값을 사전순이나 숫자순이 아닌 다른 일정한 순서로 표시해야 하는 경우가 많습니다. UDM에서는 기본 순서를 지정하여 이러한 요구 사항을 관리할 수 있습니다. 예를 들면 다음과 같습니다.
    • 요일을 일요일, 월요일, 화요일 등의 순으로 나타냅니다.
    • 우선 순위가 높은 항목에서 낮은 항목의 순으로 표시합니다.
  • 불연속화: 숫자 특성의 경우 특성의 각 값을 개별적으로 표시하면 의미가 없는 경우가 있습니다. 예를 들어 제품의 다양한 가격대에 대한 판매액($9.97, $10.05, $10.10 등)을 보는 것보다 가격 범위별 판매액(<$10, $10 - $15 등)을 보는 것이 더 유용합니다. UDM에서는 다양한 조건을 사용하여 이러한 범위로 특성을 불연속화할 수 있습니다.

KPI

일반적으로 회사에서는 비즈니스의 상태를 측정하는 중요 척도인 KPI(핵심 성과 지표)를 정의합니다. UDM에서는 이러한 KPI를 만들 수 있으므로 회사에서 데이터를 보다 이해하기 쉽게 그룹화하고 표시할 수 있습니다. 또한 KPI는 양호, 평균 또는 불량을 나타내는 신호등과 같은 그래픽을 사용하여 상태 및 추세를 표시할 수 있습니다.

UDM의 각 KPI는 각 성능 메트릭에 대해 식을 4개까지 정의합니다.

  • 실제 값
  • 목표 값
  • 상태 - 실제 대 목표 비율을 나타내는 -1과 1 사이의 정규화된 값입니다. -1은 '매우 불량'을 나타내고 1은 '매우 양호'를 나타냅니다.
  • 추세 - 시간 경과에 따른 추세를 나타내는 -1과 1 사이의 정규화된 값입니다. -1은 '악화되고 있음'을 나타내고 1은 '호전되고 있음'을 나타냅니다.

KPI를 사용하면 클라이언트 도구에서 관련 측정값을 사용자가 보다 쉽게 바로 이해할 수 있는 방법으로 제공할 수 있습니다. 다음 그림에서는 클라이언트 도구가 표시 폴더로 구성된 세 개의 KPI를 표시하는 방법의 예를 보여 줍니다.

UDM에서 KPI 표시

성능

사용자가 대화식 탐색을 수행하려면 응답 시간이 빨라야 합니다. 이러한 요구 사항으로 인해 대량의 데이터 집합에 대해 이러한 탐색을 자주 수행하는 경우 문제가 될 수 있습니다.

성능을 향상시키기 위해 UDM은 캐싱 서비스를 제공합니다. 캐시는 기본 데이터 원본에서 읽어 온 자세한 데이터와 이 데이터를 기반으로 미리 계산된 집계 값을 모두 저장할 수 있습니다. 그러나 캐시된 값을 사용할 경우 최신이 아닌 데이터가 사용될 수도 있습니다. 비즈니스 요구 사항에 따라 필요한 정보의 최신성 정도가 달라집니다. 반드시 최신 데이터를 표시해야 하는 경우가 있는 반면 두 시간 또는 이틀 전의 데이터를 표시해도 되는 경우가 있습니다.

UDM에서는 데이터의 최신성을 나타내는 이러한 정책을 반영하기 위해 캐시를 명시적으로 관리하거나(예: 매일 오전 2시에 캐시를 새로 고치도록 일정 정의) 자동 관리 캐싱을 사용하여 투명하게 관리할 수 있습니다. 사용자는 데이터의 최신성 정도를 지정할 수 있으며 UDM은 가장 빠른 쿼리 응답이 가능하도록 자동 캐시 생성 및 관리 기능을 제공합니다.

분석

앞 섹션에서는 UDM에서 대화식 데이터 탐색을 지원하는 방법을 살펴보았습니다. 그러나 사용자 모델에 비즈니스 논리를 통합하려는 경우 기본 데이터 원본의 정보를 이와 같이 보다 이해하기 쉽고 유용한 형태로 제공하는 것만으로는 충분하지 않습니다. 따라서 UDM은 데이터에 대한 단순한 계산 및 복잡한 계산을 모두 정의할 수 있는 기능을 제공합니다.

기본 분석

일반적으로 쿼리는 집계된 데이터를 반환합니다. 예를 들어 일반적 쿼리는 모든 판매 주문을 표시하는 대신 범주별로 판매액을 표시합니다. 그러나 기본 관계형 데이터에는 특정 측정값의 집계 방식을 정의하는 내용이 없습니다. 예를 들어 판매액 합계는 명확하게 계산할 수 있지만 단가는 평균을 구해야 합니다. UDM은 이 의미를 추가합니다.

다양한 체계로 집계 방법을 정의할 수 있습니다.

  • Sum, Count, Distinct Count, Max 또는 Min과 같은 단순 집계 함수를 사용할 수 있습니다.
  • 집계를 반가산적 집계로 정의할 수 있습니다. 즉, Last Period가 사용되는 Time을 제외한 모든 차원에 대해 Sum과 같은 단순 함수를 사용합니다. 예를 들어 Product에서 Product Category에 이르는 범위에서 재고 수준의 합계를 계산할 수 있지만 월 재고 수준은 각 날짜에 대한 재고 수준의 합계가 아니라 해당 달 마지막 날의 재고 수준입니다.
  • 집계는 Income 및 Expense와 같은 계정 유형을 기반으로 할 수 있습니다.
  • 특수한 요구 사항에 맞게 집계를 사용자 지정할 수 있습니다.

UDM에는 계산 멤버도 포함할 수 있습니다. 이러한 멤버는 원본 데이터와 직접적인 연관은 없지만 해당 데이터에서 파생됩니다. 예를 들어 Sales와 Quota 간의 차이를 계산하기 위해 Variance라는 계산 멤버를 정의할 수 있습니다.

마찬가지로 UDM은 판매액별 최상위 고객 10명 또는 가장 중요한 제품과 같이 사용자에게 유용한 엔터티 집합을 정의할 수 있습니다. 이렇게 하면 특정 엔터티 집합으로 쿼리 범위를 쉽게 제한할 수 있습니다.

고급 분석

사용자가 수행해야 하는 계산이 위의 'Variance' 예에서의 계산보다 훨씬 복잡한 경우도 있습니다. 다음은 복잡한 계산의 몇 가지 예입니다.

  • 각 기간에 대한 3개월 간의 판매 평균 표시
  • 이 기간의 연도별 성장률을 지난해 같은 기간과 비교
  • 기본 통화로 보고되는 판매액을 판매 당시의 일별 평균 환율을 사용하여 원래 통화로 변환
  • 다음해의 범주별 판매 예상액을 올해 대비 10% 증가한 값으로 계산한 다음 지난 3년 간의 관련 평균 판매액을 기반으로 각 제품에 예산 할당

UDM은 이러한 계산을 정의하는 강력한 모델을 제공합니다. 이 모델은 한 셀의 값을 다른 셀의 값을 기반으로 계산할 수 있는 다차원 스프레드시트와 유사합니다. 그러나 이 비유로도 UDM의 강력한 계산 기능을 적절히 설명할 수는 없습니다. 한 셀의 값을 다른 셀의 값뿐만 아니라 다른 셀에 이전에 있었던 값을 기반으로 계산할 수도 있습니다. 따라서 동시 등식이 지원됩니다. 예를 들어 수익은 매출에서 지출을 제하여 계산되지만 성과급(지출에 포함)은 수익에서 파생될 수 있습니다.

UDM은 이러한 계산을 작성할 수 있도록 디자인된 강력한 언어인 MDX(Multi Dimensional Expressions)를 제공할 뿐만 아니라 Microsoft .NET과의 통합도 지원합니다. 이러한 통합을 통해 저장 프로시저 및 함수를 확인 가능한 모든 .NET 언어(예: C#.NET 또는 Visual Basic .NET)로 작성할 수 있습니다. 그런 다음 저장 프로시저 또는 함수를 계산에 사용하기 위해 MDX에서 호출할 수 있습니다.

클라이언트는 이러한 계산의 세부 사항에 관여할 필요가 없습니다. 클라이언트 응용 프로그램에는 모델에 보다 유용한 측정값이 포함된 것으로 나타날 뿐입니다. 예를 들어 다음 예에서는 사용자가 Sales를 기반으로 미국에서 수익성이 가장 뛰어난 제품에 대한 다양한 계산 측정값을 봅니다.

UDM에서 계산 측정값 표시

데이터 마이닝과의 통합

이해하기 쉬운 다양한 형태로 데이터를 표시하는 기능도 중요하지만 사용자에게는 해당 데이터로부터 새로운 정보를 유추하는 기능도 필요합니다.

UDM은 데이터 마이닝 기술과 완벽하게 통합되어 데이터를 마이닝한 후 발견한 패턴을 예측에 사용할 수 있도록 합니다.

작업 가능한 데이터 만들기

일반적으로 사용자는 데이터를 보면서 추가 쿼리를 작성하거나 특정 작업을 수행하려고 합니다. 예를 들면 다음과 같습니다.

  • "이 수치의 기반이 되는 구체적인 판매액 계산"
  • "너무 낮은 할당액 늘리기"
  • "이상한 수치에 메모 표시"
  • "이 홍보 행사에 대해 웹 사이트에 올려 놓은 내용 표시"

단순히 이해하기 쉽게 사용자에게 데이터를 표시하는 것만으로는 충분하지 않습니다. 사용자가 데이터를 보면서 데이터 작업도 쉽게 수행할 수 있도록 해야 합니다.

UDM은 두 가지 방법으로 이를 지원합니다.

  • 데이터에 변경 내용 다시 기록 허용
  • 데이터에 작업 연결 허용

쓰기 저장(writeback)

UDM은 읽기 전용이 아닙니다. 따라서 UDM을 통해 데이터를 업데이트할 수도 있습니다. 측정값의 경우 원래 값과는 별도로 업데이트 값을 보관할 수 있습니다.

또한 요약 수치를 업데이트하는 것도 가능합니다. 예를 들어 예산 책정 시나리오를 가정해 봅니다. 예산액을 팀별 및 계정별에 이르는 자세한 수준까지 표시할 수도 있지만 먼저 부서별 및 계정 유형별과 같은 보다 요약된 수준에서만 표시할 수도 있습니다.

작업

UDM은 데이터와 데이터를 기반으로 수행된 작업을 서로 연결하는 작업을 지원합니다. 주요 작업은 다음과 같습니다.

  • URL: 지정한 URL로 이동합니다. 이러한 유형의 작업은 추가 정보를 얻기 위해 사용자를 특정 URL로 이동하거나 사용자를 새 작업을 수행할 수 있는 특정 웹 기반 응용 프로그램으로 이동하는 작업을 모두 지원합니다. 예를 들면 다음과 같습니다.
    • 제품의 경우 해당 제품에 대해 설명하는 회사 웹 사이트로 이동합니다.
    • 제품/웨어하우스 조합의 경우 웹 기반 재고 관리 응용 프로그램으로 이동한 다음 제품/웨어하우스를 매개 변수로 전달하여 안전 재고 수준을 높입니다.
  • 보고: 지정한 보고서를 실행합니다. 예를 들어 지정한 제품에 대해 해당 제품 및 현재 주문 상태를 설명하는 매개 변수가 있는 제품 보고서를 실행할 수 있습니다.
  • 드릴스루: 사용 가능한 최하위 수준의 정보까지 드릴스루합니다. 예를 들어 제품 및 고객별로 총 판매액을 분석하는 사용자는 해당 합계를 산출하는 데 사용된 모든 판매 트랜잭션을 볼 수 있습니다.

작업을 데이터의 특정 영역에 연결할 수 있습니다. 예를 들어 웹 페이지로 이동하는 작업은 각 제품에 적용하고 자세한 재고 전달 트랜잭션을 표시하는 작업은 제품 및 웨어하우스별 수량의 각 값에 적용할 수 있습니다.

작업이 UDM의 일부로 정의되기는 하지만 적용되는 작업의 세부 정보를 검색하고 해당 작업을 사용자에게 제공한 다음 필요에 따라 작업을 시작하는 것은 클라이언트 응용 프로그램에서 담당합니다.

보안

UDM에 대한 액세스를 제어할 수 있습니다. 보안의 핵심 기능은 다음과 같습니다.

  • UDM은 역할 기반 보안을 제공합니다. 역할을 정의하고, 역할에 사용 권한을 부여하고, 각 역할의 멤버로 사용자를 포함시킬 수 있습니다. 사용자의 실제 사용 권한은 해당 사용자가 속한 각 역할에 부여된 모든 사용 권한입니다. 또한 역할의 사용 권한에 '강력한 거부'를 포함시켜 사용자가 속한 다른 역할에 관계없이 권한을 제거할 수 있습니다.
  • 관리 권한(예: UDM 변경)은 데이터 액세스 권한과는 별개로 부여할 수 있습니다. 또한 개체의 메타데이터 읽기 및 데이터에 대한 읽기/쓰기 액세스에 대해 별도의 사용 권한을 정의할 수 있습니다.
  • 개별 셀에 이르는 세분성 수준까지 데이터에 보안을 설정할 수 있습니다. 예를 들어 'ACME' 고객에 대한 'Widget' 제품의 판매액을 사용자가 보지 못하도록 제한할 수 있습니다. 조건부 보안을 설정할 수도 있습니다. 예를 들어 부서의 직원이 5명 이상인 경우에만 특정 역할이 부서의 총 급여를 볼 수 있도록 설정할 수 있습니다.
  • 사용 권한을 통해 보이는 값 합계를 사용할지 여부를 정의할 수 있습니다. 보이는 값 합계를 사용할 경우 사용자가 사용 권한을 갖는 낮은 수준의 멤버만 합계에 반영됩니다. 불확정 셀 액세스 권한을 설정할 수도 있습니다. 즉, 다른 셀에서 파생된 셀은 이 다른 셀을 모두 볼 수 있는 경우에만 볼 수 있도록 설정할 수 있습니다. 예를 들어 수익이 소득과 지출에서 파생된 경우 사용자는 소득과 지출을 모두 볼 수 있는 권한이 있는 제품에 대해서만 수익을 볼 수 있습니다.

참고 항목

관련 자료

Analysis Services 개념

도움말 및 정보

SQL Server 2005 지원 받기