SQL Server "Yukon"의 비즈니스 인텔리전스 및 데이터 웨어하우징

이 페이지의 주제
down 소개
down SQL Server "Yukon" 베타 1 시작
down 관계형 데이터 웨어하우징
down 추출, 변환, 로딩(ETL)
down Analysis Services
down Reporting Services
down 요약
down 부록 A: 코드 예제

요약: 이 문서에서는 SQL Server "Yukon" 베타 1 비즈니스 인텔리전스 플랫폼에서 향상된 내용에 대해 개략적으로 다룹니다. 이 문서는 구현 가이드는 아니며 이 비즈니스 인텔리전스 플랫폼에서 향상된 내용에 대한 정보를 제공할 목적으로 만들어졌습니다.

저자 : Joy Mundy

소개Back to Top


Microsoft SQL Server "Yukon"은 기존의 분석 응용 프로그램과 혁신적인 첨단 분석 응용 프로그램을 모두 만들 수 있는 기능과 도구 및 특징을 제공하는 완벽한 비즈니스 인텔리전스(BI) 플랫폼입니다. 이 문서에서는 분석 응용 프로그램 작성에 사용되는 도구를 소개하고 복잡한 BI 시스템을 보다 쉽게 구성하고 관리할 수 있도록 만들어주는 새 기능을 중점적으로 다룹니다.

다음 표는 비즈니스 인텔리전스 시스템의 구성 요소와 이에 해당되는 Microsoft SQL Server 2000 및 SQL Server "Yukon" 구성 요소입니다.

구성 요소SQL Server 2000SQL Server "Yukon"
추출, 변환 및 로드데이터 변환 서비스(DTS)데이터 변환 서비스(DTS)
관계형 데이터 웨어하우스SQL Server 2000 관계형 데이터베이스SQL Server "Yukon" 관계형 데이터베이스
다차원 데이터베이스SQL Server 2000 Analysis ServicesSQL Server "Yukon" Analysis Services
데이터 마이닝SQL Server 2000 Analysis ServicesSQL Server "Yukon" Analysis Services
관리된 보고 SQL Server "Yukon" Reporting Services (새 구성 요소!)
임의 쿼리 및 분석Microsoft Office 제품 (Excel, Office Web Components, Data Analyzer, Sharepoint Portal)Microsoft Office 제품 (Excel, Office Web Components, Data Analyzer, Sharepoint Portal)
데이터베이스 개발 도구SQL Server 2000 엔터프라이즈 관리자, 분석 관리자, 쿼리 분석기 등 그외 다수SQL Server "Yukon" BI 개발 "Workbench" (새 구성 요소!)
데이터베이스 관리 도구Enterprise Manager, Analysis ManagerSQL Server "Yukon" SQL "Workbench" (새 구성 요소!)

SQL Server "Yukon"에서 Reporting Services, BI 개발 "Workbench," 그리고 SQL "Workbench"는 새로운 구성 요소입니다. 그리고 SQL Server "Yukon"의 나머지 주요 BI 구성 요소(DTS, Analysis Services OLAP, Analysis Services 데이터 마이닝)도 크게 달라지거나 향상되었습니다. SQL Server "Yukon" 관계형 데이터베이스에는 중요한 몇몇 새 기능이 포함되었습니다. Microsoft Office 쿼리 및 포털 도구는 SQL Server의 일부는 아니지만 현재의 이 릴리스는 SQL Server "Yukon"에서 계속해서 사용될 것이며, 이 Office 도구의 BI 기능은 Office 제품이 릴리스될 때마다 계속 발전될 것입니다.

The SQL Server "Yukon" Business Intelligence 도구 세트는 종단 간 BI 응용 프로그램 통합을 제공합니다.

  • 설계: BI 개발 "Workbench"는 비즈니스 인텔리전스 시스템 개발자용으로 설계된 최초의 통합 개발 환경입니다. Visual Studio .Net에 기반하여 만들어진 BI 개발 "Workbench"는 BI 시스템 개발자를 위한 풍부한 통합 전문 개발 플랫폼을 제공합니다. 이 BI 응용 프로그램의 모든 구성 요소에서 디버깅, 소스 제어, 스크립트 및 코드 개발을 이용할 수 있습니다.
  • 종합화: 다량의 데이터에 대해 복잡한 데이터 통합, 변환 및 종합을 신속하게 실행할 수 있도록 하기 위해 데이터 변환 서비스가 다시 작성되었습니다. BI 개발 "Workbench"는 패키지 구성 및 디버깅을 즐겁게 실행할 수 있도록 만들어 줍니다. 그리고 DTS, Analysis Services, Reporting Services가 함께 동작하여 유형이 다른 원본에서 데이터를 원활하게 볼 수 있도록 해 줍니다.
  • 저장: SQL Server "Yukon"은 관계형 데이터베이스와 다차원 데이터베이스의 경계를 없애줍니다. 즉, 데이터를 관계형 데이터베이스에 저장할 수도 있고 다차원 데이터베이스에 저장할 수도 있으며 아니면 새 Proactive Cache 기능을 사용하여 이 두 데이터베이스의 장점만을 이용할 수도 있습니다.
  • 분석: Microsoft의 데이터 마이닝은 예전부터 사용이 간편한 기능이었습니다. 여기에 Association Rules, Time Series, Regression trees, Sequence Clustering, Neural Nets, Nadve Bayes 등 중요한 새 알고리즘이 추가됨에 따라 이제 훨씬 더 좋아졌습니다. 외에도 주요 성능 표시기 프레임워크, MDX 스크립트 및 기본 제공되는 기타 고급 비즈니스 분석 등 중요한 새 분석 기능이 Analysis Services 큐브에 추가되었습니다. 한편, Reporting Services 보고서 전송 및 관리 프레임워크는 복잡한 분석을 가능한 모든 대상자에게 손쉽게 배포할 수 있도록 만들어 줍니다.
  • 전달: Reporting Services는 Microsoft Business Intelligence 플랫폼을 확장하여 분석 기능을 사용해야 하는 비즈니스 사용자가 이용할 수 있도록 합니다. Reporting Services는 웹 서비스를 통해 임베드 및 관리되는 엔터프라이즈 관리 리포트 환경입니다. 보고서를 사용자 개인화해서 다양한 형식으로 전달할 수 있으며 다양한 대화형 작업과 인쇄 옵션을 갖추고 있습니다. 그리고 보고서를 다운스트림 비즈니스 인텔리전스 데이터 원본으로 배포하여 복잡한 분석 결과를 폭넓은 대상에게 전달할 수 있습니다. Microsoft와 파트너의 임의 쿼리 및 분석 도구는 앞으로도 계속해서 Analysis Services 및 관계형 데이터베이스에서 데이터 액세스를 위해 가장 널리 사용될 것입니다.
  • 관리: SQL "Workbench"는 모든 SQL Server "Yukon" 구성 요소 관리를 통합합니다. Microsoft는 사용자가 관계형 엔진에서 기대하는 서버의 "능력"인 확장성, 안정성, 가용성, 프로그램 가능성 등을 모든 BI 플랫폼 구성 요소로 확장할 계획이므로 비즈니스 인텔리전스 사용자에게 커다란 도움이 될 것입니다.

SQL Server "Yukon" Business Intelligence 구성 요소의 가장 큰 목표는 규모에 관계 없이 어떤 기업이나 비즈니스 인텔리전스를 개발하고 이를 경영진 및 분석가만이 아니라 일선 담당자와 외부 직원까지 모두 사용할 수 있도록 지원하는 것입니다. 이러한 목표를 달성하기 위해 완벽하게 통합되고 사용이 간편한 SQL Server "Yukon"은 데이터를 웹 서비스로 게시하며, 일반 하드웨어에서 최상의 성능을 제공하고, 혁신적인 분석 응용 프로그램 개발에 사용할 수 있는 다양한 새 기능을 제공합니다.

SQL Server "Yukon" 베타 1 시작Back to Top


SQL Server "Yukon"을 설치하면서 가장 먼저 알 수 있는 사실은 설치 작업이 통합되어 있다는 것입니다. 이제 더 이상 Analysis Services와 같은 일부 기능을 위해 별도로 설치 프로그램을 실행할 필요가 없습니다. Reporting Services와 같은 기능을 설치할 수 없다면 이는 컴퓨터가 그 기능의 설치 요구 사항을 충족시키지 않는 것입니다. 필수 기능에 대한 자세한 설명은 추가 정보 파일을 참조하십시오. 올바르게 구성된 대부분의 컴퓨터에서, 설치 동안 모든 기본 설정을 다 수락해야만 다음 주요 기능을 모두 설치할 수 있습니다.

  • SQL Server 관계형 데이터베이스 엔진
  • DTS
  • Analysis Services
  • Reporting Services
  • SQL "Workbench" (데이터베이스 관리 도구 세트)
  • BI "Workbench" (BI 응용 프로그램 개발 도구 세트)

Reporting Services를 설치하려면 IIS가 설치되어 있고 정확하게 구성되어 있어야 합니다. Reporting Services는 "Yukon" Business Intelligence 기능 세트의 필수적인 부분이므로 시간이 들더라도 앞서 말한 구성 요소와 설치 단계를 실행하는 것이 좋습니다.

Analysis Services에 익숙한 고객이라면 Analysis Services 메타데이터 리포지토리가 없는 것을 의아해 할 것입니다. SQL Server 2000에서는 Analysis Services 리포지토리가 Microsoft Access 데이터베이스로 제공되었습니다. 하지만 Analysis Services "Yukon"에는 메타데이터 리포지토리가 없습니다. 대신 Analysis Services 데이터베이스 메타데이터 정보는 XML 파일로 저장되어 Analysis Services가 관리합니다. 이 XML 파일은 필요할 경우 소스 제어 아래에 둘 수 있습니다.

BI "Workbench"를 사용하여 BI 데이터베이스 개체를 개발하고 SQL "Workbench"를 사용하여 이 개체를 실행 및 유지 관리하는 것이 좋습니다. SQL "Workbench"에서 DTS 패키지와 Analysis Services 큐브 및 마이닝 모델을 디자인할 수 있지만 BI "Workbench"는 BI 응용 프로그램 디자인 및 디버깅에 사용하기에 보다 효과적입니다.

베타 1의 경우 기존 DTS 패키지나 Analysis Services 데이터베이스를 업그레이드하기 보다는 새 응용 프로그램으로 시작하는 편이 분명 더 많은 것을 배울 수 있을 것입니다. 기존 패키지나 데이터베이스가 있는 경우 이것을 "다시 만드는" 편이 유용할 수도 있습니다. 기존 개체 업그레이드는 이 새 도구와 기능 및 개념에 더 익숙해진 다음 시도해 보십시오.

많은 고객이 SQL Server 도구를 사용하여 시스템을 개발하게 될 것입니다. 이제는 익숙해진 하나 이상의 원본 시스템의 비즈니스 인텔리전스 구조는 DTS를 사용하여 차원 관계형 데

이터 웨어하우스에 데이터를 채워 넣고 이 데이터 웨어하우스는 다시 Analysis Services 데이터베이스에 데이터를 채우는 데 사용됩니다. 하지만 SQL Server "Yukon"은 서로 다른 구성 요소를 없애거나 가상화하여 이 일반적인 디자인에서 벗어나는 많은 옵션을 제공합니다.

관계형 데이터 웨어하우징Back to Top


SQL Server "Yukon" 관계형 데이터베이스 엔진에는 데이터 웨어하우스 스타일 응용 프로그램의 디자인 및 유지 관리에 중요한 다음과 같은 기능이 포함되어 있습니다.

  • 신속한 데이터 로드를 가능하게 하며 아주 큰 테이블도 간단하게 유지 관리할 수 있도록 만들어 주는 테이블 파티션
  • 손쉬운 리포트 서버 만들기
  • 새 데이터 유형 및 새 분석 기능을 포함한 transact-SQL 향상
  • 온라인 인덱스 작업
  • 세밀한 백업/복원 작업
  • 신속한 파일 초기화

리포트 서버

트랜잭션 데이터베이스에서 관계형 작업 리포트를 오프로드하는데 사용되는 일반적인 기술은 리포트 서버를 유지 관리하는 것입니다. 리포트 서버는 약간의 지연 시간을 가지면서, 대개의 경우 전날의 트랜잭션 데이터베이스 이미지를 유지 관리합니다. 또한 리포트 서버는 대부분의 리포트 및 데이터 웨어하우스 추출에 사용됩니다.

Microsoft SQL Server "Yukon"에는 리포트 서버를 아주 쉽게 만들고 유지 관리할 수 있는 두 가지 새로운 기능이 추가되었습니다. SQL Server 리포트 서버는 지연 시간이 하루 미만으로 훨씬 더 짧습니다. 그리고 이 리포트 서버는 트랜잭션 시스템의 대기 시스템 역할을 할 수 있도록 만들어졌습니다.

리포트 서버를 만들려면 먼저, 가용성이 높은 인스턴트 대기 시스템을 제공하는 새 SQL Server "Yukon" 기능인 데이터베이스 미러를 만듭니다. 자세한 내용은 Books Online에서 "데이터베이스 미러링 개념" 항목을 참조하십시오. 데이터베이스 미러는 직접 쿼리할 수 없는데, 두 번째 새로운 기능이 바로 이 역할을 합니다.

이 미러에서 데이터베이스 뷰를 만듭니다. 데이터베이스 뷰는 지정 시간에서의 데이터베이스에 대한 읽기 전용 사본으로, 데이터베이스 전체 사본이 아닙니다. 따라서 공간 효율성이 아주 높습니다. 데이터베이스 뷰 유지 관리는 그 데이터베이스 뷰가 기반으로 하는 트랜잭션 데이터베이스에 약간의 영향을 미치긴 하지만 다수의 데이터베이스 뷰가 존재할 수 있습니다. 자세한 내용은 Book Online에서 "데이터베이스 뷰 이해" 항목을 참조하십시오.

데이터베이스 미러에서 데이터베이스 뷰를 만들면 대기 서버를 손쉽게 만들어 시스템 가용성을 높일 수 있으므로 리포트 서버로서 두 가지 역할을 하게 됩니다.

테이블 파티션

분할된 테이블과 인덱스는 데이터를 가로 단위로 구분하므로 행 그룹이 개별 파티션으로 매핑됩니다. 이 데이터에서 실행되는 쿼리와 같은 작업은 테이블이나 인덱스 전체가 하나의 엔티티인 것처럼 실행됩니다.

파티션 분할은 다음과 같은 효과가 있습니다.

  • 테이블과 인덱스의 관리 효율 향상
  • 다중 CPU 컴퓨터의 쿼리 성능 향상

관계형 데이터 웨어하우스에서 팩트 테이블이 테이블 분할의 가장 유력한 후보이며 날짜별 구분이 가장 일반적인 분할 전략입니다.

