Dev/Data Engineering

[Data Warehouses] Data Warehouses

HJChung 2021. 9. 9. 04:41

Key Reference

Data Warehouse Tutorial for Beginners: Learn in 7 Days

데이터 웨어하우스에 대해서 알아보면서 많은 도움이 되었던 글이다. 요즘 '깊고' '정확하게' 이해해야 한다는 (긍정적인) 부담감이 있는데 시간과 체력이 따라주지 않아서 힘이 든다. 그래도 필요할 때마다 필요한 주제를 찾아서 읽어봐야겠다는 마음으로 남겨둔다. 

 

1. Data Warehouse란 ?

1) Data Warehouse와 Business intelligence

위키에서 Data Warehouse에 대해 소개한 내용을 보자.

In computing, a data warehouse (DW or DWH), also known as an enterprise data warehouse (EDW), is a system used for reporting and data analysis and is considered a core component of business intelligence.[1]

Business Intelligence란 은 기업에서 데이터를 수집, 정리, 분석하고 활용하여 효율적인 의사결정을 할 수 있는 방법에 대해 연구하는 학문이자 각 비지니스에 해당하는 데이터를 활용해 비즈니스의 전략을 효율적이고 효과적으로 지원하여 각 조직의 구성원애게 적시에 의사결정을 할 수 있도록 지원하는 정보체계 기술이라고 정의하기도 한다.

 

기업 경영, 비지니스에서 네비게이션 역할을 수행하는데 필요한 데이터, 알고싶은 정보에는 아래의 것들이 있을 수 있다. 

  • Operational Business Process(make it work):
    • Find goods & make orders for custormers
    • Stock and  find goods for inventory staff
    • Pick up and diliver goods for delivery staff

 

  • Analytical Processe(what's going on):
    • Assess the performance of sales staff for HR
    • See the effect of difference sales channels for marketing
    • Monitor sales growth for management

 

출처: Udacity

One of the BI architecture components is data warehousing. Organizing, storing, cleaning, and extraction of the data must be carried by a central repository system, namely data warehouse, that is considered as the fundamental component of business intelligence.
Data Warehouse is a system (including processes, technologies & data representations) that enables us to support analytical processes.
Data warehouse is a copy of transactiondata specifically structured for query and analysis. 

 

2) Data Warehouse Vs. Database

비지니스적 의사 결정에 필요한 데이터들을 관리하는데 단일 관계형 데이터베이스로는 무척 제한적일 것이다. 

 

Data Warehouse는 DB를 query와 분석에 적합하게 재구조화하고 데이터들을 추출, 저장, 조회 등의 기능을 하여 analytical processes를 잘 되도록 supporting해준다. 

데이터 웨어하우스의 주요 기능은 다음과 같다. 

  • Data Cleaning
  • Data Integration
  • Data Mapping
  • Data Extraction
  • Data Cleaning
  • Data Transformation
  • Data Loading
  • Refreshing

 

데이터 베이스가 여기저기 흩어져 있는 데이터 테이블을 연결하여 관리하는 방법론이라면, 데이터 웨어하우스는 방대한 조직 내에서 분산 운영되는 각각의 데이터 베이스 관리 시스템들을 효율적으로 통합하여 조정ㆍ관리하며, 효율적인 의사 결정 시스템을 위한 기초를 제공하는 실무적인 활용 방법론이다.

출처: https://yang1650.tistory.com/53

 

Database Data Warehouse
A database is an amalgamation of related data. Data warehouse serves as an information system that contains historical and commutative data from one or several sources.
A database is used for recording data A data warehouse is used for analyzing data
A database is an application oriented collection of data Data Warehouse is the subject-oriented collection of data
A database uses Online Transaction Processing(OLTP) Data Warehouse uses Online Analytical Processing(OLAP)
Database tables and joins are normalized therefore more complicated Data Warehouse tables and joins are demormalized hence simpler
ER modeling thechniques are used for designing Data modeling techniques are used for designing

