본문 바로가기

Analysis Services

Business Intelligence in SQL Server 2008 ; 데이터 저장소와 액세스의 통합

번역: 이수겸(sklee_at_olap.co.kr)

데이터 저장소와 액세스의 통합

대부분의 조직은 여러 비즈니스 시스템을 갖고 있으며, 각각은 자신만의 데이터 저장소를 갖고 있다. 각각의 어플리케이션에서 보고서를 생성하고 어플리케이션이 포함하고 있는 데이터에 대한 분석을 수행하더라도, 기업 전체의 분산된 데이터를 통합하여 분석과 리포팅을 위한 비즈니스 데이터의 중앙 저장소를 구축함으로써 사용자는 비즈니스에서 완전하고 일관적인 통찰력을 달성할 수 있다.

분석과 리포팅을 위한 기업 데이터 통합

SQL Server 2008은 분석과 리포팅을 위한 비즈니스 데이터를 단일화하는 두 가지 공통 접근방식을 지원한다 : 

  • 데이터 웨어하우스 기업 범위의 데이터를 위한 전용의 데이터 저장소로써, 기업 전체에 분산된 데이터 원본에서 가져온 비즈니스 데이터가 저장되고 동기화된다. 이 방식의 주된 장점은, 데이터를 생성하는 비즈니스(Line-of-Business) 어플리케이션의 성능에 영향 없이 분석과 리포팅 성능에 최적화된 데이터 웨어하우스를 디자인할 수 있다는 것이다. 또 다른 장점은 여러 원본에서 가져온 데이터를 정제 및 통합, 신뢰성있는 단일의 일관성있는 버전으로 만들 수 있다는 점이다.
  • 데이터 원본 추상화(Data source abstraction) SQL Server 2008 Analysis Services는 데이터 원본 뷰를 생성해서 하나 이상의 데이터 원본에 대한 추상화된 층을 제공할 수 있다. 그런 다음 데이터 원본 뷰를 Analysis Serivces, Integration Services, Reporting Services에서 하나의 원본으로 사용할 수 있다. 데이터 원본 뷰를 사용하면, 분석이 수행되거나 리포트가 생성되는 시점에 기존 원본 시스템에서 데이터를 가져오게 된다. 이 방식의 주된 장점은 비즈니스 어플리케이션 내에서 데이터의 실시간 분석을 가능케 한다는 점이다. 또한, 데이터 원본 뷰는 길거나 모호한 테이블 이름을 추상화된 층을 통해서 사용자에게 친숙한 이름으로 표시할 수 있다.

Figure 1에서 이러한 방식들을 보여주고 있다. SQL Server 2008에서는 이 두 가지 접근 방식을 선택적으로, 혹은 두 방식을 함께 사용할 수 있다.

Figure 1

원하는 방식으로 모든 데이터 다루기

비즈니스 데이터를 통합하는데 어떤 방식을 사용할지와는 상관 없이, SQL Server 2008은 개발자와 관리자가 효율적으로 비구조적 데이터(문서와 이미지같은)를 저장하고 관리할 수 있도록 하는 데이터 유형을 제공함으로써, 관계형과 비관계형 데이터 둘 다를 지원하는 강력한 지원 기반에서, 비즈니스에 가장 적합한 포맷으로 데이터를 저장, 관리, 분석할 수 있게 해 준다.

SQL Server 2008은 XML 데이터 저장소와 함께 FILESTREAM 데이터 유형에 대한 개선된 지원을 포함하고 있다. 이를 통해 아직 트랜잭션 일관성과 함께 데이터베이스의 통합 부분으로 남아있는 파일 시스템에 대용량 바이너리 데이터를 저장할 수 있다. 또한, 사용자 정의 데이터 유형의 사이즈에 대한 제약이 사라져서 이전의 SQL Server와 달리 8KB 이상의 데이터를 저장할 수 있게 되었다. 공간적, 위치적 데이터 유형 지원으로 산업 표준의 지리 데이터를 저장하고 분석할 수 있다.

전사 데이터 원본 통합

SQL Server 2008 데이터 원본 뷰는 이기종 기업 데이터 저장소(SQL Server, Oracle, DB2, Teradata...)의 데이터 통합과 접근 기능을 제공한다. 데이터 원본 뷰는 또한 기업 규모의 OLAP 저장소를 제공하고, Integration Services내의 다양한 데이터 원본에 대한 지원(이는 모든 종류의 기존 비즈니스 어플리케이션에서 데이터를 추출할 수 있다는 것을 의미한다)을 제공한다. 그러므로, 분석 및 리포팅을 위해 데이터 원본 뷰를 통한 추상화된 층을 생성하거나 ETL 프로세스를 사용한 전용의 데이터 웨어하우스 동기화와는 상관 없이, 모든 기업 데이터 원본 내의 데이터를 단일화하기가 쉽다.

또한, 웹 서비스와 마이크로소프트 닷넷 프레임워크 지원을 통해, SQL Server 2008은 여러 플랫폼, 어플리케이션, 프로그래밍 언어와의 상호운용성을 지원하므로, 분산된 데이터 원본을 통합하고 연결해서 새로운 시스템이나 기존 시스템 모두에서 투자의 효과를 극대화할 수 있다. 기존에 있었던, 그리고 새로이 정립된 HTTP, XML, SOAP, XQuery, XSD와 같은 공개 표준에 대한 지원은 확장된 기업 시스템 전반에 걸쳐 의사소통을 더욱 촉진하는 역할을 한다.