Books Online 항목 중 분할된 테이블 및 인덱스 만들기의 설명처럼 분할된 테이블 정의는 다음 세 단계로 이루어집니다.

  1. 파티션 함수를 만들어 이 함수를 사용하는 테이블이 어떻게 분할되는지 지정합니다.
  2. 파티션 구성표를 만들어 파일 그룹에 파티션 함수의 파티션 배치를 지정합니다.
  3. 파티션 구성표를 사용해 테이블 또는 인덱스를 만듭니다.

여러 테이블이 동일한 파티션 구성표를 사용할 수 있습니다.

이 문서에서는 팩트 테이블의 범위(Range) 분할만을 다루며, 테이블 분할에 대한 전체적인 설명은 제공하지 않습니다. 따라서 테이블 분할 전반에 대한 자료는 SQL Server Books Online을 참조하십시오.

가장 일반적인 분할 구조는 팩트 테이블을 년, 분기, 월 또는 일 등의 날짜 범위로 분할하는 것입니다. 대부분의 경우 큰 팩트 테이블을 날짜별로 분할하면 관리 효율이 상당히 좋아집니다. 쿼리 성능을 높이려면 시간 차원 테이블도 동일한 파티션 구성표를 사용하여 분할해야 합니다.

  • 분할된 테이블은 분할되지 않은 테이블처럼 실행됩니다.
  • 테이블에 대한 쿼리가 정확하게 해결됩니다.
  • 테이블에 대한 직접 삽입, 업데이트 및 삭제가 정확한 파티션으로 자동으로 이행됩니다.

테이블 파티션을 사용한 신속한 데이터 로드

대부분의 데이터 웨어하우스 응용 프로그램은 점점 줄어들고 있는 작은 로드 창에서 점점 늘어나는 엄청난 양의 데이터를 로드하기 위해 허덕이고 있습니다. 일반적인 프로세스는 몇몇 원본 시스템에서 데이터를 추출한 다음 이들 시스템 전체적으로 그 데이터를 정리, 변환, 종합화 및 합리화하는 것입니다. 데이터 관리 응용 프로그램은 그 로드 창 내에서 추출, 변환, 로딩 프로세스를 모두 완료해야 합니다. 일반적으로 이 시스템을 비즈니스용으로 사용하는 사용자는 이 시스템이 데이터 웨어하우스를 쿼리에 사용할 수 없는 시간을 최소화할 수 있기를 강력하게 원합니다. 새 데이터가 기존 데이터 웨어하우스에 삽입되는 데이터 관리 응용 프로그램의 "쓰기" 단계는 사용자에게 미치는 영향을 최소화하고 신속하게 이루어져야 합니다.

데이터를 신속하게 로드하기 위해서는 데이터 복구 모델이 반드시 대량 기록(Bulk Logged) 또는 텍스트(Simple)여야 하며 테이블은 비어 있거나 인덱스는 없이 데이터만 들어 있어야 합니다. 이러한 조건이 충족되어야만 로그되지 않는 로드가 가능합니다. 분할된 테이블이 존재하지 않았던 SQL Server 2000에서는 일반적으로 초기 기록 데이터 웨어하우스 로드만이 이러한 조건을 충족시킬 수 있었습니다. 그래서 대형 데이터 웨어하우스를 가진 일부 고객은 별도의 실제 테이블에 UNION ALL 뷰를 만들어 반(半)분할 구조를 구축했으며, 이러한 테이블은 비 로그 기술을 사용하는 개별 로드 사이클로 채워졌습니다. 하지만 이 방법은 그리 만족스럽지 않았으므로 SQL Server "Yukon" 분할 테이블은 더 우수한 기능을 제공합니다.

SQL Server "Yukon"에서는 파티션에 직접 로그되지 않는 로드를 실행할 수 없습니다. 하지만 의사(pseudo) 파티션을 호출할 별도의 테이블로 로드할 수는 있습니다. 특정 조건에서는, 극도로 신속하게 발생하는 메타데이터 작업으로서 의사(pseudo) 파티션을 분할 테이블로 전환할 수 있습니다. 이 기술은 다음 두 가지 요구 사항을 충족할 수 있습니다.

  • 전체 로드 시간 최소화 - 의사(pseudo) 파티션 로드는 로깅 없이 실행되기 때문입니다.
  • 최종 사용자에게 미치는 영향 최소화 및 데이터 웨어하우스 무결성 보장 - 의사(pseudo) 파티션은 사용자가 데이터 웨어하우스를 쿼리하는 동안 로드될 수 있기 때문입니다. 데이터 관리 응용 프로그램은 모든 팩트 테이블이 로드되고 준비가 완료된 다음 파티션 전환을 실행합니다. 이 파티션 전환 작업은 거의 1초도 걸리지 않는 시간에 아주 신속하게 이루어집니다.

이 외에도 의사(pseudo) 파티션은 별도의 테이블로 백업할 수 있으므로 시스템 관리 효율이 향상됩니다.

테이블 파티션을 사용한 신속한 데이터 삭제

많은 데이터 웨어하우스는 그 데이터 웨어하우스 내에 세부 데이터 이동 창을 가지고 있습니다. 예를 들면 팩트 테이블은 3년, 5년 또는 10년간 데이터를 보관할 수 있습니다. 따라서 오래된 데이터는 정기적으로 그 테이블에서 제거됩니다. 계속해서 데이터를 없애는 가장 큰 이유는 쿼리 성능을 높이고 저장 비용을 최소화하기 위한 것입니다.

SQL Server "Yukon" 파티션을 이용하면 분할된 큰 팩트 테이블에서 오래된 데이터를 아주 쉽게 제거할 수 있습니다. 앞서 설명한 것처럼 빈 의사(pseudo) 파티션을 만들어 그 파티션을 분할된 테이블로 전환하기만 하면 됩니다. 그러면 분할된 이 테이블에서 채워진 파티션이 있던 자리에 빈 파티션이 생기며, 비어 있는 이 의사(pseudo) 파티션에 데이터가 채워집니다. 이렇게 되면 필요에 따라 의사(pseudo) 파티션을 백업하거나 자르거나 제거할 수 있습니다.

파티션 함수를 재정의하여 비어 있는 모든 파티션을 하나로 병합할 수 있는 옵션도 있습니다.

transact-SQL 향상

새 데이터 형식

다음은 데이터 웨어하우징에 유용하게 사용될 중요한 몇몇 새 데이터 형식입니다.

  • UtcDateTime은 시간대를 알고 있는 datetime 데이터 형식입니다. UtcDateTime은 글로벌 작업에 사용되는 원본 트랜잭션 데이터베이스에 사용됩니다. 그리고 데이터 웨어하우스에 특성으로 사용되며 데이터 준비 프로세스에서 날짜 및 시간별로 정확하게 정렬하는 데 사용됩니다.
  • Date는 datetime의 날짜 부분으로, 1/1/0001부터 12/31/9999까지 정확하게 표시합니다. 대부분의 데이터 웨어하우스에는 소위 말하는 "시간" 또는 "날짜" 차원이 포함되어 있으며, Date 데이터 형식은 이 차원의 정의에 유용합니다.
  • Time은 datetime의 시간 부분으로, 100NS의 정확성을 제공하며 그 범위는 0:00:00부터23:59:59.9999999까지 입니다.
  • Varchar(max), nvarchar(max), varbinary(max)는 데이터를 최고 2GB까지 보유하며 text, ntext, image 데이터 형식의 대체 형식으로 유용하게 사용할 수 있을 것입니다. 이러한 확장 문자 형식은 확장된 메타데이터 및 다른 설명 정보를 한 데이터 웨어하우스에 보관하는데 유용합니다.

새 분석 함수

몇몇 새 분석 함수가 transact-SQL 내에 기본 분석 기능을 제공합니다. 이 함수를 사용하면 Analysis Services 전체가 아니라 관계형 데이터베이스만 쿼리할 수 있으므로 데이터 웨어하우스에 유용할 것입니다. 이 외에도 유용한 데이터 특성을 개발하는 데이터 준비 과정에도 일반적으로 사용됩니다.

ROW_NUMBER. 결과 집합의 순차 행 번호를 반환합니다.

RANK. 결과 집합의 행 순위를 반환합니다. 값이 같은 행이 없다면 RANK는 ROW_NUMBER와 같습니다. 값이 동일하게 정렬된 행은 모두 동일한 순위를 가지며, 다음 순위는 다시 ROW_NUMBER와 일치합니다. 다시 말하면, 1, 2행의 값이 동일하다면 1행과 2행은 RANK=1이, 3행은 RANK=3이 반환되며 RANK=2가 반환되는 행은 없습니다.

DENSE_RANK. 결과 집합의 행 순위를 반환합니다. DENSE_RANK 함수는 RANK와 비슷하지만 RANK 함수에서 발생하는 틈이 없다는 점이 다릅니다. 즉, 위 예에서 1행과 2행은 RANK=1이, 3행은 RANK=2가 반환됩니다.

NTILE. 정렬된 집합을 거의 동일한 크기의 지정된 숫자 그룹으로 나눕니다.

이 분석 함수는 SQL Server "Yukon" 베타 1에서는 사용할 수 없습니다.

PIVOT 및 UNPIVOT 연산자

PIVOT 연산자를 사용하면 쿼리에서 중단 값에 따라 결과 집합을 피벗하여 크로스탭 보고서를 생성할 수 있습니다. 예를 들어 테이블의 별도의 행에 "Actuals"과 "Budget" 데이터가 들어 있는 경우 PIVOT 연산자를 사용하면 [Actuals]와 [Budgets]라는 이름의 열을 가진 크로스탭 보고서를 생성할 수 있습니다.

한편 UNPIVOT 연산자를 사용하면 한 행을 다수의 행으로 나눌 수 있습니다. 즉, 위 예에서 [Actuals]와 [Budgets]이 있는 행 집합을 이러한 값이 붙은 다수의 행으로 변환할 수 있습니다.

SQL Server 이전 버전에서는 복잡한 transact-SQL SELECT 문을 작성해야만 데이터를 회전할 수 있었습니다. PIVOT과 UNPIVOT 연산자는 데이터를 회전할 수 있는 간단한 메커니즘을 제공합니다.

재귀 쿼리

"재귀 쿼리"가 아주 유용하게 사용되는 몇몇 경우가 있습니다. SQL Server "Yukon"의 새 기능을 이용하면 재귀 쿼리가 반드시 쉽지는 않지만 가능합니다.

재귀 쿼리는 자기 조인 기능이 있는 테이블의 쿼리입니다. 가장 일반적으로 사용되는 두 예는 직원 관리자 정보가 들어 있는 테이블과 자재 비용 테이블입니다. 자기 조인 테이블은 AdventureWorks 데이터베이스, Employee 테이블을 보면 알 수 있습니다.

한 상사에게 직접 보고하는 직원의 수와 같이 직접적인 관계에 대한 자기 조인 테이블에 쿼리하기는 쉽습니다. 하지만 "한 관리자의 조직에 있는 직원 수는 얼마입니까?"와 같은 질문은 답하기가 좀 더 어렵습니다.

이 문제를 해결하는 SQL Server "Yukon" 관계형 데이터베이스 기능을 "재귀 일반 테이블 식"이라고 합니다. 위 질문에 대답하는 재귀 쿼리의 예가 부록에 들어 있습니다. 자세한 내용은 Book Online에서 ""WITH <common_table_expression>" 항목을 참조하십시오.

추출, 변환, 로딩(ETL) Back to Top


데이터 변환 서비스(DTS)가 SQL Server "Yukon"에서 완전히 새로운 기능으로 거듭났습니다. DTS는 SQL Server 2000에서 널리 사용되었지만 DTS "Yukon"은 엔터프라이즈 ETL 플랫폼으로 다시 개발되었기 때문입니다. DTS는 엔터프라이즈 클래스 ETL 응용 프로그램을 구축하는 데 필요한 다양한 기능과 아주 우수한 성능을 제공하며 프로그램 가능성, 포함 가능성, 확장성이 우수한 이상적인 ETL 플랫폼입니다.

다음은 DTS "Yukon" 기능을 요약한 것입니다. DTS를 적용한 ETL 시스템 개발에 대한 자세한 내용은 SQL Server Books Online을 참조하십시오.

패키지 개발

SQL Server "Yukon" DTS 개발엔터프라이즈
ETL 개발
ETL 플랫폼
BI "Workbench" GUI를 사용하여 데이터 관리 응용 프로그램을 위한 DTS 패키지를 만듭니다. 도구 상자에서 작업을 끌어와서 이들의 속성을 설정하고 작업을 선행 제약 조건과 연결하여 BI "Workbench"에서 DTS 패키지를 디자인, 개발, 디버깅합니다. dwsql01 
SQL "Workbench" 마법사를 사용하여 데이터베이스 복사와 같은 일반적인 작업을 실행하는 단순한 DTS 패키지를 개발합니다. (베타 1에서는 이용할 수 없음)dwsql01 
소프트웨어 공급업체는 자사 제품에 ETS 기능을 포함시켜 필요에 따라 사용자 지정 패키지를 생성하는 마법사를 만듭니다. dwsql01
데이터 흐름에서 제어 흐름을 분리합니다. 대부분의 DTS 패키지에는 여러 제어 흐름 작업과 작업 루프 또는 시퀀스가 들어 있으며, 제어 흐름 창에 레이아웃됩니다. 파이프라인 작업이라는 한 제어 작업이 이 패키지의 원동력으로, 데이터 흐름을 레이아웃하는 자체 디자인 표면이 있습니다. 제어 흐름과 데이터 흐름을 분리하면 패키지를 읽기가 더 쉬워집니다.dwsql01 
패키지 변수가 정의되어 있으며 볼 수 있습니다. 변수는 패키지, 루프 또는 작업 등으로 범위가 정해집니다.dwsql01 
한 패키지가 다른 패키지를 호출하는 패키지 네트워크를 구축하여 복잡한 ETLM 시스템을 구현할 수 있습니다. 이 경우 하위 패키지는 논리, 변수, 컨텍스트를 다시 사용할 수 있습니다. 패키지를 이런 식으로 중첩시킬 필요성이 DTS 2000보다는 적습니다.dwsql01 
패키지 구성 프레임워크는 패키지가 다른 환경에서 실행되는 방식을 사용자 지정하는 확장 가능한 시스템입니다.dwsql01 
DTS 패키지는 파일 시스템 또는 SQL Server에 XML로 저장됩니다. DTS XML 파일은 소스 제어에서 관리할 수 있습니다.dwsql01dwsql01
DTS 2000 패키지 마이그레이션 마법사는 패키지를 DTS "Yukon"으로 마이그레이션하는 데 도움이 되며 업그레이드에 문제가 있을 경우 경고를 제공합니다.dwsql01 
DTS 2000 런타임은 SQL Server "Yukon"에 포함되어 있으며 업그레이드하지 않고도 DTS 2000 패키지를 실행할 수 있습니다.dwsql01 
패키지 작업과 결과는 다양한 형식으로 다양한 사용자에게 로그됩니다.dwsql01dwsql01
이벤트 핸들러 논리는 한 번 정의하면 여러 번 사용할 수 있습니다.dwsql01dwsql01
WMI와의 통합은 패키지가 외부 이벤트(예: 파일 복사 완료)에 응답하거나 WMI 이벤트를 발생시켜 다른 프로세스에서 소비하도록 할 수 있다는 것을 뜻합니다. (베타 1에서는 이용할 수 없음)dwsql01dwsql01
트랜잭션 제어 및 오류 검사점 기능이 있는 패키지 다시 시작 기능은 관리자가 대량의 데이터가 이동하는 복잡한 패키지를 관리하는 데 도움을 줍니다.dwsql01 

