사진과 음악을 좋아하는 개발자 지망생의 블로그

[데이터 웨어하우스] 2. 데이터 웨어하우스 구조 설계(데이터 마트, 데이터 웨어하우징 아키텍처, 큐브, 운영 데이터 스토어, 스테이징 레이어, 사용자 접근 레이어, 비영속적 스테이징 레이어,.. 본문

개발/데이터 웨어하우스 - 기초

[데이터 웨어하우스] 2. 데이터 웨어하우스 구조 설계(데이터 마트, 데이터 웨어하우징 아키텍처, 큐브, 운영 데이터 스토어, 스테이징 레이어, 사용자 접근 레이어, 비영속적 스테이징 레이어,..

devculture309 2023. 5. 23. 10:33
반응형

1. 중앙집중화된 데이터 웨어하우스 (Centralized Data Warehouse) 구축

중앙집중화된 데이터 웨어하우스(Centralized Data Warehouse)는 하나의 데이터 웨어하우징 환경으로, 여러 구성 요소로 구성되는 것이 아니라 단일한 데이터베이스로 이루어진 환경입니다. 이러한 중앙집중화된 데이터 웨어하우스는 데이터를 한 곳에서 쉽게 찾고 사용할 수 있도록 합니다.

 

중앙집중화된 데이터 웨어하우스 주요 이점은 원스톱 쇼핑을 가능하게 해 줍니다. 즉, 리포팅, 비즈니스 의사결정, 분석에 필요한 모든 데이터가 한 곳에 모여있어 사용자가 효율적으로 데이터를 활용할 수 있습니다.

 

하지만 중앙집중화된 데이터 웨어하우스 구축은 쉬운 일이 아닙니다. 1980~1990년대에 기술적인 어려움이 많았으며, 초기의 관계형 데이터베이스는 대용량 데이터 처리에 대한 제한이 있었습니다. 또한, 데이터 웨어하우징은 각 조직 및 개인간 데이터를 공유하고 협업함에 있어 어려움을 겪었습니다.

 

하지만 현재는 데이터 웨어하우스 구축을 위한 기술이 발달하고 있으며, 다양한 지식과 경험을 참고할 수 있습니다. 또한, 현재 중앙집중화된 데이터 웨어하우스는 사용자 관점에서는 획일적이고 중앙 집중화된 모습을 가지며, 비즈니스 의사 결정과 행동을 지원하는 역할을 수행합니다.

 

이러한 중앙집중화된 데이터 웨어하우스는 데이터를 한 곳에서 관리하고 활용할 수 있는 통합적인 환경을 제공하며, 데이터 기반의 의사 결정을 지원하기 위해 중요한 역할을 합니다.

 

 

 

2. 데이터 웨어하우스(Data Warehouse)와 데이터 마트(Data Mart) 비교

Warehouse vs Mart

1. 데이터 웨어하우스(Data Warehouse)

 데이터 웨어하우스는 조직 내에서 다양한 소스 시스템으로부터 데이터를 추출하여 중앙 집중화된 위치에 저장하고 통합하는 시스템입니다. 데이터 웨어하우스는 고도로 구조화된 데이터를 제공하며, 데이터의 정확성과 일관성을 유지하면서 의사결정을 지원하는데 중점을 둡니다. 데이터 웨어하우스는 데이터의 표준화, 정제, 변환 작업을 거치며, 여러 부서나 팀이 이 데이터를 활용하여 분석, 리포팅, 비즈니스 인텔리전스 등을 수행합니다.

 

2. 데이터 마트 (Data Mart)

데이터 마트는 데이터 웨어하우스의 일부로서 특정 주제나 비즈니스 영역에 초점을 맞춘 하위 집합입니다. 데이터 마트는 독립적으로 운영되며, 데이터 웨어하우스로부터 데이터를 추출하여 해당 주제나 영역에 대한 데이터를 구조화하고 저장합니다. 데이터 마트는 주로 특정 부서나 사용자 그룹의 요구사항에 맞춰 구성되며, 특정 주제에 관한 분석 및 보고 목적에 사용됩니다. 데이터 마트는 데이터 웨어하우스의 데이터를 하위 집합으로 가져오는 것이 일반적이며, 데이터 소스로 부터 직접 데이터를 가져오는 경우도 있습니다.

 

즉, 데이터 웨어하우스는 조직 내의 모든 데이터를 중앙집중화하여 통합하고, 데이터의 품질과 일관성을 유지하며 의사결정에 활용하는 시스템이라면, 데이터 마트는 데이터 웨어하우스의 하위 집합으로 특정 주제나 영역에 초점을 맞춘 독립적인 데이터 저장소로, 특정 부서나 사용자 그룹의 요구사항에 맞춰 구성된 시스템입니다. 데이터 마트는 데이터 웨어하우스로부터 데이터를 가져올 수도 있고, 독립된 데이터 소스에서 직접 데이터를 추출할 수도 있습니다.

 

 

 

3. 구성 요소 기반 데이터 웨어하우징 아키텍처 선택

데이터 웨어하우스 환경의 선택은 조직의 요구사항, 데이터 거버넌스 요구사항, 기술적 능력 및 통합 수준과 같은 요소에 따라 달라집니다. 각 접근 방식의 장단점을 고려하고 조직의 특정 맥락과 목표와 가장 일치하는 방식을 선택하는 것이 중요합니다. 다음은, 데이터 웨어하우징 환경을 선택할 때의 주요 대안들에 대한 종합적인 개요입니다.

 

1. 중앙 집중식 데이터 웨어하우스

  • 한 곳에서 모든 솔루션을 제공
  • 현대 기술의 발전으로 중앙 집중식 환경 조성이 가능해짐
  • 조직 간의 협력과 높은 데이터 거버넌스가 필요
  • 작은 변경 사항이 전체 환경에 파급 효과를 일으킬 수 있음

→ 중앙 집중식 접근 방식 옵션

   1) 기업용 데이터 웨어하우스(EDW): 기업의 분석적 요구를 충족시킴  

   2) 데이터 레이크: 관계형 데이터베이스 대안으로 비관계형 대규모 데이터 접근 방식

   3) 특화된 데이터베이스: 열 지향 데이터베이스 및 데이터 웨어하우징 애플라이언스.

 