여기서 OLTP, OLAP 라는 개념도 나오고 subject-oriented 등 데이터 웨어하우스의 특징으로 보이는 용어들이 등장한다. 이에 대해서 아래에서 정리해보았다. 

 

 

3) Data warehouse의 특성

Data warehouse is a subject-oriented, integrated, nonvolatile, and time-variant collection of data in support of management's decisions.

데이터 웨어하우스는 경영자의 의사 결정을 지원하는 데이터의 집합체로 주제 지향적(subject oriented), 통합적(integrated), 시계열적(timevarient), 비휘발적(nonvolatile)인 네 가지 특성을 가진다. 

  • subject-orientation: 분석하고자 하는 주제를 중심으로 데이터를 구성
  • integrated: 데이터가 데이터 웨어하우스에 들어갈 때는 일관적인 형태로 변환
  • time-varient: 데이터 웨어하우스의 데이터는 일정 기간 동안 정확성을 나타낸다.
  • nonvolatile: 데이터 웨어하우스에 일단 데이터가 적재되면 일괄 처리작업에 의한 갱신 외에는 insert나 delete 등의 변경이 수행되지 않는다. 

 

2. OLTP, OLAP

  • Online Transaction Processing(OLTP; 온라인 트랜잭션 처리)
    • A database uses Online Transaction Processing(OLTP)
    • OLTP is an operational system that supports transaction-oriented applications in a 3-tier architecture.
    • OLTP는 쿼리 처리, 다중 액세스 환경에서 데이터 무결성 유지, 트랜잭션 관리 효율성에 목적이 있다. 
    • '쿼리'로 데이터베이스에서 데이터를 삽입, 업데이트, 삭제 하는 등의 수행을 할 수 있다. 

 

  • Online Analytical Processing(OLAP; 온라인 분석 처리)
    • Data Warehouse uses Online Analytical Processing(OLAP)
    • 사용자가 대규모 데이터에 직접 접근하여 대화식으로 다차원 분석을 할 수 있도록 도와주는 의사 결정 지원 시스템이다. 
    • '직접 접근 한다'는 것은 사용자다 전산 부서와 같은 정보 매개자를 거치지 않고 온라인 상에서 바로 데이터에 접근 할 수 있는 것이다. 
    • '대화식'이라는 것은 OLAP시스템에서 대화 형태로 원하는 정보를 얻을 때까지 분석을 수행할 수 있다는 것이다. 거의 읽기만 수행된다.

 

3. Dimensional Modeling

Dimensional Modeling(DM)은 데이터 웨어하우스의 데이터 저장에 최적화된 data structure technique이다. 

DM의 목적은 더 빠른 데이터 검색을 위해 데이터베이스를 최적화하는 것이다. 

Ralph Kimball에 의해 개발된 DM은 fact table과 dimension table로 구성되어 있다. 

 

1) DM의 구성요소

  • Fact: Facts는 비지니스 프로세스의 measurements/ metrics값들이다. 
    • 예, 판매 비지니스 프로세스에서 measurement는 분기별 판매수이다. 
  • Dimension: Dimension은 비지니스 프로세스 이벤트를 둘러싼 컨텍스트를 제공한다. 
    • 위의 예시를 계속해서 사용하면 판매 비지니스 프로세스에서 분기별 판매수가 fact라면 dimension은 누가-고객 이름, 장소 - 위치, 무엇 - 제품이름 이런 것들에 해당한다. 

 

  • Attribute: Dimensions에서 다양한 특성들을 나타낸다. 그렇기 때문에 attribute는 facts를 검색, 필터링, 분류하는데 사용된다. 

 

  • Fact tables:
    • Record business events, like an order, a phone call, a book review
    • Fact tables columns record events recorded in quantifiable metrics like quantity of an item, duration of a call, a book rating

 

  • Dimension tables:
    • Record the context of the business events, e.g. who, what, where, why, etc...
    • Dimension tables columns  contain attributes like the store at which an item is puchased, or the customer who made tha call. etc...
    • A dimension table contains dimensions of a fact.
    • They are joined to fact table via a foreign key.
    • Dimension tables are de-normalized tables.
    • The Dimension Attributes are the various columns in a dimension table
    • Dimensions offers descriptive characteristics of the facts with the help of their attributes
    • No set limit set for given for number of dimensions
    • The dimension can also contain one or more hierarchical relationships

 