제어 흐름

SQL Server "Yukon" DTS 기능엔터프라이즈
ETL 개발
ETL 플랫폼
선행 제약 조건: 성공, 실패 또는 완료 시 다른 작업으로의 전달을 제어하도록 패키지를 디자인할 수 있습니다.dwsql01 
루핑 작업에는 For, ForEach, Sequence 루프가 포함됩니다. 패키지 개발자는 데이터베이스의 모든 (또는 일련의) 테이블, 디렉터리의 파일, 또는 Analysis Services 큐브의 파티션에서 일련의 작업을 손쉽게 실행할 수 있습니다.dwsql01 
Analysis Services 통합이 매끄럽게 이루어지며, Analysis Services DDL 실행, Analysis Services 개체 처리, 데이터 마이닝 쿼리 실행 등의 제어 작업을 제공합니다. 아래에서 다시 설명하겠지만, DTS 파이프라인도 Analysis Services와 통합됩니다.dwsql01 
스크립트 작업에서 VB.NET 스크립팅을 사용할 수 있습니다. ActiveX 스크립트 작업이라고 하는 두 번째 스크립팅 작업은 주로 DTS 2000과의 호환성에 사용됩니다.dwsql01 
통신 작업에는 다음이 포함됩니다.
  • 메시지 대기열
  • 메일 보내기
dwsql01 
기타 제어 흐름 작업은 다음과 같습니다.
  • 대량 삽입
  • 패키지 실행
  • 프로세스 실행
  • SQL 실행
  • 파일 시스템
  • FTP
dwsql01 
추가 작업은 DTS 개체 모델을 사용해 손쉽게 개발할 수 있습니다. dwsql01

데이터 흐름

SQL Server "Yukon" DTS 기능엔터프라이즈
ETL 개발
ETL 플랫폼
데이터 흐름 파이프라인의 여러 원본, 변환, 대상. 데이터를 읽고 결합 및 조작한 다음 변환이 완료된 경우에만 데이터를 쓸 수 있습니다. 준비 단계 테이블에 여러 번 써야 할 필요가 줄어들거나 없어지므로 변환 성능이 크게 향상됩니다.dwsql01 
DTS 파이프라인 작업은 여러 유형이 다른 데이터 원본과 로케일에서 데이터를 소비합니다. 확장 가능한 데이터 원본 아키텍처는 이미 플랫 파일, OLEDB 원본(DB2 및 Oracle 포함), 그리고 행 파일의 데이터를 지원합니다. 특수하게 구조화된 데이터를 사용하는 원본을 포함해 추가 원본이 계획되어 있습니다.dwsql01dwsql01
Microsoft 또는 파트너가 추가 데이터 원본을 손쉽게 개발할 수 있습니다. dwsql01
여러 원본의 데이터를 Join, Lookup, Union 연산자와 연결할 수 있습니다. 이 작업은 메모리에서 실행되며 데이터베이스나 파일에 쓰기 작업을 할 필요가 없습니다.dwsql01 
조건부 분할 및 멀티캐스트 변환을 사용해 데이터 스트림을 분할할 수 있습니다. 컴파일러와 유사한 DTS 엔진은 어떤 데이터 스트림을 병렬로 실행할 수 있는지를 판단합니다.dwsql01 
Character Map, Copy Map, Data Conversion, Derived Column 변환 연산자가 다양한 행 기반 데이터 변환을 제공합니다. 이러한 연산자는 단순한 변환이라기보다는 마법사와 유사하며 필요한 데이터 변환 대부분을 제공합니다.dwsql01 
일부 데이터 변환 작업의 경우에는 다수 행의 데이터를 비교해야 합니다. Sort 및 Aggregate 변환 연산자는 데이터 흐름에서 데이터베이스 집계보다 훨씬 더 넒은 규모와 아주 우수한 성능으로 이러한 작업을 실행합니다.dwsql01 
일부 데이터 변환 작업에는 퍼지 매칭, 퍼지 그룹화, 시간 차원 생성, 피버팅 또는 언피버팅과 같은 복잡한 로직이 필요하며, 차원 키 관리와 같은 다른 일반적인 작업도 몇몇 단계를 거쳐야 합니다. 특수 기술과 마법사를 통해 모든 사용자가 이러한 복잡한 작업을 실행할 수가 있습니다.dwsql01 
변환된 데이터는 SQL Server 테이블, OLEDB 데이터베이스 테이블, 플랫 파일 및 원시 파일을 포함하여 유형이 다른 대상에 쓸 수 있습니다.dwsql01dwsql01
변환된 데이터는 Analysis Services 데이터베이스 및 데이터 마이닝 모델을 비롯해 Microsoft BI 솔루션의 다른 구성 요소와 통합할 수 있습니다.dwsql01 
변환 단계에서 발생하는 오류는 다음과 같은 여러 가지 방법으로 관리할 수 있습니다.
  • 진행 중인 변환은 데이터를 "수정"한 다음, 주 흐름으로 다시 전송할 수 있습니다.
  • 오류 행을 테이블이나 파일에 기록하여 오프라인 조사 후 다시 전송하도록 할 수 있습니다.
dwsql01dwsql01
Microsoft 또는 파트너는 추가 변환 및 대상을 손쉽게 개발할 수 있습니다. dwsql01

개발 및 디버깅

SQL Server "Yukon" DTS 기능엔터프라이즈
ETL 개발
ETL 플랫폼
패키지 개발자는 개별 제어 흐름 작업에서 제어 흐름 중단점을 정의할 수 있습니다. 이 중단점은 디버깅 프로세스에서 이 작업을 실행하기 전, 후 또는 실행 중 몇몇 시점에서 정의할 수 있습니다.dwsql01 
패키지 개발자는 데이터 흐름의 개별 변환에 데이터 뷰어를 연결할 수 있습니다. 디버깅 시 데이터 뷰어는 해당 시점에서 변환된 데이터 스트림의 내용을 표시합니다.dwsql01 
BI "Workbench"는 Visual Studio에서 호스팅됩니다. 스크립팅 및 기타 프로그래밍 작업은 이 엔터프라이즈 개발 환경을 활용합니다.dwsql01dwsql01
패키지 개발은 사용자가 사용자 지정 스크립트 및 실행 파일을 포함하여 모든 패키지 구성 요소를 모두 하나로 묶어 테스트, 제작 또는 기타 시스템용으로 배포할 수 있도록 돕습니다. dwsql01

DTS 2000 개발자를 위한 DTS "Yukon"

DTS 2000 사용자는 복잡한 작업을 실행하는 일련의 트릭을 개발해 왔습니다. 하지만 DTS "Yukon"에는 이러한 트릭, 특히 자체 수정 패키지 작성 기능이 필요하지 않습니다. 변수 및 구성 인프라를 사용해 동적 패키지를 작성할 수 있으므로 자체 수정 패키지를 작성할 필요가 없기 때문입니다.

변수와 구성 인프라가 우수하므로 복잡한 하위 시스템 패키지를 만들 필요도 줄어듭니다. 디자인이 우수한 단일 패키지는 다양한 필요성을 충족시킬 수 있습니다. 예를 들면, 한 패키지를 다양한 구성에 재사용하여 차원 데이터 웨어하우스에 많은 차원 테이블을 로드할 수 있습니다. DTS 2000의 경우에는 DTS 패키지의 복잡한 네트워크에 50~100개의 패키지가 들어 있지만 DTS "Yukon"에는 복잡한 네트워크라도 단지 10여개의 패키지만이 포함될 수 있습니다.

Analysis ServicesBack to Top


SQL Server 2000 Analysis Services는 상호 보완적인 관계에 있는 두 주요 기능인 온라인 분석 처리(OLAP)와 데이터 마이닝으로 구성됩니다. 이 두 구성 요소는 Analysis Services "Yukon"에서도 여전히 분석 응용 프로그램의 핵심적 역할을 합니다.

Analysis Services "Yukon"에서 향상된 OLAP 기능은 크게 다음 두 범주로 나눌 수 있습니다.

  • 완전히 새로운 기능을 추가하거나 복잡한 기능을 훨씬 쉽게 사용할 수 있도록 하여 새로운 유형의 분석 응용 프로그램을 가능하게 하는 기능
  • 분석 응용 프로그램의 엔터프라이즈 사용 가능성을 향상시키는 기능
새 기능 또는 향상된 기능디자인 및 개발관리 및 작동
통합 차원 모델(Unified Dimensional Model)은 관계형 및 OLAP 데이터 모델의 우수한 특성이 결합되어 있습니다. 통합 차원 모델에 대해서는 뒤에서 자세히 다룹니다.dwsql01 
능동적 캐싱(Proactive caching)은 아주 저렴한 관리 비용으로 대기 시간이 짧은 응용 프로그램을 작동할 수 있도록 만들어 줍니다. 이 기능에 대해서는 뒤에서 자세히 다룹니다.dwsql01dwsql01
주요 성능 표시기(KPI) 프레임워크는 기업의 측정값을 정의하는 간단한 서버 정의 메커니즘을 제공합니다. KPI는 가치, 목표, 현재 상태 및 경향에 대한 식으로 구성되며, 게이지 및 스톱라이트와 같은 단순한 그래픽을 사용해 표시됩니다.dwsql01 
번역(translations) 기능은 분석 데이터를 저장하고 사용자가 원하는 언어로 표시하는 단순한 중앙 관리 메커니즘을 제공합니다. 한 분석 데이터베이스는 여러 언어로 표시 가능합니다.dwsql01 
MDX 스크립트는 계산된 구성원, 명명된 집합, 셀 계산을 정의하는 새 매커니즘입니다.
  • MDX 스크립트 구문이 단순화되고 향상되었습니다. MDX Script는 단계적으로 디버깅할 수 있습니다.
  • MDX 스크립트 계산을 캐시 및 지속할 수 있으므로 복잡한 계산의 경우에도 우수한 쿼리 성능을 제공합니다.
  • MDX 스크립트 계산은 실시간 동적 계산 동작을 유지 관리할 수 있습니다.

MDX 스크립트는 뒤에서 자세히 다룹니다.

dwsql01dwsql01
Analysis Services 저장 프로시저를 사용하면 C++, VB 또는 C와 같은 일반 언어 런타임 프로그래밍 언어로 외부 루틴을 만들 수 있습니다. 저장 프로시저는 Analysis Services 2000 사용자 정의 함수(UDF)가 제공하는 기능을 확장합니다. Analysis Services 저장 프로시저에 대해서는 뒤에서 자세히 다룹니다.dwsql01 
데이터 쓰기 되돌림 성능이 10배나 향상되었습니다. 이 분석 응용 프로그램은 집계 셀에 데이터를 다시 쓸 수 있으며 그 집계 데이터를 원본으로 사용하는 잎 데이터로 할당하는 옵션도 있습니다.dwsql01dwsql01
기본 제공되는 비즈니스 규칙, 도구 및 마법사는 어려운 디자인을 쉽게 만들어 줍니다.
  • 항상 더할 수는 없는 측정값
  • 시간 인텔리전스
  • 계정 인텔리전스
  • 재무 집계
  • 통화 변환
  • 시간 차원 생성
dwsql01 
데이터 원본 뷰는 이 분석 응용 프로그램의 기초가 되는 관계형 데이터베이스를 단순화하면서도 확장시켜 줍니다. 이 기능에 대해서는 뒤에서 자세히 다룹니다dwsql01 
Analysis Services의 데이터 정의 언어는 XML입니다. Analysis Services 메타데이터 리포지토리가 없어지고 Analysis Services 서버에서 저장 및 관리하는 XML 파일로 대체되었습니다.dwsql01dwsql01
웹 서비스: XML for Analysis (XML/A)는 Analysis Services서버와의 통신에 사용되는 표준 기반 원시 프로토콜입니다. 새로운 유형의 응용 프로그램이 사용 가능하며 작업에 분석을 실시간 통합하는 응용 프로그램을 손쉽게 개발할 수 있습니다.
  • XML/A를 원시 프로토콜로 사용하여 풋프린트를 차지하지 않도록 Analysis Services 클라이언트를 구성할 수 있으며 개별 서버는 자동으로 웹 서비스가 됩니다.
  • OLE DB에서 OLAP, ADOMD, ADOMD.Net에 Analysis Services 2000을 사용하는 도구와의 호환성을 위해 풋프린트가 작은 Win32 계층을 사용할 수 있습니다. 많은 고객과 개발자들은 Analysis Services에서 계속해서 ADOMD.Net 개체 모델을 사용하여 사용자 지정 응용 프로그램을 만들 것입니다.
dwsql01dwsql01
계산이 서버로 집중되었습니다. Analysis Services "Yukon"은 Analysis Services 2000과 달리 모든 계산을 서버에서 실행하는데, 그 이점은 다음과 같이 상당합니다.
  • 클라이언트의 풋프린트가 없어지므로 클라이언트 측 캐시가 없어집니다.
  • 복잡한 계산의 쿼리 성능이 크게 향상됩니다.

Analysis Services 2000에서는 클라이언트 캐시에서 해결했던 가장 간단한 쿼리의 성능이 조금 떨어지는 정도의 손실만으로 이러한 커다란 향상을 얻을 수 있었습니다.

dwsql01dwsql01
개발 및 관리 도구 (BI Developer "Workbench" 및 SQL "Workbench")는 최초의 완벽한 비즈니스 인텔리전스 응용 프로그램 개발 환경입니다. 이 새 도구는 모든 데이터를 캡처링 및 모델링하는데 도움이 되며 응용 프로그램을 신속히 개발할 수 있도록 만들어 줍니다.dwsql01dwsql01
Analysis Services "Yukon"은 사용 권한 모델이 향상되었습니다. 달라진 역할 및 사용 권한은 다음과 같습니다.
  • 서버 관리자
  • 데이터베이스 관리자
  • 프로세스 개체
  • 개체 구조 보기 (개체에 의한 사용 권한 허가)
  • 개체 구조 변경
 dwsql01
