[DW] DataWarehouse

임정환·2023년 6월 12일
0

응용데이터베이스

목록 보기
8/9

레거시 데이터 ( RDBMS ) , 멀티 미디어 데이터 등을 한데 묶어서 어떻게 관리할 수 있을까?

Data Warehouse란?

데이터 웨어하우스(data warehouse)란 사용자의 의사 결정에 도움을 주기 위하여 기간시스템의 데이터베이스에 축적된 데이터를 공통의 형식으로 변환해서 관리하는 데이터베이스를 말한다.
즉, 여러 DB를 통합한다~ 정도로 이해하자

End to End Data Flow

  • External Data는 구조화 되어있지 않다 ( e.g. JPEG )
  • OLAP은 데이터 분석용 쿼리로서 , 3차원으로 분석한다 (e.g. 슈퍼마켓 DB )
  • 여러 RDB의 데이터와 , 구조화되어 있지 않은 데이터들이 DW에서 표준화되고 정제되어 end-user에 의해서 질의되고 분석될 수 있다.

Dirty Data

유실되거나 , 틀렸거나 표준화되어 있지 않은 Data
예시로 알아보자

Price에 음수값을 가지고 있는 쓰레기 레코드가 존재한다.

B01의 name 필드가 name에 맞지 않은 data가 들어가 있다.
위와 같은 쓰레기 데이터들을 DW에서 정규화해주고 정제해줘야한다.

DW의 스키마


여러 Dimension을 intergrate 하여 별처럼 생겼다고하여 Star 스키마라고한다.

ETL DW 테이블 생성 예제들

ETL: 'Sales' 테이블 생성 예시


time_tag , pid, sid의 조인을 통해 'Sales' 테이블을 생성하고 있다.

  • amount = price * qty
  • cost = unit_cost * qty

추가적인 Computing을 통해서 새로운 필드를 생성하였다.

  • Grouping을 통해서 amount와 cost를 sum해주어서 통합해주었다.


위의 과정을 통해서 DW table 'Sales'를 만들어 주었다.
'Sales'는 각 table의 PK를 포함하고 있다.

ETL : 'Store'테이블 생성 예시

  • 레거시 테이블 'Store_Desc'와 'Manager'로 'Store'테이블 생성

ETL : 'Product'테이블 생성 예시

  • 레거시 DB에는 존재하지 않는 'category' , 'subcategory' 필드 생성을 위해서 외부 분류표를 사용

ETL : 'Customer'테이블 생성 예시

  • 'sex'가 정수로 표현되어있던 것을 'Male'과 'Female'로 정규화

OLAP

DW table에 대하여 기존의 SQL을 통한 쿼리는 row와 col로 이루어진 matrix이므로 한계가 존재하였다. OLAP은 dimension을 추가로 도입하여 다른 측면으로 view가 가능하다.

CUBE 생성


product , store, time 의 3가지 dimension으로 cube를 생성할 수 있다.
즉, 시간대별 store의 product를 볼 수 있게되었다!

OLAP의 연산들

Roll-Up 과 Drill-Down

  • Roll-Up
    A01, A02, A03 의 상위 계층인 Texas로 계층을 증가시키고
    B01, B02의 상위 계층인 New York으로 계층을 증가시켰다.
  • Drill-Down
    위의 예시의 역연산

Slicing


특정 time dimension에 대하여 matrix로 slicing하였다.

Dicing


Cube 속의 작은 Cube로 분리하여 일부 제품, 일부 가격, 일부 시간으로 분석

Pivoting

기존 time dimension에 따른 product와 store cube를
store dimension에 따른 product와 time cube로 축 변환해주었다.

Visualization


3차원 Cube를 2차원으로 dimension을 낮추어 평면화 시켜주었다.

데이터 마이닝이란?

예측 , 분류 , 구분을 위하여 명확하지 않게 저장된 pattern을 찾아내고 발견하는 것 .
우선 DW table을 구축한다.

이후 결정 tree를 구축한다.

결정 Tree를 통한 분류를 진행한다.

위와 같은 Classification을 통해 여러 응용을 할 수 있다 ( 분석, 규칙 찾기 등등...)

profile
CS 박제

0개의 댓글