2. 구성 요소 기반 접근 방식

  • 데이터를 구성 요소(데이터 마트)로 분할하여 격리성과 유연성을 제공
  • 기술의 혼합과 일부 조직적 도전을 극복할 수 있음
  • 구성 요소 간 일관성 없는 데이터 및 통합의 어려움이 잠재적인 단점

구성 요소 기반 접근 방식 옵션

   1) 구조화된 접근 방식

     - 데이터 웨어하우스 + 데이터 마트: 데이터 웨어하우스와 데이터 마트 간 상호 운용성

     - 기업 정보 공장 (CIF): CDW 아키텍처와 구성 요소 접근에 대한 특정 규칙

     - 프론트엔드 데이터 마트: 데이터 마트가 데이터 웨어하우스 앞에 존재하며 데이터가 상위로 전송됩니다.

   2) 데이터 마트 전용 접근 방식

     - 데이터 웨어하우스 차원 버스: 데이터 마트가 일관된 차원 원칙을 따릅니다

     - 연합된 데이터 웨어하우스: 독립적인 데이터 마트의 모음을 데이터 웨어하우스의 일부로 간주합니다.

 

3. 연합된 데이터 웨어하우스

  • 통합 부족과 의견 불일치 가능성으로 인한 마지막 수단
  • 현대 데이터 웨어하우징에선 권장되지 않음

 

 

4. 현대 데이터 웨어하우징에서의 큐브(다차원 데이터베이스)

관계형 데이터베이스 관리 시스템(RDBMS)이 주로 데이터 웨어하우스와 데이터 마트에 기본 플랫폼으로 사용되는 것을 이미 알고 있습니다. 그러나 큐브는 다른 대안으로 사용되는 특수한 데이터베이스입니다.

 

데이터 웨어하우스는 다양한 정보를 수집하고 저장하는 중앙 데이터 저장소입니다. 이 데이터는 다차원적인 특성을 가지며, 다양한 관점에서 분석될 수 있습니다. 예를 들어, 날짜, 지역, 제품 등 다양한 차원으로 데이터를 분류하고 분석할 수 있습니다.

 

큐브는 이러한 다차원 데이터를 효과적으로 저장하고 처리하는 방법을 제공합니다. 큐브는 다양한 차원을 축으로 하는 데이터 공간으로 생각할 수 있습니다. 각 축은 해당 차원의 속성을 나타내며, 큐브의 각 셀은 다차원 데이터의 값을 나타냅니다. 예를 들어, 한 개의 축은 날짜를 나타내고 다른 축은 제품을 나타낼 수 있습니다. 이러한 큐브에서 특정 날짜와 특정 제품에 대한 데이터 값을 조회하거나 분석할 수 있습니다. 이는 데이터의 다양한 차원을 동시에 고려하여 빠르고 효율적인 쿼리 응답을 가능하게 합니다.

 