Analysis Services "Yukon"에는 보안,디자인이 150개 이상 변경되었습니다. 다음은 보안 모델에서 향상된 사항입니다.
  • Analysis Services는 다수의 방어선을 갖춘 "기본 보안"입니다.
  • 관리 권한이 미세하게 나누어져 있어 서로 다른 데이터베이스 개체에 대한 사용 권한을 분리할 수 있으며 디자인 변경과 처리에 대한 사용 권한도 분리할 수 있습니다.
  • 로컬 큐브를 암호화할 수 있습니다.
  • Analysis Services는 가능한 최소한의 사용 권한으로 실행됩니다.
  • 클라이언트/서버 통신을 암호화하고 서명하여 패킷 스니핑(sniffing), 스푸핑(spoofing), 변조, 거부에 대해 보호할 수 있습니다.
  • 서버에서 암호화를 실행할 수 있으며 서버가 암호화를 사용하지 않는 클라이언트를 거부할 수 있습니다.
 dwsql01
Analysis Services "Yukon" 서버는 SQL Server 관계형 데이터베이스에서 오래 전부터 사용할 수 있었던 SQL Server Profile과 같은 도구를 사용하여 모니터링할 수 있는 서버 추적 이벤트를 생성합니다.
  • 응용 프로그램 액세스 및 사용 감사
  • 응용 프로그램 및 서버 이벤트 감사로 서버 관리 효율 향상
  • 응용 프로그램 오류 감사 및 Microsoft Support를 활용하여 보다 쉽게 문제 해결
 dwsql01
계산 성능 향상은 다음 몇몇 기능을 통해 이루어집니다.
  • 사용자 간 서버 계산 캐시 공유
  • 쿼리 최적화 프로그램이 향상된 성능을 가진 동일한 구문에 대해 쿼리를 "재작성함"
  • NonEmpty 성능 향상
  • 고유한 카운트 측정값 향상
 dwsql01
Analysis Services "Yukon"은 중간 계층 아키텍처를 폭넓게 지원합니다. 개체 모델 풋프린트가 작아서 확장성 있는 중간 계층을 제공합니다(수 천명의 동시 사용자에 대해 확장 가능함). 그리고 WAN을 통한 배포 성능이 SQL Server 2000에 비해 향상되었습니다. dwsql01
Analysis Services "Yukon"은 무제한의 차원 크기를 지원합니다. 따라서 차원을 더 이상 메모리에 캐시할 필요가 없습니다dwsql01dwsql01
Analysis Services "Yukon"은 표준 관리 도구 집합 내의 파티션 병렬 처리를 지원합니다. dwsql01
SQL "Workbench"가 모든 SQL Server 데이터베이스 관리에 사용됩니다. Analysis Services를 사용해 관계형 데이터베이스에 대한 통합 관리 기능을 제공하며 다음 도구가 통합되었습니다.
  • 서버 콘솔 관리 (엔터프라이즈 관리자 및 분석 관리자 교체)
  • 쿼리 분석 (SQL 및 MDX)
  • 관계형 엔진 및 Analysis Services에서 이벤트 프로파일링
  • "비행 레코더(Flight Recorder)" 및 "캡처 및 재생(Capture and Replay)" 기능이 서버 이벤트를 자동으로 캡처하므로 문제점 진단에 크게 도움이 됨
 dwsql01
새 개체 모델 분석 관리 개체(AMO)가 DSO를 대체합니다. 이전 버전과의 호환성을 위해 DSO가 제공되긴 하지만 AMO는 관리 및 개발 도구에서 개체의 생성 또는 수정을 스크립팅하는 기능을 비롯해 중요한 새 기능들을 제공합니다. dwsql01dwsql01

분석 데이터베이스를 만드는 방법은 크게 다음 두 가지입니다.

  • 전체적인 사용자 지정: 원본(일반적으로 관계형 원본)을 기준으로 하여 차원, 큐브, KPI, 계산 및 데이터 마이닝 모델을 정의합니다. 이 방법은 기존 데이터 웨어하우스를 보유하고 있는 사용자나 재료 시장에 적합합니다. 큐브 마법사의 첫 번째 화면에서 "기존 DB/데이터 웨어하우스 사용(Use existing DB/Data Warehouse)"을 선택하면 됩니다.
  • 사용자 지정 가능한 템플릿: 템플릿을 기준으로 하여 관계형 데이터베이스, DTS 패키지, Analysis Services OLAP 데이터베이스를 포함한 모든 응용 프로그램을 정의 및 생성합니다. 이 구성 요소들은 결합하여 완벽한 하나의 응용 프로그램으로 작동되도록 설계 및 생성되었습니다. 템플릿에서 완벽한 비즈니스 인텔리전스 솔루션을 설치하려는 사용자에게는 이 방법이 적합합니다. 큐브 마법사의 첫 번째 화면에서 "데이터 원본 없이 BI 모델 디자인(Design BI model without data source)"을 선택하면 됩니다. 베타 1에서는 두개의 템플릿 Budget과 Sales and Inventory를 사용할 수 있습니다.

어떤 방법을 사용하건 기본 시스템 디자인은 차원 관계형 데이터 웨어하우스에 자료를 제공하는 하나 이상의 원본 시스템으로 된 익숙한 비즈니스 인텔리전스 구조를 취합니다. 그리고 이 데이터 웨어하우스는 다시 Analysis Services데이터베이스를 채우는데 사용됩니다. 하지만 SQL Server "Yukon"은 다양한 구성 요소를 제거하거나 가상화하여 이 일반적인 디자인에서 벗어나는 옵션을 많이 제공합니다. 일부 대체 시스템에 대해서는 통합 차원 모델에 대한 아래 단락에서 설명하겠습니다.

기존 원본에서 사용자 지정 데이터베이스 생성

Analysis Services 데이터베이스를 만드는 첫 번째 방법은 SQL Server 2000 사용자들에게 대단히 친숙한 방법으로서 모든 구조의 원본 데이터베이스에서 시작합니다.

  • 팩트 및 차원 테이블로 이루어진 차원 데이터베이스 구조
  • 정규화된 트랜잭션 시스템을 포함한 기타 데이터베이스 구조 systems.

정규화된 데이터베이스를 원본으로 할 수 있는 기능은 별모양, 눈송이 또는 평면화와 같은 차원 구조를 필요로 하는 Analysis Services 2000에서 상당히 발전한 기능입니다. 이 기능을 이용하면 대기 시간이 아주 짧은 BI 응용 프로그램을 손쉽게 개발할 수 있습니다.

트랜잭션 데이터베이스에서 직접 Analysis Services 데이터베이스를 구성하면 먼저 형식 데이터 웨어하우스를 만들 필요가 없으므로 많은 사용자의 요구 사항을 가장 간단하면서도 비용 효과적으로 충족시킬 수 있습니다. 최소한의 변환, 정리 및 통합만으로 데이터를 사용할 수 있도록 만들어야 한다면 Analysis Services 데이터베이스를 사용하여 기존의 관계형 보고를 보조 또는 교체하는 방법을 고려해 보십시오. 그렇게 한다면 Analysis Services의 강력한 기능과 대화형 작업을 제공할 수 있을 뿐 아니라 트랜잭션 시스템에 대한 로드도 더 잘 관리할 수 있을 것입니다.

트랜잭션 시스템에서 직접 Analysis Services 데이터베이스를 만들고 유지 관리하는 것이 가능하긴 하지만 관계형 데이터 웨어하우스를 먼저 만들면 많은 엔터프라이즈 분석 요건을 가장 잘 충족시킬 수 있습니다. 복잡한 데이터 통합 및 데이터 변경 관리 문제는 기존의 데이터 웨어하우스 아키텍처를 통해 가장 잘 해결할 수 있으며, Analysis Services 데이터베이스는 쿼리 및 분석 엔진 역할을 합니다.

데이터 원본 및 데이터 원본 뷰

Services 프로젝트를 만드는 것입니다. 일단 빈 프로젝트가 만들어지면 데이터 원본을 만들어 원본 데이터베이스에 연결해야 합니다. 원본 데이터베이스는 지원되는 관계형 데이터베이스 관리 시스템에 있습니다. 베타 1의 경우에는 SQL Server 2000 또는 SQL Server "Yukon" 관계형 데이터베이스를 원본으로 해서 시작하는 것이 좋습니다.

데이터 원본은 그 원본 데이터 연결에 필요한 정보를 저장합니다. 데이터 원본 뷰에는 원본 데이터베이스의 테이블 관련 하위 집합에 대한 정보가 들어 있습니다. 이 정보는 원본 데이터베이스 테이블의 실제 구조로 제한되지 않으며 관계, 테이블 및 열 이름, 계산된 열, 명명된 쿼리 등의 정보를 추가할 수 있습니다.

데이터 원본 뷰는 BI 프로젝트와 DTS 프로젝트가 공유할 수 있습니다. 데이터 원본 뷰는 언제나 유용하게 사용할 수 있지만 다음 경우에 특히 유용합니다.

  • 원본 데이터베이스의 테이블이 수천 개에 달하는데 단일 BI 응용 프로그램에 유용한 테이블은 그 중 일부에 불과한 경우
  • Analysis Services 데이터베이스가 다수의 데이터베이스, 서버, 플랫 파일 또는 RDBMS와 같은 여러 원본에서 제공되는 데이터를 사용하는 경우
  • BI 시스템 개발자가 원본 데이터베이스에 대한 시스템 관리 권한이 없으며 물리적 뷰 생성 또는 원본 데이터베이스 수정이 허용되지 않는 경우
  • BI 시스템 개발자가 원본 데이터베이스에서 연결 해제되어 "오프라인" 모드에서 작업을 해야 하는 경우. 디자인 및 개발 작업은 해당 원본 데이터베이스에서 분리된 데이터 원본 뷰를 기초로 이루어집니다.

데이터 원본 뷰에 이름과 관계를 설정하는 데 들인 노력은 분석 응용 프로그램을 손쉽게 개발할 수 있게 되면 충분히 보상 받을 수 있습니다.

차원 및 큐브 생성

데이터 원본 뷰를 만든 후 솔루션 탐색기 창의 "큐브" 아이콘을 마우스 오른쪽 단추로 누르고 "새 큐브"를 선택하면 큐브를 만들 수 있습니다. IntelliCube 감지 및 추천을 사용할 수 있도록 하는 옵션이 제공됩니다. IntelliCube 사용을 선택한 경우에는 큐브를 피벗용으로 최적화되도록 구성할지 아니면 보고용으로 최적화되도록 구성할지를 선택해야 합니다. IntelliCube 기술은 데이터 원본 뷰의 데이터베이스 및 데이터 카디널리티 관계를 검사하여 팩트 테이블, 차원 테이블 또는 다대다 관계를 해결하는 차원 대 팩트 브리지 테이블로 테이블 특성을 결정합니다. 베타 1에서는 피벗용을 선택하건 보고용을 선택하건 별로 다르지 않으며, IntelliCube가 한 차원의 특성 간에 계층 관계를 만든다는 것만이 유일한 차이점입니다. 계층은 만들고 제거하기가 아주 쉬우므로 심각하게 고려할 필요 없이 선택해도 무방합니다.

큐브 마법사의 이 첫 화면 다음에 바로 "마침" 단추를 누르는 것이 좋습니다. Analysis Services 데이터베이스, 차원, 계층, 특성 및 큐브가 모두 정의되어 있습니다. 이 디자인을 편집할 수 있지만 마법사의 모든 단계를 조금 천천히 진행하면서 매 단계마다 현명한 선택을 하는 것이 보다 효과적입니다.

얼마간 큐브 마법사를 시험해 보면 차원 마법사(솔루션 탐색기 창의 "차원"을 마우스 오른 쪽 단추로 누르면 시작됨)를 사용하여 복잡한 차원을 한 번에 하나씩 만드는 쪽을 더 좋아하게 될 것입니다. 즉, Product, Customer, Time과 같은 큰 차원을 미리 신중히 정의한 다음 큐브 마법사를 시작하여 미리 정의된 차원을 적절히 포함시키면 됩니다.

구성 및 배포

지금까지의 단계는 개발 컴퓨터에 단순히 차원과 큐브 정의 및 구조를 XML 파일로 만드는 것이었습니다. BI "Workbench"와 구성 관리자를 사용하면 프로젝트를 만들어 대상 서버에 배포하는 과정을 관리할 수 있습니다. 기본적으로 "개발" 대상 서버는 로컬 서버로 지정되어 있습니다. 다른 환경에 배포할 대체 구성을 만들 수 있으며, 대상 서버 이름 및 데이터 원본 연결 문자열과 같은 프로젝트의 핵심 속성은 구성마다 다를 수 있습니다.

개발 주기 중 큐브와 차원을 미리 리포트 테스트하려면 주 BI "Workbench" 메뉴에서 배포를 선택하여 지정된 대상 서버에 프로젝트를 만들어 배포합니다. 아니면 F5 키를 누르거나 디버그를 선택하고…주 BI "Workbench" 메뉴에서 시작합니다. 배포 선택 시 하고 있는 작업에 따라 몇몇 디버깅 및 검색 도구 중 하나가 시작됩니다. 이 컨텍스트에 따라 배포 프로세스가 큐브 브라우저, MDX 스크립트 디버거 또는 KPI 브라우저 중 하나를 시작합니다.

차원, 측정값 및 큐브를 정의한 후에는 프로로타입 시스템을 보고 싶을 것입니다. 상대적으로 데이터가 소량인 개발 데이터베이스를 처리하고 데이터를 확인하면 구조가 예상대로 작동합니다.

프로토타입의 일부로서 Analysis Services 데이터베이스, 주요 성능 표시기, 동작, 계산 등 조금 더 복잡한 Analysis Services 데이터베이스 구성 요소를 설계하고 싶을 수도 있습니다. 데이터에 대한 여러 다른 보기에 관심이 있는 서로 다른 사용자 커뮤니티가 데이터베이스를 사용하게 될 경우에는 전망 및 대체 보안 계획을 살펴봅니다. 서로 다른 언어를 사용하는 사용자에게 데이터베이스를 국제적으로 배포할 계획이라면 번역 기능을 사용하여 지역화된 개체 이름을 표시할 수 있습니다. 마지막으로, 프로토타입은 파티션 및 서로 다른 능동적 캐싱 옵션 등과 같은 대체 물리적 구성을 평가해야 합니다.

Analysis Service 데이터베이스 개발이 완료되면 이 데이터베이스 개체는 최종 테스트, 준비 또는 프로덕션 서버로 배포됩니다. 만들기 단계에서 생성된 프로젝트 출력은 Analysis Services 배포 유틸리티에 입력으로 사용될 수 있습니다. 이 유틸리티는 데이터베이스 배포 및 처리를 돕습니다.

템플릿을 사용해 사용자 지정 가능한 데이터베이스 만들기

지금까지 알려진 원본에서 사용자 지정 Analysis Services 데이터베이스를 만드는 기본 단계를 설명했습니다. 큐브 마법사에서 차원 마법사까지의 이 과정은 Analysis Services 2000 데이터베이스를 만드는 표준 방법과 유사합니다.