데이터 웨어하우스 성능

SQL Server 2008은 포괄적이고 확장성있는 데이터 웨어하우스 플랫폼을 제공함으로써, 기업 조직이 데이터를 데이터 웨어하우스로 빠르게 통합하고, 가파르게 늘어나는 사용자와 데이터의 양을 확장하고 관리할 수 있게 해 준다.

최적화된 ETL 프로세스

데이터 웨어하우스에는 보통 ETL 프로세스를 통해 원본 시스템에서 가져온 데이터가 저장, 갱신된다. 데이터 웨어하우스에 데이터의 초기 적재 후, 원본 시스템에서 새로 추가되거나 변경된 데이터가 정기적으로 갱신 작업을 수행해서 데이터 웨어하우스가 적시성(up-to-date)를 유지하도록 해 준다.

SQL Server Integration Services는 여러 원본 시스템에서 데이터를 추출하거나, 데이터와 데이터의 구조, 형식에 대한 변환을 수행한 다음, 변환된 데이터를 데이터 웨어하우스로 적재하는 기능을 제공하는 포괄적인 플랫폼이다. 원본 시스템에서 가져온 레코드를 데이터 웨어하우스 내의 기존 레코드와 대조해보는 작업(Lookup)은 ETL 프로세스에서 일반적인 작업이다. SQL Server 2008에서는 대조 작업의 성능이 대폭 개선되었으며, 그에 따라 이러한 기능은 매우 큰 테이블에까지 확장되었다.

데이터의 변경사항을 추적하고 데이터 웨어하우스의 일관성을 유지하기 위해서, SQL Server 2008은 변경 테이블 내의 갱신사항을 기록하는 CDC(Change Data Capture) 기능을 제공한다. 이 기능은 쉽게 변경된 레코드를 식별하고 변경의 상세사항과 원인을 파악할 수 있도록 해 준다.

하드웨어 자원을 효율적으로 관리

SQL Server 2008은 데이터 압축을 통해서 데이터를 좀 더 효율적으로 저장하고 스토리지 비용을 줄여준다. 또한, 압축 기능은 대규모의 입출력 부하에 대한 성능을 향상시킨다. 또한 SQL Server 2008은 백업 압축을 바로 사용할 수 있는(out-of-the-box) 네이티브 지원을 제공한다. 추가적으로, SQL Server 2008의 VARDECIMAL 데이터 유형과 새로운 희박성(Sparse) 컬럼은 데이터 웨어하우스에서 자주 나타나는, 주로 숫자나 NULL 값으로 구성된 대형 테이블에 필요한 공간의 양을 줄여 줌으로써 디스크 스토리지 자원을 보다 효율적으로 사용할 수 있게 해 준다.

데이터 스토리지의 효율성에 있어서, SQL Server 2008은 AWE(Address Windowing Extensions) 사상(mapped) 메모리의 동적 할당을 지원하여, Windows Server 2003 데이터센터 에디션에서는 총 64기가바이트의 메모리를 지원한다. 그리고 64비트 에디션에서는 2테라바이트까지를 지원함으로써, 대형 데이터 웨어하우스 환경을 지원한다.

또한 SQL Server 2008은 Resource Governor 기능을 제공한다. 이 기능은 관리자가 자원의 사용 한계와 서로 다른 부하에 대한 우선권을 정의할 수 있게 해 줌으로써, 현재 수행되는 작업에 일관적인 성능을 제공하고  자원 경쟁 문제를 미리 관리할 수 있도록 해 준다.

데이터베이스 성능 최적화

SQL Server 2008은 고성능의 관계형 데이터베이스 엔진을 포함, 고효율의 데이터 웨어하우스 솔루션 구축이 가능하다. 스타 스키마에 대한 쿼리 최적화, 인덱스와 데이터 구조 조율을 도와주는 도구와 같은 변혁은 SQL Server가 수많은 쿼리를 처리하는 데이터 웨어하우스에 적합한 선택이 되도록 하고 있다. MERGE Transact-SQL 구문의 등장으로, 개발자는 레코드가 존재하는지 확인한 후 데이터를 삽입/갱신하는 등의 공통 데이터 웨어하우스 시나리오를 좀 더 효율적으로 다룰 수 있게 되었다. 또한, GROUP BY 구의 확장(Extension)은 사용자가 단일 쿼리 내에서 다중 그룹화를 정의할 수 있도록 해 준다. 그룹화 집합(Grouping Set)은 서로 다른 그룹화된 레코드들의 UNION ALL과 동일한 단일 결과 셋을 생성한다. 이 기능은 집계 쿼리와 리포트를 좀 더 쉽고 빠르게 만들어준다.

SQL Server 2008은 파티션된 테이블을 지원해서 대형 테이블의 성능과 관리를 최적화해주고, 새로이 등장한 파티션된 테이블 병렬화에 대한 지원으로 눈에 띄게 데이터 웨어하우스의 성능을 최적화할 수 있다.