2) Demensional modeling의 과정

DM을 만드는 단계는 아래 5단계가 있고, 각 모델은 비지니스 프로세스의 이유, 양, 언제/어디서/누가/무엇을 을 설명할 수 있도록 구성되어야 한다. 

출처: https://www.guru99.com/dimensional-model-data-warehouse.html

 

 

4. ETL ( Extraction, Transformation, Loading)

지금까지 데이터 웨어하우스은 뭐고, 데이터베이스와 다른 점은 뭐가 있는지,  OLTP, OLAP의 개념, 데이터 웨어하우스에 적합한 데이터 모델링을 하는 방법 등을 정리해 보았다. 

이제 뒤에서는 데이터 웨어하우스의 여러 구조를 살펴보게 될 텐데, ETL이라는 개념이 많이 등장한다.  

ETL이 뭔지 먼저 정리하고 가는게 좋을 것 같다. 

 

ETL이란 데이터 웨어하우스 구축 시 데이터를 운영 시스템에서 추출(Extraction)하여 가공(Transformation) 한 후,  데이터 웨어하우스에 적재(Loading)하는 모든 과정을 말한다. 

출처: https://www.guru99.com/utlimate-guide-etl-datawarehouse-testing.html#what-is-etl

 

어떤 과정인지 예를 들어보면, 

어떤 소매점에 영업, 마케팅, 물류 부서가 있다. 각 부서마다 고객 정보를 독립적으로 처리하기때문에 데이터를 저장하는 방식이 통일되어있지 않다. 영업 부서는 고객을 이름으로 저장하고, 마케팅 부서는 ID로 저장하는 등이다. 

이런 상황에서 누군가 '고객의 이력을 확인하고 어떤 마케팅 캠페인으로부터 어떤 물건을 구매했는지 알고 싶다'면 매우 비효율적이게 된다. 

이럴 때 ETL은 서로 다른 데이터세트 들을 통합된 구조에 맞게 변환해주는 점을 사용하여 데이터 웨어하우스에서 ETL을 사용하여서 각각의 정보를 저장한다면 데이터에서 의미있는 분석을 할 수 있을 것이다. 

 

 

5. Data Warehouses Architecture

정리 중입니다.......

 

 

 

각각의 factors에 대해 최적의 구조를 반영하기 위한 많은 데이터 웨어하우스 모델 구조가 있다. 각각에 대해서 알아보자. 

1) kimball's bus architecture

Ralph Kimball의 Kimball 데이터 모델은 비지니스의 요구 사항을 기반으로 Data Marts가 먼저 형성되는 상향식 접근법을 따르는 모델이다. 

 

2) Independent Data Marts

 

 

3) Inmon's Corporate Information Factory (CIF)

CIF has 2 ETL processes, 

- 1. takses data from the source systemp to the normalized database,

- 2. and from the normalized database to the departmental data marts. 

 

cf. Kimball's dimenstional models 이 모델은 aggregated가 가능하다. 왜냐하면 if you need something really more automic and aggregated, you can go back and get it from the unnormalized data store, or do another aggregation for its after inspection. 

  • OLAP Cubes
  • DWH Storage Technology

4) Hybrid Kimball Bus & Inmon CIF

 

 

 

 

 

 

 

출처: https://www.guru99.com/data-warehouse-architecture.html#7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Reference

https://www.datapine.com/blog/data-warehousing-and-business-intelligence-architecture/

카카오의 데이터파이프라인 

What is Dimensional Modeling in Data Warehouse?

ETL Testing or Data Warehouse Testing Tutorial: What is ETL?

'Dev > Data Engineering' 카테고리의 다른 글

[Data Modeling] Apache Cassandra  (0) 2021.08.15