"Yukon" 분석 응용 프로그램을 만드는 다른 방법으로는 큐브 마법사의 두 번째 화면에서 "데이터 원본 없는 BI 모델 디자인(Design BI model without data source)"을 선택하는 방법이 있습니다. 이 방법은 SQL Server 2000 Accelerator for Business Intelligence의 디자인 방법과 유사하며, 템플릿을 사용해 풍부한 차원 구조와 분석 기능을 갖추고 있고 관계형 데이터 웨어하우스와 DTS 패키지 포함 옵션이 있는 사용자 지정 가능한 완벽한 응용 프로그램을 생성합니다. 템플릿은 Microsoft, 통합자 또는 ISV에게서 제공받을 수 있습니다.

마법사를 사용한 두 방법(원본 데이터베이스에서 만들기와 템플릿에서 만들기) 중 한 방법을 사용하거나 동일한 Analysis Services 데이터베이스를 디자인할 수 있습니다. 첫 번째 옵션은 완벽한 사용자 지정 시스템을 만든다는 전제를 기초로 합니다. 개체 이름과 구조는 완벽하게 사용자 지정 가능하며, 초기 디자인은 원본 데이터베이스에 있는 이름과 구조에서 가져옵니다. 템플릿 옵션 또한 사용자 지정 가능한 데이터베이스를 만들지만 초기 디자인은 전문가 대상 영역의 템플릿에서 가져옵니다.

많은 사용자가 이 두 방법을 겸비할 것으로 보이며, 가장 일반적인 시나리오는 Analysis Services 데이터베이스의 대부분은 기존 원본에서 만들되 시간 차원은 템플릿에서 만드는 것이 될 것입니다.

통합 차원 모델

Analysis Services "Yukon"은 관계형 OLAP 데이터베이스와 다차원 OLAP 데이터베이스의 경계를 없애줍니다. OLAP 데이터베이스는 주로 다음과 같은 점에서 분석 응용 프로그램에 상당한 이점을 제공해 왔습니다.

  • 최상의 쿼리 성능
  • 풍부한 분석 기능
  • 사용 편의성

지금까지 이러한 기능을 얻기 위해 상당한 대가를 치루어야 했습니다. 그런데 Analysis Services 2000을 포함한 OLAP 데이터베이스는 다음 자료는 전달하기 힘들다는 것을 알게 되었습니다.

  • 다대다 관계를 포함한 복잡한 스키마
  • 다양한 특성에 대한 자세한 보고
  • 대기 시간이 짧은 데이터

Analysis Services "Yukon"은 기존 OLAP 분석과 관계형 보고의 장점을 결합하여 양측의 필요성을 모두 충족시키는 단일의 통합 차원 모델을 제공합니다. SQL Server "Yukon"에 정의된 일련의 큐브와 차원을 통합 차원 모델(UDM)이라고 합니다. UDM의 장점과 융통성 덕분에 디자인이 크게 향상되었습니다. 과거에는 BI 개발자가 대체 인프라의 장점과 비용을 고려하여 관계형 또는 OLAP 중 하나를 선택해야 했습니다. 하지만 지금은 통합 차원 모델을 디자인한 다음 기존의 두 방식 중 어느 쪽에 Analysis Services 시스템의 논리적 디자인과 물리적 구성을 배치할지를 결정하면 됩니다.

특성 기반 차원

Analysis Services "Yukon"은 차원 계층이 아니라 차원 특성을 중심으로 큐브를 배치합니다. Analysis Services 2000에서는 {Year, Month, Day} 또는 {Country, Region, City}와 같은 계층이 차원 디자인을 지배하며, 구성원 특성과 가상 차원으로 표시된 특성은 2차적인 구성 요소였습니다. 특성을 실제 차원으로 만드는 것은 가능했지만 성능 문제 때문에 이 기술을 널리 사용할 수 없었습니다. 그래서 관계형 구조에 익숙한 사용자들은 OLAP 데이터베이스 계층에 초점을 맞추자 혼란을 느꼈습니다.

Analysis Services "Yukon" 구조는 관계형 차원 구조와 좀 더 비슷합니다. 차원에는 많은 특성이 들어 있으며 그 각각은 쿼리 이동 및 필터링에 사용할 수 있고 데이터 관계에 상관 없이 계층으로 통합할 수 있습니다.

OLAP을 사용했던 사용자는 강력한 계층 구조의 유용성을 잘 알고 있습니다. 이 구조에서는 도시가 모여서 지역을, 그리고 지역이 모여서 국가를 형성한다는 것을 확신할 수 있습니다. 이러한 자연 계층은 여전히 존재하며 적절한 경우 정의해야 합니다. 이러한 계층을 이용하면 쿼리 성능이 높아집니다.

Customer 차원을 예를 들어 봅시다. 관계형 원본 테이블에는 다음 8개 열이 있습니다.

  • CustomerKey
  • CustomerName
  • Age
  • Gender
  • Email
  • City
  • Region
  • Country

해당 Analysis Services 차원에는 다음 7개 특성이 있습니다.

  • Customer (정수 키, CustomerName 이름)
  • Age, Gender, Email, City, Region, Country

이 데이터의 {Country, Region, City, Customer}에는 자연스러운 계층이 있습니다. 응용 프로그램 개발자는 검색을 위해 {Age, Gender}에 두 번째 계층을 만들 수도 있습니다. 비즈니스 사용자는 이 두 계층의 동작에서 아무런 차이를 느끼지 못합니다. 하지만 자연 계층은 그 계층 관계를 이해하는 인덱싱 구조(사용자는 알 수 없음)의 이점을 얻게 됩니다.

이 새로운 차원 구조의 가장 큰 장점은 다음과 같습니다.

  • 차원은 메모리로 로드할 필요가 없습니다. 따라서 차원은 크기가 아주 클 수 있습니다 (베타 1에서는 수십억 구성원을 테스트했습니다).
  • 특성 계층은 차원을 재처리하지 않고 추가 및 제거할 수 있습니다. 특성 계층 인덱스 구조는 가벼우며 백그라운드에서 실행되지만 큐브를 여전히 쿼리에 이용할 수 있습니다.
  • 차원 정보 복제가 제거되므로 차원이 작아집니다.
  • 엔진이 병렬 처리 기회를 개발하므로 차원 처리 성능이 향상됩니다.

차원 유형

Analysis Services 2000에는 부모-자식 차원과 일반 계층 차원의 두 가지 차원 유형이 있습니다. Analysis Services "Yukon"에는 중요한 새 차원 구조가 추가되었습니다. 이 구조 중 일부는 이름이 특이하지만 BI 자료에서는 일반적인 이름입니다.

  • 역할 수행: 이 차원은 상황에 따라 몇 가지 역할을 합니다. 예를 들면 [Time] 차원은 [Order Date]와 [Ship Date]에 재사용됩니다. "Yukon"에서는 역할 수행 차원은 한 번 저장되면 여러 번 사용됩니다. 따라서 디스크 공간과 처리 시간이 최소화됩니다.
  • 팩트: 팩트 또는 "퇴보(degenerate)" 차원은 트랜잭션 번호와 같은 팩트와 일대일 관계를 갖습니다. 이 차원은 그 자체로는 분석에 사용되지 않고 특정 트랜잭션을 찾는다거나 집계 셀을 구성하는 트랜잭션을 확인하는 등의 확인에 사용됩니다.
  • 참조: 이 차원은 팩트 테이블과 직접적인 관계는 없으며 다른 차원을 통해 간접적으로 연결되어 있습니다. [Customer] 차원 및 [Sales Force] 차원과 모두 관련이 있는 [Geography] 참조 차원이 그 예입니다. 참조 차원은 데이터 공급자에게서 제공되며 팩트 데이터를 수정하지 않고 큐브에 포함될 수 있습니다.
  • 데이터 마이닝: 데이터 마이닝 차원은 클러스터, 결정 트리, 연결 규칙을 포함해 데이터 마이닝 모델에서 나온 차원을 지원합니다.
  • 다대다: 이 차원은 다중값 차원이라고도 합니다. 대부분의 차원의 경우 팩트는 단 하나의 차원 구성원에만 결합합니다. 다대다 차원은 다차원 구성원 문제를 해결합니다. 예를 들어, 한 은행 고객이 다수의 계정(당좌 계정과 보통 예금 계정)을 가지고 있으며 한 계정에는 다수의 고객(Mary Smith, John Smith)이 있다고 합시다. [Customer] 차원에는 한 계정 트랜잭션과 관련된 다수의 구성원이 있습니다. "Yukon"의 다대다 차원은 차원이 팩트 테이블과 직접적인 관계가 없으며 차원 모델을 기존의 별모양 스키마 이상으로 확장할 경우 복잡한 분석을 지원합니다.

측정값 그룹과 전망

Analysis Services "Yukon"에는 분석 데이터베이스 디자인과 배포를 단순화하는 측정값 그룹(Measure Groups)과 전망(Perspectives)이 추가되었습니다. Analysis Services 2000에서는 사용자들이 여러 개의 물리적 큐브를 만들도록 되어 있었습니다. 각 큐브는 특정 차원에 대응하며, 일반적으로 특정 관계형 팩트 테이블에도 대응하였습니다. 가상 큐브는 비즈니스 사용자의 작업에 아무런 영향을 미치지 않고 다수의 팩트 테이블을 통합하였지만 개발자가 정의하기에는 너무 복잡했습니다.

하지만 "Yukon"에서는 하나 이상의 측정값 그룹이 들어가는 단일의 물리적 큐브가 가장 일반적입니다. 측정값 그룹의 팩트 데이터에는 차원 계층의 교차 부분에 의해 결정되는 고유한 조직이 있습니다. 쿼리는 자동으로 적절한 다른 측정값 그룹에 전달됩니다. 물리적 수준에서는 파티션(Analysis Services 2000 파티션과 비슷함)이 측정값 그룹에 정의됩니다.

큰 응용 프로그램은 사용자에게 다수의 차원과 측정값 그룹, 측정값을 제공할 수 있으며 검색을 요구할 수도 있습니다. 큐브 편집기의 전망 탭에 정의된 전망은 큐브의 하위 집합 "보기"를 만듭니다. 사용자 개인화된 설정을 할 수 있도록 보안 역할을 그 역할에 적합한 전망 집합과 연결할 수 있습니다.

대부분의 Analysis Services "Yukon" 데이터베이스에는 하나의 큐브에 다수의 측정값 그룹과 전망이 들어갈 것으로 예상됩니다.

다음은 큐브 팩트 구조와 쿼리 성능에서 향상된 다른 중요한 기능입니다.

  • 측정값에 Null을 사용할 수 있습니다. SQL SERVER 2000에서는 "null" 측정값은 0으로 처리되었습니다.
  • 큐브를 적절히 분할하여 고유한 카운트 측정값의 쿼리 성능이 몇 배로 향상되었습니다.
  • 확장 가능한 카트리지 인프라 덕분에 대체 데이터베이스 관리 시스템을 액세스할 수 있습니다. RDBMS 카트리지는 관계형 쿼리 및 쓰기에 SQL 문을 최적화하는 방법을 지정합니다. 추가 관계형 시스템의 카트리지를 손쉽게 추가할 수 있으며 카트리지는 XSL 파일로 실행됩니다.

계산 및 분석

Analysis Services와 같은 분석 서버를 사용해야 하는 가장 큰 이유 중 하나는 복잡한 계산을 중심으로 정의할 수 있는 기능이 있다는 것입니다. Analysis Services는 항상 풍부한 분석을 제공해 왔지만 복잡한 일부 개념은 실행하기가 어려웠습니다.

그러한 개념 중 하나가 부분 부가 측정값 개념입니다. [Sales]와 같은 가장 일반적인 측정값은 모든 차원에 대해 집계하며, 모든 시간에 대한 [Total Sales]는 모든 제품, 모든 고객 및 모든 시간에 대한 판매를 나타냅니다. 이에 비해 부분 부가 측정값은 모든 차원이 아니라 일부 차원에만 부가됩니다. 가장 일반적인 시나리오가 창고에 있는 항목의 수와 같은 잔여분입니다. 어제와 오늘의 종합 잔여분은 어제의 잔여분에 오늘의 잔여분을 합한 양이 아니라, 마지막 잔여분인 경우가 대부분입니다(어떤 시나리오에서는 이것이 시작 잔여분이 될 수도 있습니다). Analysis Services 2000에서는 정확한 측정값을 전달하려면 복잡한 MDX 계산을 정의해야 했습니다. 하지만 Analysis Services "Yukon"에서는 시작 잔여분과 마지막 잔여분이 기본 집계 유형으로 제공됩니다.

"Yukon"에는 고유한 카운트 측정값 또한 크게 향상되었습니다. 이제는 고유한 카운트 측정값을 문자열 데이터에 정의할 수 있으며 임의 집합에 Distinct Count를 실행할 쿼리도 정의할 수 있습니다. Analysis Services 2000은 사전 정의된 계층 구조에서만 고유 카운트를 실행할 수 있습니다.

"시간 인텔리전스" 마법사는 이 기간 대 마지막 기간에 대한 계산, 이동 평균 및 기타 일반적인 시간 계산 구조가 포함된 시간 계산 차원을 만듭니다.

MDX 스크립트

MultiDimensional 식(MDX)은 Analysis Services 2000 계산 및 보안 규칙을 정의하는 데 사용되었던 아주 강력한 언어입니다. 하지만 MDX는 그만큼 복잡하기도 합니다. Analysis Services "Yukon"은 단순화된 구성과 구문을 사용하는 MDX 스크립트를 이용해 새 계산 모델을 정의합니다.

MDX는 Analysis Services 시스템의 쿼리 언어이기도 합니다. Excel Pivot tables와 같은 쿼리 도구는 사용자의 "끌어서 놓기" 동작을 기초로 MDX 쿼리를 생성합니다. MDX 사용은 MDX 스크립트와는 관계가 없습니다. MDX 스크립트는 사용자 쿼리가 아니라 계산된 구성원 및 셀 계산 등과 같은 서버 정의 개체에 사용됩니다.

Analysis Services "Yukon" 큐브가 정의될 경우 이 큐브는 데이터 없이 구조만으로 구성되며, MDX 스크립트는 이 큐브 구조의 일부입니다. 기본 집계를 계산하기 위해 기본 MDX 스크립트 명령 하나가 항상 정의되며, 이 기본 MDX 스크립트 명령은 다음과 같은 단일 문으로 구성됩니다.

Calculate;

큐브 처리는 완료되었지만 기본 MDX 스크립트는 아직 적용되지 않은 경우 이 큐브에는 잎 수준 데이터는 들어 있지만 집계는 없습니다. 단일 문 기본 MDX 스크립트가 적용된 후에야 집계가 계산 및 저장됩니다.

MDX 스크립트 문에는 다음 명령이 세미 콜론으로 분리되어 들어 있습니다.

  • 설명 범위를 제한하는 범위 문
  • 수식 및 값 할당
  • 계산된 구성원 정의
  • 명명된 집합 정의

