본문 바로가기
데이터

BI개발 SSAS 모델: 파티션 vs. 인메모리 타뷸러 모델 처리방법 차이점

by 웨더맨 2025. 9. 4.
반응형

BI개발  SSAS 모델: 파티션 vs. 인메모리 타뷸러 모델  처리방법 차이점

 

MSBI에서 BI를 개발할 때 SSAS 다차원 모델(Multidimensional, OLAP 큐브)과 SSAS 테이블 형식 모델(Tabular)은 대용량 데이터 처리 방식에서 중요한 차이를 보입니다.

SSAS 다차원 모델 (OLAP 큐브)

  • 파티션 (Partitions): 다차원 모델은 대용량 데이터를 효율적으로 처리하기 위해 파티션을 적극적으로 활용합니다. 팩트 테이블을 기간, 지역 등 특정 기준에 따라 여러 파티션으로 나누어 저장하고 처리할 수 있습니다.
    • 처리(Processing): 특정 파티션만 새로 처리(Incremental Processing)하거나, 병렬로 여러 파티션을 처리하여 전체 큐브 처리 시간을 단축할 수 있습니다.
    • 저장 방식: 데이터를 디스크 기반의 다차원 구조(MOLAP, ROLAP, HOLAP)로 저장합니다. MOLAP은 집계된 데이터를 큐브 자체에 저장하여 빠른 쿼리 성능을 제공하지만, 데이터 로딩 시 처리 시간이 필요합니다.

 

SSAS 테이블 형식 모델 (Tabular Model)

  • 인메모리 (In-Memory) 방식: 테이블 형식 모델은 기본적으로 VertiPaq 엔진이라는 인메모리 열 기반(Columnar) 데이터 저장 및 압축 기술을 사용합니다. 데이터를 디스크에 저장하는 대신, 최적화된 형태로 메모리에 로드하여 쿼리 시 매우 빠른 응답 속도를 제공합니다.
    • 데이터 압축: VertiPaq 엔진은 데이터를 메모리에 로드하기 전에 강력한 압축 알고리즘(예: Dictionary Encoding, Run-Length Encoding)을 사용하여 데이터 크기를 획기적으로 줄입니다. 이 압축률은 일반적인 관계형 데이터베이스의 1/10 수준에 달하는 경우도 많습니다.
    • 컬럼형 저장소: 행 단위가 아닌 열 단위로 데이터를 저장하기 때문에 특정 열에 대한 쿼리(대부분의 분석 쿼리가 특정 측정값과 차원을 요청)가 매우 효율적입니다. 필요한 열만 메모리에서 읽어오기 때문에 I/O 작업이 최소화됩니다.
  • 대용량 데이터 처리 방법 (처리 방식):
      1. 전체 새로 고침 (Full Process): 가장 간단한 방법으로, 모델의 모든 데이터를 소스에서 다시 읽어와 메모리에 로드합니다. 데이터 볼륨이 크지 않거나, 데이터가 완전히 변경되는 경우에 사용됩니다.
      2. 증분 새로 고침 (Incremental Refresh / Process Partition): 테이블 형식 모델도 다차원 모델과 유사하게 파티션을 활용하여 증분 처리를 지원합니다.
        • 파티션 생성: 테이블의 데이터를 논리적으로 여러 파티션으로 나눌 수 있습니다(예: 연도별, 월별).
        • 파티션 처리: 특정 파티션만 선택하여 새로 고치거나(Process Partition), 신규 데이터를 포함하는 파티션을 추가하고 오래된 파티션을 삭제하는 방식으로 효율적인 업데이트가 가능합니다. 이는 전체 모델을 다시 로드할 필요 없이 특정 부분만 업데이트하여 처리 시간을 크게 단축시킵니다.
        • **SQL Server Management Studio (SSMS) 또는 TMSL (Tabular Model Scripting Language) / AMO (Analysis Management Objects) / PowerShell 스크립트:**를 통해 파티션을 생성하고 관리하며 처리 작업을 자동화할 수 있습니다.
    1. DirectQuery 모드 (Hybrid Model): 매우 대용량의 데이터셋으로 인해 전체 데이터를 메모리에 로드하기 어렵거나, 실시간에 가까운 데이터가 필요한 경우 DirectQuery 모드를 사용할 수 있습니다.
      • 작동 방식: DirectQuery 모드에서는 데이터 모델이 데이터를 메모리에 저장하지 않고, 쿼리가 발생할 때마다 직접 데이터 소스(관계형 데이터베이스 등)에 쿼리를 전송하여 결과를 가져옵니다.
      • 장점: 메모리 제약에서 자유롭고, 항상 최신 데이터를 반영할 수 있습니다.
      • 단점: 인메모리 방식보다 쿼리 성능이 저하될 수 있으며, 모든 DAX 함수와 기능이 지원되지 않을 수 있습니다.
      • 하이브리드 모드: 최근에는 일부 테이블은 인메모리(Import) 모드로, 일부 테이블은 DirectQuery 모드로 구성하는 하이브리드 모델도 지원되어 유연성을 높였습니다.
    2. 계산 테이블 (Calculated Tables) 및 계산 컬럼 (Calculated Columns) 최적화:
      • 필요한 경우에만 계산 테이블이나 컬럼을 생성하고, 복잡한 DAX 수식은 가능한 한 데이터 원본에서 전처리하는 것이 좋습니다.
      • 메모리 사용량을 최적화하고 처리 시간을 줄이는 데 도움이 됩니다.

요약 비교:

특징 SSAS 다차원 모델 (OLAP 큐브) SSAS 테이블 형식 모델
저장 방식 디스크 기반, 다차원 구조 (MOLAP, ROLAP) 인메모리, 컬럼형(VertiPaq)
대용량 처리 파티션, 증분 처리, 디스크 기반 파티션, 증분 처리, DirectQuery, 압축
메모리 사용 집계 데이터 주로 메모리 사용 전체 데이터(압축 후) 메모리 사용
처리 속도 데이터 로딩 시 처리 시간 필요 매우 빠른 쿼리 속도 (인메모리)
개발 난이도 MDX, 복잡한 구조 DAX, 관계형 데이터 모델링과 유사

테이블 형식 모델은 파티션 기능과 강력한 VertiPaq 압축 엔진 덕분에 대용량 데이터를 메모리에 효율적으로 로드하고 처리할 수 있으며, DirectQuery 모드를 통해 인메모리 제약을 넘어서는 솔루션도 제공합니다. 따라서 '인메모리 방식'이라는 기본 특성 외에 이러한 추가적인 처리 방법들이 대용량 데이터 관리에 중요한 역할을 합니다.

728x90
반응형

댓글