예전에는 큐브의  빠른 쿼리 응답 시간 때문에 작은 규모의 데이터 웨어하우스와 데이터 마트에 주로 사용됐습니. 하지만 큐브는 관계형 데이터베이스에 비해 유연성이 부족하며, 데이터의 구조적인 변경이 복잡하고 시간이 많이 소요됩니다. 그래서 현재는 데이터 웨어하우징 환경에서 관계형 데이터베이스와 큐브를 함께 사용하는 경우가 많습니다. 예를 들어 데이터 웨어하우스는 관계형 데이터베이스 위에 구축되고, 데이터 마트 중 일부는 큐브 위에 구축될 수 있습니다.

 

큐브는 데이터의 다차원적인 특성을 내재적으로 이해하고 있으며, 데이터의 구조와 쿼리 성능을 최적화하여 사용자에게 빠른 데이터 분석과 보고서 작성을 가능하게 합니다. 따라서 큐브와 관계형 데이터베이스를 함께 활용하면 조직은 데이터 웨어하우스 환경에서 데이터를 효율적으로 관리하고 활용할 수 있게 됩니다.

 

 

 

5. 운영 데이터 스토어 (Operational Data Store)

 

데이터 웨어하우스는 여러 소스에서 데이터를 모아서 한 곳에 저장하는 시스템입니다. 이와 비슷한 개념으로 운영 데이터 스토어(ODS)라는 것이 있습니다.

 

운영 데이터 스토어(ODS)는 데이터 웨어하우스와 비슷한 개념이지만, 좀 더 실시간 데이터에 초점을 맞춥니다. ODS는 현재의 운영 상황을 파악하기 위해 실시간으로 데이터를 수집하고 저장합니다. 예를 들어, 실시간으로 발생하는 거래 데이터를 ODS에 저장하면, 그 순간의 판매 동향을 파악할 수 있습니다.

 

데이터 웨어하우스와 ODS의 가장 큰 차이는 데이터의 시간적 특성입니다. 데이터 웨어하우스는 주로 과거 데이터를 저장하고 분석하는 데 사용됩니다. 반면에 ODS는 현재의 운영 상황을 파악하고 빠른 의사 결정에 활용됩니다.

 

과거에는 ODS가 매우 인기가 있었습니다. 하지만 최근에는 데이터 웨어하우스가 더 빠르고 최신의 데이터를 제공하므로 ODS의 인기가 조금 줄어들었습니다. 특히 빅 데이터 기술의 발전으로 인해 대용량의 실시간 데이터를 다룰 수 있는 데이터 웨어하우스가 등장하였습니다.

 

데이터 웨어하우스, ODS 모두 데이터 관리와 분석에 중요한 도구입니다. 이들은 조직이 실시간 데이터를 활용하여 더 빠르고 효과적인 의사 결정을 내릴 수 있도록 도와줍니다. 이러한 도구들을 적절히 활용하는 방법으로 두 가지 방법이 있습니다. 

 

첫 번째 옵션은 데이터 웨어하우스로 데이터를 보내는 동시에 운영 의사 결정을 위한 별도의 환경으로 운영 데이터 스토어(ODS)를 구축하는 것입니다. 이렇게 하면 데이터 웨어하우스에는 대규모 데이터가 저장되고 분석에 활용되며, ODS에는 실시간 데이터 업데이트와 운영 의사 결정을 위한 데이터가 저장됩니다. 두 번째 옵션은 분석 데이터를 먼저 ODS로 보내고, 이후에 데이터를 데이터 웨어하우스로 전달하는 것입니다. ODS는 중간 저장 영역으로 사용되며, 사용자는 ODS 또는 데이터 웨어하우스로부터 데이터를 이용하여 의사 결정을 합니다.

 

이 선택지들은 데이터 웨어하우스와 ODS의 역할과 목적에 따라 다르며, 조직의 요구사항과 운영 환경에 맞게 선택되어야 합니다

 

 

 

6. 스테이징 레이어(Staging Layer)와 사용자 접근 레이어(User Access Layer)

 

데이터 웨어하우스에는 스테이징 레이어(Staging Layer)사용자 접근 레이어(User Access Layer) 두 개의 병렬 레이어가 있습니다. 스테이징 레이어는 소스 응용 프로그램에서 수집한 데이터의 착륙 지점으로 역할을 합니다. 여기서 데이터는 다른 곳에서 가져온 것이며, ETL(추출, 변환, 로드) 작업을 통해 데이터 통합과 변환을 수행합니다. 스테이징 레이어는 데이터가 의사 결정을 지원할 수 있는 형태로 완료되기 전의 중간 단계입니다.

 