BI Developer "Workbench"의 큐브 디자인 사용자 인터페이스에서 MDX 스크립트(계산된 구성원 및 명명된 집합 포함)가 계산(Calculations) 보기에 구성되어 있습니다. MDX 스크립트는 구문에 대한 안내를 제공하는 기본 계산 폼(Calculations Form) 보기나 MDX 스크립트를 세미 콜론으로 끝내는 일련의 명령으로 표시하는 계산 스크립트(Calculations Script) 보기에서 볼 수 있습니다. 폼 보기를 표시하려면 전체 스크립트에 정확한 구문을 입력해야 하긴 하지만 이 보기들을 앞뒤로 전환할 수는 있습니다.

MDX 스크립트에는 몇 가지 주요 특징이 있습니다.

  • 스크립트는 절차 모델을 따르므로 구문이 순서대로 적용됩니다. 따라서 MDX 스크립트 개발자는 이제 더 이상 전달 순서에 대해 걱정할 필요가 없으며 무제한 반복을 유발하는 스크립트를 작성할 위험이 완전히 사라졌습니다.
  • 계산 범위를 정할 수 있습니다. SCOPE 문을 사용하면 큐브의 특정 영역에 대해 하나 이상의 계산을 정의할 수 있습니다. 예를 들면 다음과 같습니다.
  • SCOPE ([Customers].[Country].[Country].[USA]);
       [Measures].[Sales] = 100;
    END SCOPE;
    
  • 범위가 중첩될 수 있습니다
  • 계산을 캐시할 수 있습니다. CACHE 키워드는 스크립트 계산 결과를 실시간으로 산출하는 것이 아니라 디스크에 저장해야 한다고 표시합니다. 캐시된 계산은 복잡한 계산이 다수 포함되어 있는 큰 큐브에 대해 아주 우수한 성능의 쿼리가 가능하도록 만들어 줍니다. 캐시된 계산에 대한 입력이 변경되면 그 계산은 삭제되고 다시 만들어집니다.
  • MDX 스크립트를 디버깅할 수 있습니다. 각 단계마다 큐브 결과를 검색하면서 MDX 스크립트를 한 줄씩 살펴볼 수 있습니다.

저장 프로시저

Analysis Services "Yukon"은 저장 프로시저를 사용하여 사용자 정의 함수(UDF)가 제공하는 기능을 확장합니다. 저장 프로시저는 C++, VB 또는 C와 같은 공용 언어 런타임 프로그래밍 언어로 작성할 수 있습니다. 저장 프로시저는 공용 코드를 한 번 작성해서 한 곳에 저장해 두면 다른 저장 프로시저나 계산 및 사용자 쿼리에 다시 사용할 수 있도록 하여 데이터베이스 개발 및 구현을 단순화해 줍니다.

저장 프로시저는 다음 두 가지 유형이 있습니다.

  • MDX 함수 저장 프로시저는 다른 MDX 함수와 같으며 MDX 언어를 손쉽게 확장할 수 있는 메커니즘을 제공합니다.
  • 사용자 정의 저장 프로시저는 큐브 프로세싱 또는 큐브 일부의 셀 업데이팅 등과 같은 구현 고유 작업을 실행합니다.

저장 프로시저는 클라이언트 응용 프로그램이 실행할 수 있는 모든 작업을 실행하는 데 사용할 수 있습니다.

주요 성능 표시기

Analysis Services "Yukon"은 비즈니스를 평가하는 계산의 서버측 정의에 관한 주요 성능 표시기(KPI) 프레임워크를 제공합니다. 이 KPI는 데이터 액세스 API 및 Microsoft와 타사 도구를 통해 보고서, 포털 및 대시보드에 표시됩니다.

해설자와 공급업체마다 이 "KPI" 구를 서로 다른 개념으로 부르고 있습니다. Microsoft SQL Server Analysis Services "Yukon"의 경우에는 KPI를 정확히 다음 네 단계로 정의합니다.

  • 평가할 값: Sales와 같은 실제 측정값, Profit과 같은 계산된 측정값, 또는 KPI 내에 정의된 계산
  • 이 값을 얻기 위한 목표: 그 측정값의 목표를 정의하는 값 (또는 그 값을 확인하는 MDX 식)
  • 상태: 그 값의 현 상태를 평가하는 MDX 식. -1(매우 나쁨)부터 +1(매우 좋음) 범위에서 정상화된 값
  • 경향: 그 값의 현 경향을 평가하는 MDX 식. 목표에 비해 그 값이 더 좋아지고 있는가, 아니면 더 나빠지고 있는가?

웹 페이지에 표시된 몇몇 KPI의 예는 다음과 같습니다.


현재 브라우저에서 인라인 프레임을 지원하지 않을 경우 여기를 누르면 별도의 페이지에서 볼 수 있습니다.

실시간 비즈니스 인텔리전스

데이터 웨어하우스 및 비즈니스 인텔리전스 응용 프로그램은 "오래되었거나" 월별, 주별 또는 일별로 새로 고쳐지는 대기 시간이 긴 데이터를 사용해 왔습니다. 전통 주의자들은 전략적 결정은 매일 업데이트되는 데이터면 충분하다며, 실시간 BI가 모순이라고 주장합니다. 이러한 주장을 하는 이들은, 비즈니스 인텔리전스가 순수한 전략 및 전술적 결정을 내리는 소수의 분석가와 경영진에게만 배포되는 것이 아니라 기업 내 전반에 걸쳐 모든 이들이 사용할 수 있어야 한다는 점을 간과하고 있습니다. 즉, 운영 비즈니스 인텔리전스에는 대기 시간이 짧은 데이터가 필요합니다.

Analysis Services "Yukon"은 운영 비즈니스 인텔리전스에 새 프로세싱 옵션을 제공합니다. Analysis Services 2000에서는 저장 모드나 분할 전략에 관계 없이 큐브가 "끌어오기(Pull)" 모델로 처리되었습니다. 따라서 원본 데이터베이스에서 새 정보를 찾아 그 세부 정보를 처리 및 저장하고 그 집계를 계산하여 저장하는 Analysis Services 프로세스가 시작되었습니다.

Analysis Services "Yukon"에서도 여전히 끌어오기 모델을 지원하지만 대기 시간이 낮은 비즈니스 인텔리전스에 특히 유용한 추가 옵션이 추가되었습니다.

  • DTS 파이프라인 또는 사용자 정의 응용 프로그램에서 데이터 밀어넣기. 이 데이터는 중간 저장소 없이 DTS 패키지 파이프라인에서 직접 Analysis Services 파티션으로 흐를 수 있습니다. 이 시나리오는 분석 데이터의 대기 시간(및 저장 비용)을 줄이는 데 사용될 수 있습니다.
  • 지정된 대기 시간 및 성능 특징을 사용해 캐시를 유지 관리하기 위해 관리자의 작업 없이 큐브를 능동적 캐시로 관리.

Analysis Services 다차원 저장소의 쿼리 성능 특징은 관계형 저장소를 지배합니다. 즉, 쿼리가 다차원(MOLAP) 저장소에서 최적으로 실행되는 것입니다. 이에 대한 단점은, 다차원 저장이 관계형 원본에 대해 다운스트림이므로 대기 시간이 길어진다는 점입니다. 하지만 능동적 캐싱 기술을 사용할 경우 쿼리 성능을 최대화하면서 데이터 대기 시간과 관리 비용은 최소화할 수 있다는 장점이 있습니다.

능동적 캐싱 기능은 데이터 퇴행 관리 프로세스를 단순화합니다. 원본 데이터베이스에 새 차원 구성원이나 새 팩트 트랜잭션 등이 발생하면 기존 "캐시"는 쓸모 없어집니다. 능동적 캐싱은, 다차원 캐시를 얼마나 자주 다시 만들지를 결정하고 캐시를 다시 만드는 동안 쿼리에 어떻게 대답할지를 지정하며 관리자 작업 없이 이 프로세스를 시작하는 조정 메커니즘을 제공합니다.

능동적 캐싱을 사용하면 트랜잭션이 발생할 때 다차원 캐시를 자동으로 새로 고치도록 큐브를 설정할 수 있습니다. Analysis Services는 데이터를 아주 빠르게 처리하지만 처리에는 시간이 좀 걸립니다. 다차원 캐시 재처리가 완전하지 않은 경우, 능동적 캐시 구성이 쿼리를 자동으로 관계형 저장소로 리디렉션할 수 있는 옵션도 있습니다.

능동적 캐싱 구성을 디자인할 때는 개별 다차원 파티션 마다 능동적 캐싱이 설정된다는 사실을 기억하는 것이 중요합니다. 파티션에 한 시간과 같은 짧은 시간 동안 데이터가 들어 있는 경우, 캐시 새로 고침 프로세스가 아주 빨리 발생할 수 있습니다. 가장 복잡한 능동적 캐싱 구성은 관계형 데이터베이스에서 Analysis Services에 업데이트가 발생했음을 알리는 알림에 따라 달라집니다. Microsoft SQL Server 관계형 데이터베이스는 이러한 알림을 지원합니다. 알림을 전달하지 않는 데이터베이스의 경우에는 Analysis Services가 정의된 쿼리를 기초로 변경 사항을 폴링하도록 구성할 수 있습니다.

다음은 능동적 캐시 매개 변수입니다.

  • 침묵 기간: 서버가 새 정보 처리를 시작하기 전 관계형 원본에 트랜잭션이 발생하지 않아야 하는 시간입니다. 이 매개 변수는 일반적으로 10초 미만으로 설정됩니다. 침묵 기간을 기다리면 관계형 원본에 순차 업데이트가 여러 차례 발생하는 경우 반복해서 캐시를 제거하고 다시 만드는 것을 방지할 수 있습니다.
  • 대기 시간: 사용자가 부실 데이터에 얼마나 오랫동안 액세스할 수 있는지를 나타냅니다. 대기 시간이 0으로 설정되면 알림이 수신되는 즉시 사용자 쿼리가 관계형 원본으로 리디렉션됩니다. 그리고 대기 시간이 600초로 설정되면 사용자는 10분 이하의 데이터에 액세스합니다. -1 설정은 능동적 캐시 처리가 완료될 때 까지는 사용자가 계속해서 부실 데이터에 액세스한다는 것을 뜻합니다.
  • 소음 무시 간격: 변경 사항 알림부터 능동적 캐시 처리 시작 전까지의 최대 기간입니다. 원본 데이터베이스가 계속해서 업데이트되면 이 매개 변수는 "침묵 기간" 설정을 무시합니다.
  • 강제 다시 작성 간격: 이 매개 변수는 원본 데이터베이스 시스템이 업데이트 알림을 제공할 수 없는 시스템에서 단순한 능동적 캐싱 기능을 제공하는데 사용됩니다. 원본 데이터가 SQL Server RDBMS에 있으면 이 매개 변수는 0으로 설정되어야 합니다.

데이터 마이닝

개요

Microsoft SQL Server "Yukon" 데이터 마이닝은 복잡한 분석 모델을 작성하고 이러한 모델을 비즈니스 운영에 통합하는 데 도움이 되는 비즈니스 인텔리전스 기술입니다. 데이터 마이닝 모델은 다음과 같은 질문에 해답을 제공할 수 있습니다.

  • 이 고객의 신용 위험은 무엇입니까?
  • 제 고객의 성격은 어떻습니까?
  • 사람들은 어떤 제품을 공동 구매하는 경향이 있습니까?
  • 다음 달의 제품 판매 예상량은 얼마입니까?

데이터 마이닝 응용 프로그램은 데이터 마이닝 모델을 일상적인 업무에 통합합니다. 대부분의 데이터 마이닝 프로젝트의 목표는 비즈니스 사용자, 파트너 및 고객이 이 응용 프로그램의 기초가 되는 복잡한 계산을 전혀 생각하지 않고 매일 사용할 수 있는 분석 응용 프로그램을 만들 수 있도록 하는 것입니다. 이러한 목표를 달성하는 단계는 크게, 데이터 마이닝 모델을 만든 다음 응용 프로그램을 만드는 두 단계로 나눌 수 있습니다. SQL Server "Yukon" 데이터 마이닝은 이러한 두 단계를 아주 쉽게 실행할 수 있도록 만들어 줍니다.

"Yukon"의 데이터 마이닝 기능에 대한 Microsoft의 목표는 다음과 같은 도구를 만드는 것입니다.

  • 사용이 간편하다.
  • 완벽한 기능 제공한다.
  • 프로덕션 응용 프로그램에 손쉽게 포함된다.
  • 다른 SQL Server BI 기술과 긴밀히 통합된다.
  • 데이터 마이닝 응용 프로그램을 위한 시장을 확장한다.

본 백서를 읽는 모든 이들은 분명 데이터 마이닝 응용 프로그램을 "사용"해 본 경험이 있을 것입니다. 책이나 음반을 온라인으로 구매한 적이 있고 "이 제품을 구입한 고객들이 많이 찾는 제품"이라는 추천을 받았거나 신용 카드 회사에서 의심이 가는 거래를 확인해 줄 것을 요청받은 경우, 또는 식료품 가게에서 영수증에 개인별 쿠폰을 인쇄해 준 적이 있다면, 데이터 마이닝 응용 프로그램을 사용하거나 이 응용 프로그램의 도움을 받은 적이 있는 것입니다. 지금까지 이러한 응용 프로그램 개발은, 데이터 마이닝 응용 프로그램을 만드는 데 필요한 진귀한 분석 기술과 높은 개발 비용을 감당할 능력이 되는 대기업에서 처리하는 아주 큰 문제들에만 초점을 맞추어 왔습니다. Microsoft의 OLAP 기술이 OLAP 시장의 성장을 도왔던 것처럼 우리도 과거에는 이러한 응용 프로그램을 개발할 수 없었던 기업과 개별 부서에 데이터 마이닝 기술을 확장하려고 합니다.

SQL Server "Yukon" 데이터 마이닝 도구를 사용하여 일련의 데이터 패턴을 살펴보고 이러한 패턴을 예측해 보십시오. 데이터 마이닝의 모든 과정은 조사, 패턴 확인, 패턴 예측으로 이루어집니다.

데이터 마이닝 알고리즘

Microsoft SQL Server "Yukon" Analysis Services를 포함한 모든 데이터 마이닝 도구는 다수의 알고리즘을 사용합니다. 물론 Analysis Services는 확장성이 있으므로 타사 ISV 또한 Analysis Services 데이터 마이닝 프레임워크에 원활하게 스냅인하는 알고리즘을 개발할 수 있습니다. 데이터와 그 목표에 따라 선호하게 되는 알고리즘이 다르며 한 알고리즘을 여러 가지 문제에 사용할 수 있습니다.

데이터 마이닝 도구는 여러 유형의 문제를 해결하는 데 적합합니다. 비즈니스 문제를 크게 분류해 보면 다음과 같습니다.

분석 문제Microsoft 알고리즘
분류: "양호" 및 "불량"과 같이 미리 정의된 클래스에 사례를 할당
  • 신용 위험 분석
  • 움직임 분석
  • 고객 유지
  • Decision trees
  • Na?e Bayes
  • Neural Nets
세분화(Segmentation): 유사한 사례를 분류하는 분류법 개발
  • 고객 프로필 분석
  • 메일링 캠페인
  • Clustering
  • Sequence Clustering
연관: 상호 관계에 대한 고급 카운팅
  • 장바구니 분석
  • 고급 데이터 조사
  • Decision trees
  • Association Rules
시계열 예측: 미래 예측
  • 판매 예측
  • 주가 예측
  • Time Series
예측: 유사 사례(예: 기존 고객)의 가치를 기초로 새로운 사례(예: 새 고객)의 가치 예측
  • 보험률 예측
  • 고객 수입 예측
  • 온도 예측
  • 전체
편차 분석: 사례 또는 세그먼트가 서로 어떻게 다른지 확인
  • 신용 카드 사기 검색
  • 네트워크 주입 분석
  • 전체

SQL Server "Yukon"에는 가장 널리 사용되는 데이터 마이닝 알고리즘이 함께 제공됩니다.

  • Microsoft Decision trees 에서부터 데이터 조사를 시작하는 경우가 많습니다. 이 알고리즘은 주로 분류 알고리즘으로, 이산 및 연속 특성의 예측 모델링에 적합합니다. 알고리즘이 이러한 모델을 만들므로 이 알고리즘은 데이터 집합의 개별 입력 특성이 예측된 특성의 결과에 어떻게 영향을 미치는지를 살펴봅니다. 즉, 목표는 예측된 특성의 결과를 예측할 수 있도록 만들어 주는 입력 특성과 그 상태의 연결을 찾아내는 것입니다.
  • Microsoft Nadve Bayes는 분류 및 예측에 사용할 수 있는 마이닝 모델을 신속히 만듭니다. 예측 가능한 특성의 개별 상태를 기초로 입력 특성이 가질 수 있는 개별 상태의 가능성을 계산합니다. 이 알고리즘은 이산(비연속적) 특성만 지원하며 모든 입력 특성은 예측 가능한 특성이며 독립적이라고 간주합니다. Nadve Bayes 알고리즘은 계산 속도가 아주 빠르므로 초기 데이터 조사 단계와 분류 및 예측 문제에 많이 선택되는 알고리즘입니다.
  • Microsoft Clustering 은 반복적 테크닉을 사용하여 데이터 집합의 레코드를 유사한 특성을 가진 클러스터로 그룹화합니다. 이 클러스터를 사용하면 데이터를 조사하여 관계를 찾을 수 있으며, 이 클러스터링 모델을 기초로 예측을 할 수도 있습니다.
  • Microsoft Association 은 priori 알고리즘을 기초로 하며 큰 데이터 집합 내에서 N-웨이 상관 관계를 찾는 효과적인 방법을 제공합니다. 연결 알고리즘은 데이터베이스 내에서 이 트랜잭션을 반복하면서 단일 사용자 트랜잭션에서 함께 나타날 가능성이 가장 큰 항목을 찾습니다. 연결된 항목은 함께 itemset로 그룹화되며 예측에 사용할 수 있는 규칙이 생성됩니다. Microsoft Association은 장바구니 분석에 가장 자주 사용됩니다. 다수의 "고유 카운팅"을 실행하는 관계형 또는 OLAP 분석은 연결 분석을 사용하기 가장 좋은 예입니다. Microsoft Association 알고리즘은 어떤 알고리즘 매개 변수를 선택했는지에 아주 민감하므로 작은 문제의 경우에는 Microsoft Decision trees가 장바구니 분석에 사용하기 더 좋은 알고리즘일 수 있습니다..
  • Microsoft Sequence Clustering 은 데이터 조사 및 예측을 위해 순차 분석과 클러스터링을 결합한 것입니다. 순차 클러스터링 모델은 이벤트 발생 순서에 민감합니다. 한편, 클러스터링 알고리즘은 해당 레코드 클러스터링에 있는 다른 특성도 고려하므로 순차 및 비 순차 정보를 서로 연관시키는 모델을 개발할 수 있습니다. Sequence Clustering 알고리즘은 클릭스트림 분석을 실행하여 웹 사이트 트래픽 흐름을 분석하고 어떤 페이지가 특정 제품 판매와 가장 밀접하게 관련되어 있는지를 확인하며 다음에 어떤 페이지를 방문할지를 예측하는 데 사용됩니다.
  • Microsoft Time Series 는 주가와 같은 하나 이상의 연속 변수를 예측하는 데 사용할 수 있는 모델을 만듭니다. Time Series 알고리즘은 그 모델을 만드는 동안 성향 습득 데이터에서 파생된 경향만을 기초로 예측합니다. Microsoft Time Series는 AutoRegression trees 테크닉을 사용하며 사용이 아주 간편하고 정확성 높은 모델을 생성합니다. 시계열에 사용되는 통계 분석에는 완벽한 규칙이 있습니다. 대부분의 다른 데이터 마이닝 제품은 ARMA, ARIMA, Box-Jenkins와 같은 많은 테크닉을 제공하며, 통계학자는 그 중에서 해당 모델에 가장 적합한 테크닉을 결정해야 합니다. Microsoft는 시계열 분석이 폭넓은 대상에게 접근할 수 있으며 정확성 높은 우수한 결과를 제공하도록 만들어 주는 방법을 선택했습니다.
  • Microsoft Neural Net 은 Decision trees 및 Na?ve Bayes와 마찬가지로 주로 데이터 조사, 분류 및 예측에 사용됩니다. Neural Net은 가능한 데이터 관계를 모두 조사하는 인공 지능 테크닉으로, 일종의 정밀 테크닉이므로 세 가지 분류 알고리즘 중 가장 느립니다. Microsoft Neural Net은 베타 1에서는 사용할 수 없습니다.

마이닝 모델 만들기

모델 만들기, 성향 습득 및 테스트 프로세스는 응용 프로그램 만들기에서 가장 어려운 부분입니다. 사실, 응용 프로그램 개발은 단순 프로그래밍입니다. 데이터 마이닝 모델을 만들기 전에, 우선 데이터 웨어하우스에 데이터를 수집하여 정리해야 합니다. SQL Server "Yukon" 데이터 마이닝은 관계형 데이터베이스 또는 Analysis Services 큐브의 데이터에 액세스할 수 있습니다.

데이터 마이닝 모델을 개발하기에 가장 적합한 사람은 비즈니스와 기술, 이렇게 두 가지 모두에 숙련된 기량을 갖추고 있는 사람입니다. 이 모델의 개발자는 통계의 배경 정보로부터 이익을 얻고, 그 기업이 직면한 주요 비즈니스 문제점을 파악할 수 있고, 데이터 및 관계에 대한 깊은 호기심을 가지며, SQL Server "Yukon" 도구를 사용하여 데이터를 조작 및 저장할 수 있게 됩니다. 따라서 기존 데이터 웨어하우스 팀원이 이러한 기준을 가장 잘 충족시키는 사람들이라고 할 수 있겠습니다.

데이터 마이닝의 초보자라면 프로토타입 모델을 만드는 동시에 몇 주 간 데이터, 도구 및 대체 알고리즘에 대해 알아 보는 시간을 갖는 것이 좋습니다. 데이터베이스 관리 권한을 가지고 있는 개발 서버를 이용하십시오. 모델 만들기의 초기 단계는 예비 단계로, 이 단계에서는 데이터 구조를 변경하고 다양한 방법을 시도해 보고 싶을 것입니다. 그리고 먼저 작은 하위 데이터 집합부터 시작한 다음 그 모델의 디자인에 대한 보다 분명한 비전을 개발해 나가면서 데이터 집합을 확장하는 편이 좋습니다. 프로토타입 단계에서는 "제작 준비 완료"된 응용 프로그램 만들기에 대해 걱정하지 마십시오. DTS 또는 필요한 데이터 조작을 가장 편안하게 실행할 수 있는 도구를 사용하십시오. 그리고 필요한 변환에 대해 꼼꼼히 기록하되 지금 하는 모든 작업이 영구 응용 프로그램의 일부가 될 것이라고는 기대하지 마십시오.

비즈니스 문제점에 가장 적합한 모델을 선택하려면 모델 개발을 위한 데이터와 그 모델의 정확성을 테스트하는 데이터를 준비해야 합니다. 데이터 하위 집합을 만드는 방법에 대해 생각할 때는 선입견을 갖지 않도록 주의해야 합니다. 예를 들어 매 10번째 고객을 선택한다거나, 아니면 성의 첫 번째 문자나 다른 임의의 특성을 기초로 구별한다거나 하는 방법을 사용하십시오.

데이터 마이닝 모델 개발은 다음 사항을 선택하는 과정으로 구성됩니다.

  • 입력 데이터 집합
  • 입력 필드
  • 데이터 마이닝 알고리즘
  • 해당 알고리즘 계산 중 사용되는 매개 변수

비즈니스 문제점에 어떤 유형의 알고리즘을 사용해야 할지 모르는 경우에는 Decision trees 또는 Na?ve Bayes를 사용해 데이터를 조사하는 작업부터 시작해야 합니다. 어떤 특성을 포함시켜야 할지 모르겠다면 모두 선택하십시오. 또한 복잡한 모델을 단순화하는 데 도움이 되는 보기를 제공해 주는 의존성 네트워크 보기를 사용하십시오.

프로토타입 개발 단계에서 관계형 모델을 만들어 최상의 알고리즘과 모델을 평가하고 싶을 것입니다. 마이닝 정확성 차트를 사용하면 어떤 모델의 예측이 가장 우수한지 평가할 수 있습니다. 그리고 관계형 모델을 만들어 동일한 데이터에 대해 별도의 분석을 실행하고 싶을 수도 있습니다. 이러한 모델은 개별적으로 정의된 모델보다는 관계형 모델로 보다 신속히 처리됩니다.

프로토타입을 만들어 테스트를 완료한 후에는 실제 데이터 마이닝 모델을 만들고 테스트할 수 있습니다. 데이터 마이닝 엔진에 데이터를 입력하기 전에 변환해야 한다면 그렇게 하는 프로덕션 준비 작업 프로세스를 개발해야 합니다. 어떤 경우에는 DTS 파이프라인에서 직접 마이닝 모델을 채우는 방법을 선택할 수도 있습니다. 작은 데이터 하위 집합에서 프로토타입을 개발한 경우에는 전체 성향 습득 데이터 집합에서 대체 모델을 재평가해야 합니다.

데이터 마이닝 응용 프로그램 만들기

BI "Workbench" 내에서 데이터 마이닝 모델을 개발하고 연구 조사하면 상당한 대가를 얻을 수 있습니다. 이 모델을 살펴 보면 데이터와 비즈니스 사이의 관계를 파악할 수 있으며 그 정보를 사용해 전략적 결정을 내릴 수 있기 때문입니다. 하지만 가장 큰 장점은 일상 업무에 영향을 미치는 데이터 마이닝 응용 프로그램에서 얻을 수 있습니다. 예를 들면, 고객에게 제품을 권장하거나 고객의 신용 위험 점수를 매기거나 재고 부족분 예측량을 기초로 주문을 하는 데이터 마이닝 응용 프로그램이 여기에 해당됩니다. 운영 데이터 마이닝 응용 프로그램을 개발하려면 SQL Server "Workbenches" 밖에서 Microsoft Visual Studio 또는 원하는 개발 환경을 사용하여 일부 코드를 작성해야 합니다.

대부분의 엔터프라이즈 고객은 고객이 사용하는 데이터 마이닝 응용 프로그램을 ASP 페이지와 같은 웹 기반 또는 Win32 응용 프로그램으로 실행합니다. 데이터 마이닝 모델이 만들어지면, 응용 프로그램이 웹 상거래 응용 프로그램에 입력하였거나 선택한 것을 기초로 고객에 대한 예측을 실행합니다. 아주 간단한 응용 프로그램도 가능하며, 예외적인 부분이라면 예측 쿼리를 발행한다는 것 뿐입니다.

데이터 마이닝 응용 프로그램 개발자가 그 마이닝 모델을 개발한 사람과 동일한 사람일 필요는 없습니다. 응용 프로그램 개발자는 주요 개발 기술은 갖추고 있어야 하지만 비즈니스 또는 통계 지식은 상대적으로 거의 필요하지 않습니다.

Microsoft의 데이터 마이닝 기술을 사용하면 다음 두 단계 실행으로 자동화된 데이터 마이닝 응용 프로그램을 아주 쉽게 만들 수 있습니다.

  • 데이터 마이닝 예측 쿼리를 개발합니다. 이 쿼리의 DMX 구문은 데이터 마이닝 사양에 대한 OLE DB에 정의됩니다. DMX를 직접 작성하지 말고 BI "Workbench" 편집기의 왼쪽 막대에 있는 마이닝 모델 예측 아이콘을 누릅니다. 그래픽으로 된 예측 쿼리 작성기 도구를 사용하면 예측 쿼리 개발에 도움이 됩니다.
  • 데이터 마이닝 응용 프로그램에 예측 쿼리를 사용합니다. 응용 프로그램이 단순히 DMX를 사용하여 예측을 실행한다면 프로젝트에 ADO, ADO.Net 또는 ADOMD.Net 클래스 참조(베타 1 이후 개발에는 ADOMD.Net이 권장됨)가 포함되어야 합니다. 보다 복잡한 응용 프로그램(예: 사용자에게 Decision tree Viewer와 같은 마이닝 모델 뷰어 제시)을 만들려면 Microsoft.AnalysisServices와 Microsoft.AnalysisServices.Viewers 클래스를 포함시켜야 합니다.

독립 소프트웨어 공급업체 고객들은 데이터 마이닝 모델을 생성하는 응용 프로그램을 만들고 싶을 것입니다. 이런 응용 프로그램이 아마도 웹 분석과 같은 특정 도메인에 대한 BI "Workbench"의 마이닝 모델 개발을 대체할 것입니다. 그럴 경우 AMO(Analysis Management Objects)에 액세스할 수 있도록 개발 프로젝트에 Microsoft.DataWarehouse.Interfaces를 포함시켜야 합니다.

DMX 예제

DMX라고 하는 SQL과 유사한 단순한 프로그래밍 언어에서는 세 단계의 데이터 마이닝(데이터 마이닝 모델 만들기, 모델 성향 습득, 그 모델에서 동작 예측)을 이용할 수 있습니다. 다음은 구문 예제입니다. DMX 처리에 대한 전체 내용은 Books Online을 참조하십시오.

데이터 마이닝 모델 만들기

CREATE MINING MODEL Creditrisk
(CustID      LONG KEY,
Gender      TEXT DISCRETE,
Income      LONG CONTINUOUS,
Profession   TEXT DISCRETE,
Risk      TEXT DISCRETE PREDICT)
USING Microsoft_Decision_trees

데이터 마이닝 모델 성향 습득

INSERT INTO Creditrisk 
(CustId, Gender, Income, Profession, Risk)
SELECT CustomerID, Gender, Income, Profession, Risk
From Customers 

데이터 마이닝 모델에서 동작 예측