사용자 접근 레이어(User Access Layer)는 사용자가 데이터 웨어하우스나 데이터 마트로 부터 데이터를 가져갈 수 있게 하는 역할을 합니다. 여기서 사용자는 보고서나 비즈니스 인텔리전스(BI) 및 분석을 위해 필요한 데이터를 활용합니다. 사용자 접근 레이어에서는 디자인, 공학, 4차원 모델링과 관련된 작업이 이루어지며, 스타 스키마, 스노우플레이크 스키마, 팩트 테이블, 차원 테이블 등이 구성됩니다.

 

스테이징 레이어(Staging Layer)는 소스 환경과 유사한 구조의 데이터를 생성합니다. 예를 들어, 여러 캠퍼스를 가진 대학에서는 각 캠퍼스별로 학과와 교수에 대한 테이블 세트를 가질 수 있으며, 스테이징 레이어에서 이 데이터를 통합할 수 있습니다. 스테이징 레이어는 데이터 통합을 위한 임시 저장소로서 활용되며, 데이터 웨어하우스에서 수행되는 작업 중 하나입니다.

 

스테이징 레이어를 사용하는 이유는 소스 데이터의 복사본을 저장하고, 변환하여 최종적으로 데이터 웨어하우스에서 사용 가능한 형태로 만들기 위함입니다. 스테이징 레이어는 데이터 웨어하우스와 소스 시스템 간의 중간 단계로 작동하며, 데이터 품질 향상 및 데이터 통합을 위해 중요한 역할을 합니다.

 

스테이징 레이어는 데이터 웨어하우스 아키텍처의 필수 구성 요소로서 사용되며, 데이터의 효율적인 추출과 변환을 위한 중요한 역할을 수행합니다.

 

 

 

7. 비영속적 스테이징 레이어(non persistent staging)와 영속적 스테이징 레이어(persistent staging layers)

 

데이터 웨어하우스에서의 스테이징 레이어에는 비영속적 스테이징 레이어와 영속적 스테이징 레이어라는 두 가지 유형이 있습니다.

 

비영속적 스테이징 레이어는 데이터를 일시적으로 보관한 후에 사용자 접근 레이어로 이동시키고 데이터를 삭제하는 방식입니다. 예를 들어, 학기 시작 시점에 새로 합류하는 교수진의 목록을 가져온다고 가정해봅시다. 우리는 새로운 데이터를 스테이징 레이어에 가져와서 임시로 보관한 후, 사용자 접근 레이어에 로드합니다. 그러고 나서 스테이징 레이어는 비워집니다. 다음에는 새로운 교수진인 Marcus 교수님과 Coleman 교수님의 정보가 도착한다면, 다시 스테이징 레이어를 비우고 새 데이터를 이동시킵니다.

이런 방식으로 스테이징 레이어에는 항상 최신 데이터만 남게 됩니다. 이러한 비영속적 스테이징 레이어의 장점은 스토리지 공간을 절약할 수 있다는 것입니다. 왜냐하면 데이터는 이미 사용자 접근 레이어로 이동되어 있으므로 스테이징 레이어에 데이터를 저장할 필요가 없기 때문입니다. 그러나 단점은 데이터 웨어하우스를 재구축해야 할 때나 데이터의 품질을 확인해야 할 때, 소스 시스템으로 돌아가야 한다는 점입니다.

 

영속적 스테이징 레이어는 데이터를 보존하는 방식입니다. 데이터가 스테이징 레이어에 저장된 후에도 삭제하지 않습니다. 예를 들어, 학기 시작 시점에 도착하는 네 명의 교수진 데이터가 스테이징 레이어에 저장되면, 이후에 새로운 데이터가 도착할 때도 기존 데이터와 함께 스테이징 레이어에 추가됩니다. 스테이징 레이어의 데이터는 사용자 접근 레이어로 이동되었더라도 여전히 보존됩니다.

이러한 영속적 스테이징 레이어의 장점은 데이터를 보존하므로 사용자 접근 레이어를 재구축할 때 소스 시스템으로 돌아갈 필요가 없다는 것입니다. 또한 데이터의 품질을 확인할 때에도 스테이징 레이어와 사용자 접근 레이어의 데이터를 비교할 수 있습니다. 그러나 이 방식의 단점은 더 많은 공간을 필요로 한다는 점입니다. 디스크 공간은 상대적으로 저렴하지만, 수백만 개 또는 수십억 개의 데이터 행을 다룰 때에는 많은 공간이 필요합니다. 또한, 영속적 스테이징 레이어에 데이터가 남아있기 때문에 권한이 있는 사용자가 접근해서 데이터를 잘못 사용할 가능성도 있습니다.

 

따라서, 비영속적 스테이징 레이어는 스토리지 공간을 절약하고 간단한 시나리오에서 활용되며, 영속적 스테이징 레이어는 데이터 보존과 데이터 품질 검증을 중요시하는 복잡한 시나리오에서 활용됩니다.

반응형