SELECT NewCustomers.CustomerID, Creditrisk.Risk, PredictProbability(Creditrisk)
FROM Creditrisk PREDICTION JOIN NewCustomers
ON Creditrisk.Gender=NewCustomer.Gender 
AND Creditrisk.Income=NewCustomer.Income
AND Creditrisk.Profession=NewCustomer.Profession

Reporting ServicesBack to Top


Microsoft SQL Server "Yukon" 릴리스를 통해 Microsoft는 자사의 통합 비즈니스 인텔리전스 플랫폼에 중요한 새 요소를 추가하게 되었습니다. SQL Server Reporting Services는 어떤 비즈니스 환경에서나 올바른 정보를 필요한 사용자에게 손쉽게 제공할 수 있도록 해 주어 Microsoft BI의 비전을 넓혀 줍니다.

Reporting Services는 기존의 보고서 및 양방향 보고서를 만들고 관리 및 전달하는 완벽한 서버 기반 플랫폼입니다. 여기에는 보고서 작성, 배포 및 관리에 필요한 모든 것이 들어 있습니다. 동시에, 제품의 모듈식 디자인과 광범위한 API(Application Programming Interfaces)를 통해 소프트웨어 개발자와 데이터 공급자 및 기업이 기존 시스템이나 타사 응용 프로그램에 리포트 기능을 통합할 수 있습니다.

Reporting Services는 SQL Server "Yukon"과 함께 제공되며 다음이 포함되어 있습니다.

  • 보고서를 작성, 관리 및 보기를 위한 완전한 도구 집합
  • 보고서 호스팅 및 처리를 위한 엔진
  • 보고서를 임베딩하거나 솔루션을 다양한 IT 환경에 통합하기 위한 광범위한 아키텍처 및 공개 인터페이스

왜 Reporting Services를 사용하는가?

정확한 정보를 정확한 사람에게 정확한 시간에 전달하는 것이 얼마나 중요한지에 대해 이의를 제기할 사람은 아무도 없을 것입니다. 정보를 액세스해야 하는 사람이 기존 조직의 틀을 벋어나 도처에 흩어져 있고 활용할 수 있는 기술과 전문 지식도 저마다 다르기 때문에 어떤 기업에나 이러한 정보 전달은 힘든 과제입니다.

Reporting Services는 유연한 구독 및 전달 메커니즘을 이용하여 기존 보고서 및 양방향 보고서를 손쉽게 만들고 다양한 사람들에게 전달할 수 있도록 도와줍니다. 그리고 복잡하고 요구도 많은 비즈니스 환경을 처리할 수 있는 보안성 및 관리 효율성도 제공합니다.

Reporting Services는 여러 가지 고유한 특성들을 제공합니다.

  • 보고를 위한 완벽한 서버 기반 플랫폼: Reporting Services는 보고서 작성에서부터 전달 및 관리에 이르기까지 총체적인 리포트 작업을 지원합니다.
  • 유연하고 확장성 있는 리포트 기능: Reporting Services는 여러 형식의 기존 보고서 및 양방향 보고서를 모두 지원하며, 전달 옵션도 확장 가능합니다. 그리고 공개 API 및 인터페이스를 사용하면 어떤 환경이나 솔루션에도 손쉽게 통합할 수 있습니다.
  • 확장성: 이 제품의 웹 기반 모듈식 설계는 손쉽게 확장되므로 대규모 환경을 지원할 수 있습니다. 동일한 핵심 보고서를 액세스하는 다수의 보고서 서버로 이루어진 리포트 서버 팜을 만들어 수 천의 웹 기반 클라이언트에 서비스할 수 있습니다.
  • Microsoft 제품 및 도구와의 통합: Reporting Services는 SQL Server와 함께 제공되며 프로그래밍 및 사용자 지정 작업 없이도Office, SharePoint Portal Server와 같은 친숙한 Microsoft 도구들과 간편하게 통합됩니다.

Reporting Services 사용 방법

Reporting Services는 하나의 완벽한 리포트 플랫폼에 확장성 있는 아키텍처를 결합시켜 다양한 리포트 요구를 충족시켜 주고 있습니다.

  • 기업을 위한 리포트 기능: 기업은 내부 리포트 및 BI 응용 프로그램에 Reporting Services를 사용할 수 있습니다. 많은 기업이 운영 데이터를 한데 모으기 위해 데이터 마트 또는 웨어하우스를 만듭니다. Reporting Services를 사용하면 기업의 IT 담당자는 다양한 보고서를 설계한 다음 전자 메일 배포와 기업 포털 게시 방법을 통해 사내 전 직원에게 배포할 수 있습니다. Reporting Services는 Microsoft BI 플랫폼에 통합된 종합 리포트 솔루션으로서 기업에 상당한 가치를 제공합니다.
  • 임베딩된 보고서: 소프트웨어 공급업체(ISV)는 Reporting Services를 이용하면 미리 정의된 리포트 기능을 Microsoft SQL Server에서 실행되는 패키지 응용 프로그램의 일부로 제공할 수 있습니다. ISV의 IT 조직은 이러한 리포트 기능을 제공받은 상태 그대로 이용할 수도 있고 Reporting Services를 이용해 사용자 지정하거나 특정 비즈니스 목적에 맞게 새 보고서를 만들 수도 있습니다. Reporting Services는 유연한 양방향 리포트 기능을 응용 프로그램에 임베딩하는 간단한 방법을 ISV에게 제공합니다.
  • 파트너/고객을 위한 웹 기반 보고: 조직들은 엑스트라넷을 통해 고객 또는 파트너와 상호 작용하기 위해 기존 보고서 또는 양방향 웹 기반 보고서를 배포할 수 있습니다. Reporting Services는 리포트 고객을 원본으로 사용하는 데이터 원본의 복잡성으로부터 벗어나게 해 주는 동시에 개인 전용화 및 대화형 작업을 제공합니다.

Reporting Services 기능

Reporting Services는 중앙에서 관리되는 리포트 시스템의 장점에 데스크톱 및 웹 기반 응용 프로그램의 주문형 특성을 겸비하고 있습니다. 완벽한 리포트 플랫폼인 Reporting Services는 작성부터 배포까지 전 리포트 과정을 지원합니다.

보고서 작성

Reporting Services에는 그래픽 보고서 디자이너 도구와 보고서 디자인 마법사를 포함해 기존 보고서 또는 양방향 보고서 작성을 시작하는데 필요한 모든 것이 들어 있습니다.

보고서 작성 기능세부 정보
광범위하게 지원되는 데이터 원본Microsoft SQL Server

Microsoft Analysis Services

OLE DB 호환 데이터 원본

ODBC 호환 데이터 원본

유연한 작성 도구Report Designer (Visual Studio .NET 사용)

XML 기반의 RDL(Report Definition Language)

RDL을 생성하는 타사 도구들

유연한 리포트 형식자유 형식

매트릭스

도표

런타임 필터링을 이용하는 매개 변수가 정해진 보고서

정렬 및 그룹화

Drillthrough

링크된 보고서

모듈식 보고서 실행렌더링은 쿼리와는 별개의 프로세스로, 동일한 보고서가 서로 다른 형식으로 렌더링될 수 있습니다.

실행은 예약 실행과 주문형 실행이 있습니다.

보고서 관리

Reporting Services에는 보고서를 관리하는 웹 기반 도구인 Report Server Web Application이 포함되어 있습니다. 관리자는 이 인터페이스를 사용하여 보고서의 역할 기반 보안을 정의하고 보고서 실행 및 전달 일정을 세우고 리포트 기록을 추적합니다. 아니면 기업이나 ISV는 Reporting Services Web Services API를 이용하여 사용자 지정된 관리 도구를 작성할 수도 있습니다.

보고서 정의, 폴더 및 리소스는 SQL Server 데이터베이스에 저장되므로 SQL Server "Workbench"와 같은 기타 도구를 사용해 메타데이터를 관리하거나 게시된 API를 이용해 타사 응용 프로그램을 사용할 수 있습니다.

Reporting Services는 유연한 역할 기반 보안 모델을 실행하여 보고서와 리포트 리소스를 보호합니다. 다양한 보안 필요성에 맞게 조정할 수 있는 Reporting Services에는 필요할 경우 다른 보안 모델을 통합할 수 있는 광범위한 인터페이스가 포함되어 있습니다.

보고서 관리 기능세부 정보
보고서 메타데이터
  • 이름
  • 설명
데이터 원본 관리
  • 연결
  • 자격 증명
매개 변수 관리
  • 기본
  • 프롬프트
보고서 일정SQL Server Agent와의 통합
실행 속성라이브, 캐시 또는 스냅샷. Reporting Services 스냅샷은 보고서 데이터 집합의 저장된 복사본으로, 보고서 스냅샷이 실행될 때 보고서의 원본 쿼리 결과입니다.
이전 보고서 실행 기록필요 시 다시 사용할 수 있도록 보관된 카탈로그된 스냅샷 목록
보고서 보안
  • 사용자, 그룹, 역할
Report Server 웹 응용 프로그램다음 기능을 제공하는 웹 기반 관리 도구
  • 보안 정의
  • 보고서 실행 및 전달 일정 작업
  • 리포트 기록 추적
유연한 관리 APIWeb Service API

보고서 전달

보고서를 포털에 게시하거나 사용자에게 전자 메일로 보내거나 사용자가 웹 기반 보고서 서버를 사용해 폴더 계층에서 보고서를 액세스하도록 할 수 있습니다. 탐색, 검색 및 구독 기능은 사용자가 필요로 하는 보고서를 찾아 실행하는 데 도움이 되며, 개인화된 구독 기능을 통해 사용자가 선호하는 렌더링 양식을 선택할 수 있습니다.

보고서 전달 기능세부 정보
다양한 보고서 렌더링 옵션
  • 웹 형식 (HTML)
  • 인쇄 형식 (PDF, TIFF)
  • 데이터 (Excel, XML, CSV)
  • 공개 API를 통한 기타 형식
유연한 전달 옵션
  • 예약
  • 이벤트 주도형
  • 사용자 개인화된 구독
  • 렌더링된 보고서 또는 링크 전달
  • 데이터 주도형 구독
  • 통합을 통한 기타 응용 프로그램

요약Back to Top


Microsoft SQL Server "Yukon"은 다음 시스템을 만드는 데 필요한 인프라와 서버 구성 요소를 제공하는 완벽한 BI 플랫폼입니다.

  • 쿼리가 쉽고 유지 관리가 저렴한 복잡한 대형 데이터 웨어하우스
  • 소규모 기업이나 대기업의 부서에서 손쉽게 구축 및 관리할 수 있는 작은 리포트 및 분석 시스템
  • 조작을 담당한 사용자에게 분석 데이터를 전달하는 대기 시간이 짧은 시스템
  • 폐회로 분석 및 데이터 마이닝 시스템
  • 비즈니스 인텔리전스의 활용 범위를 더욱 확대시켜 주는 임베디드 시스템

친숙한 도구들(SQL Server 관계형 데이터베이스, DTS, Analysis Services OLAP 및 데이터 마이닝)이 크게 향상되었고 Reporting Services 및 개발 관리 "Workbenches"와 같은 새로운 기능이 Microsoft BI Platform을 한층 더 확장시켜 줍니다. 이 외에도 모든 도구가 혁신적이며 더 적은 노력으로 더 많은 일을 할 수 있도록 만들어져 더 적은 하드웨어와 소규모 팀으로 더 큰 비즈니스 인텔리전스 응용 프로그램을 보다 빠르고 우수하게 만들고 배포 및 관리할 수 있습니다.

부록 A: 코드 예제Back to Top


재귀 쿼리 예제

USE AdventureWorks
GO
/* 
This query brings back a list of managers, and the count of employees who report to them directly or indirectly)
*/
WITH reps_cte (emp, mgr, recursion_level)
AS
(
/*Get the initial list of employees.*/
SELECT EmployeeID, ManagerID, 0 
FROM Employee AS E 
/*Get a Union of the anchor and the recursive term.*/
UNION ALL 
SELECT reps_cte.emp, E.ManagerID, recursion_level+1  

FROM Employee E, reps_cte      -- Join with Employee
WHERE reps_cte.mgr=E.EmployeeID   -- This employee's manager
AND recursion_level<=20      -- up to 20 levels of mgmt
)      -- End of common table expression
/*Now query the recursive common table expression reps_cte*/
SELECT r.mgr,  E.[LastName]+', ' + E.[FirstName] AS MgrName, count(*) CntEmployees
FROM reps_cte r INNER JOIN [Employee] E ON (r.mgr=E.EmployeeId)
GROUP BY mgr, E.[LastName]+', ' + E.[FirstName]
HAVING count(*) > 1         -- Means they manage at least one person
ORDER BY 3 DESC         -- Sort by count of employees
GO

이 문서는 임시 문서로 여기에서 기술된 소프트웨어의 발매 전에 대폭 변경될 수 있습니다.

이 문서에 포함된 정보는 문서 발행 시에 논의된 문제들에 대한 Microsoft Corporation의 당시 관점을 나타냅니다. Microsoft는 변화하는 시장 상황에 부응해야 하므로 이를 Microsoft측의 공약으로 해석해서는 안 되며 발행일 이후 소개된 어떠한 정보에 대해서도 Microsoft는 그 정확성을 보증하지 않습니다.

이 문서는 오직 정보를 제공하기 위한 것입니다. Microsoft는 이 문서에서 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.

해당 저작권법을 준수하는 것은 사용자의 책임입니다. 저작권에서의 권리와는 별도로, 이 문서의 어떠한 부분도 Microsoft의 명시적인 서면 승인 없이는 어떠한 형식이나 수단(전기적, 기계적, 복사기에 의한 복사, 디스크 복사 또는 다른 방법) 또는 목적으로도 복제되거나, 검색 시스템에 저장 또는 도입되거나, 전송될 수 없습니다."

Microsoft가 이 문서 본안에 관련된 특허권, 상표권, 저작권, 또는 기타 지적 소유권 등을 보유할 수도 있습니다. 서면 사용권 계약에 따라 Microsoft로부터 귀하에게 명시적으로 제공된 권리 이외에, 이 문서의 제공은 귀하에게 이러한 특허권, 상표권, 저작권, 또는 기타 지적 소유권 등에 대한 어떠한 사용권도 허여하지 않습니다.

다른 설명이 없는 한, 용례에 사용된 회사, 기관, 제품, 도메인 이름, 전자 메일 주소, 로고, 사람, 장소 및 이벤트 등은 실제 데이터가 아닙니다. 어떠한 실제 회사, 기관, 제품, 도메인 이름, 전자 메일 주소, 로고, 사람, 장소 또는 이벤트와도 연관시킬 의도가 없으며 그렇게 유추해서도 안 됩니다.

© 2003 Microsoft Corporation. All rights reserved.

Microsoft는 미국, 대한 민국 및/또는 기타 국가에서 Microsoft Corporation의 등록 상표입니다.

여기에 인용된 실제 회사와 제품 이름은 해당 소유자의 상표일 수 있습니다.


 

최종 수정일 : 2003년 12월 23일