• 운영계 시스템: 기업 운영에 필요한 업무용 시스템이며, 이 시스템의 사용자는 직원이 될 수도 있고, 외부 고객이 될 수도 있습니다.  예를 들어 전자상거래 사이트에서 물건을 주문했을 경우,  인터넷뱅킹 사이트에서 이체를 진행했을 경우, 내부 인사시스템의 사원 정보를 갱신하는 경우와 같이 프로세스가 모두 운영계 시스템에서 처리됩니다. 이 시스템에 발생하는 데이터는 대부분 데이터베이스 트랜잭션 단위로 데이터를 처리하고, 저장하며 흔히 OLTP(Online Transaction Processing) 데이터라고 표현합니다.

  • ODS:  운영계 시스템의 데이터는 트랜잭션을 중심으로 설계되어 있기 때문에,  운영계 시스템 데이터를 대상으로 데이터 분석을 진행할 경우 효용성이 매우 떨어집니다. 그래서 데이터 분석을 위한 DW(Data Warehouse)를 설계하고, 데이터를 보관하게 됩니다. ODS는 DW로 데이터를 저장하기 전에, 임시로 운영계 데이터를 보관하는 장소이며, 운영계 시스템의 이력성 데이터를 보관을 하게 됩니다. 참고로 ODS가 별도로 존재할 경우에는 운영계 시스템의 복사본으로 활용되며, DW의 일부일 경우에는 임시 저장소로 사용됩니다.

  • DW:  DW란 운영계 데이터를 사용자 관점에서 주제별로 통합하여, 별도의 장소에 저장해 놓은 통합 데이터베이스입니다. 사용자가 쉽게 이해할 수 있고, 최소한의 조인으로 데이터를 획득할 수 있도록 매우 단순한 구조로 설계되어 있습니다. DW란 데이터 창고와 같은 역할을 한다고 이해하면 됩니다. 참고로 상용 DW는 오라클의 ExaData, HP의 버티카(Vertica), IBM의 네테자(Netezza), EMC의 그린플럼(GreenPlum) 등이 있습니다.

  • DM(Data Mart): 분석의 편의성을 높이고자, DW의 데이터를 주제별, 업무별로 요약하여 구성한 데이터 저장소입니다. 일반적으로 각 부서별로 다양한 예측과 분석을 목표로 만들어집니다.

  • ETL(Extraction, Transform, Load): ETL은 데이터를 추출, 가공, 적재하는 프로세스입니다. 그림18.8의 경우 운영계 시스템과 ODS, ODS와 DW, DW와 DM간에 ETL이 진행됩니다.

  • 분석 시스템: 일반적인 보고서 시스템, BI(Business Inteligence)용으로 활용되는 온라인 분석 처리(OLAP: OnLine Analytical Processing) 시스템, 시각화 도구, 데이터 마이닝 시스템이 이 분류에 포함됩니다.

 


ETL 정의
데이터를 소스시스템에서 추출하여 데이터웨어하우스에 로드하는 것과 로드된 데이터에 대한 정제 작업까지의 일련의 과정

-- 소스시스템에서 타겟시스템으로 데이터를 적재하는 일련의 과정을 말한다.

ETL 구성
ㅇ 데이터 추출(Data Extraction)
ㅇ 데이터 정제(Data Cleansing)
ㅇ 데이터 변환(Data Transformation)
ㅇ 데이터 적재(Data Loading, Transportation)

-- Extraction : 소스시스템에서 데이터 검색하고 추출하는 과정
-- Cleansing : 타겟시스템에서 요구되는 데이터 정의에 맞춰 표준화나 수정하는 과정
-- Transformation : 소스시스템에서 타겟시스템에 맞게 변환하는 과정
-- Loading : 이동된 데이터를 타겟시스템에 로딩하는 과정

ETL 프로세스
ㅇ 분석
ㅇ 설계
ㅇ 구축
ㅇ 검증

-- 분석 : 전체 DW 분석 단계에서 수립된 논리 모델을 이해한다.
-- 설계 : 분석단계에서 설계된 논리적 모델을 기준으로 업무특성, 데이터특성, 소프트웨어
             (DMBS, DW관리도구, OLAP도구) 등을 고려하여 물리적 데이터 추출/정제/변형/
             적재 작업을 설계한다.
            ㅇ 소스데이터와 타겟데이터의 매핑 설계
            ㅇ 데이터 분석(코드 매핑, 데이터 일치 등)
            ㅇ 데이터 변환/정제 설계
            ㅇ 데이터 및 작업 분산 설계
            ㅇ 데이터 적재 설계
            ㅇ 작업처리 절차 설계
-- 구축 : 분석, 설계 단계에서 행하여진 작업의 결과를 바탕으로 세부적인 데이터 추출/정제
             변형/적재 작업을 수행한다.
-- 검증 : 시스템에 대한 모든 요구사항과 분석 내용들이 정확히 반영되고 기능들이 정상적으로
             수행되는지 검증한다.

데이터 변환
ㅇ 데이터 무결성 체크가 가장 중요
ㅇ 데이터 전환
ㅇ 불필요 필드 제거
ㅇ 데이터 타입 및 길이 변환
ㅇ 서로 다른 포맷 통일
ㅇ 계산된 값 추가
ㅇ 키체계 변환

-- 타겟시스템에 맞는 데이터로의 변환에서 무결성 체크가 가장 중요한다.
-- 데이터 전환 예 : 주소에서 시/군/구/동/번지로의 Split
-- 데이터 타입 및 길이 변환 예 : mm/dd/yy, yy/mm/dd를 yyyy/mm/dd로 변환
-- 서로 다른 포맷 통일 예 : 남/녀, 1/0, Mail/Femail을 M/F로 통일
-- 계산된 값 추가 예 : 매출 단가 * 매출 개수의 매출액을 미리 계산해서 추가
-- 키체계 변환 예 : 주민번호, 고객번호, 여권번호등을 고객번호로 통일

데이터 정제
ㅇ 데이터 오류 유형
ㅇ 데이터 오휴 해결 방법

-- 데이터 오류의 유형 : 오타, 필드 손실, 필드 추가로 인한 Null Value, 갱신이 안된 데이터,
    표준화 오류 등
-- 데이터 오류 해결 방법
    ㅇ 수작업 : 많은 시간과 비용, 보다 심각한 데이터 오류의 발생 가능성 존재
    ㅇ 도구 : 특정 오류나 공통 오류 수정 자동화

데이터 정제 프로세스
ㅇ 데이터 현황 조사
ㅇ 데이터 품질 기준 작성
ㅇ 데이터 합리화 분석
ㅇ 데이터 수정 & 변환
ㅇ 데이터 검증

-- 데이터 현황 조사 : 필수 항목 내역 조사, 대상 테이블/데이터 선정 등
-- 데이터 품질 기준 작성 : 업무 규칙에 따른 품질 기준 작성
    ※BR(Business Rule) : 업무 규칙에 의해 적용되는 데이터 품질 기준
-- 데이터 합리화 분석 : 데이터 관리부서, 용도 등에 대한 분석
-- 데이터 수정 & 변환 : 코딩이나 도구를 통해 수행
-- 데이터 검증 : 검증 절차 수립과 체계적 테스트

데이터 전송
ㅇ 오프라인 방식
ㅇ 온라인 방식
ㅇ 디스크 공유 방식

-- 오프라인 방식 : 소스시스템에서 SAM 파일로 데이터를 추출하고 SAM 파일을 타겟시스템으로 전송
    한 후 SAM 파일을 통해서 데이터를 로딩한다.
-- 온라인 방식 : 소스시스템과 타겟시스템을 직접 연결하여 데이터를 전송한다.
    (오라클의 DBLINK, 씨퀄의 Linked Server)
-- 디스크 공유 방식 : 소스시스템에서 추출된 SAM 파일을 독립된 디스크에 저장하고 타겟시스템에서
    디스크의 SAM 파일에 접근해서 로딩한다.
    (SQL Server의 Log Shipping과 비슷하게 동작)

OLAP의 개요
사용자가 다양한 차원(각도/관점/구성)의 정보에 직접 접근하여 대화식으로 분석하고 의사결정에 활용하는 과정(다차원 정보 분석)

-- 다양한 차원 : 매출액을 변수로 질문을 던질 때, 1)제품별 매출액은? 2)지역별 매출액은? 3)기간별
    매출액은? 등에서 제품별/지역별/기간별을 다양한 차원으로 정의할 수 있다.
-- 직접 접근 : 기존의 시스템은 사용자가 전산부서에 원하는 정보를 요청해서 결과를 얻게되지만
    OLAP은 사용자가 중간 매개자 없이 직접 OLAP 시스템에 접근하여 분석을 수행하게 된다.
-- 대화식 분석 : 기존 시스템에서는 사용자에게 정형화된 보고서나 스크린 형태로 넘겨져서 사용자가
    분석했다면, OLAP은 사용자가 원하는 결과를 얻을 때까지 OLAP 시스템과의 다양한 질의/결과의
    상호작용을 통해 계속해서 분석을 수행하게 된다.
-- 의사결정 활용 : OLAP은 결국 사용자가 기업의 전반적인 상활을 이해할 수 있게 하고 의사결정을
    지원하는데 있다.
-- OLAP Reports.. Fast Analysis of Shared Multidimensional Information.

OLTP vs. OLAP
ㅇ OLTP : On-Line Transaction Processing
ㅇ OLAP : On-Line Analytical Processing

-- OLTP : 온라인 상에서 여러 사용자가 데이터를 갱신하거나 조회하는 등의 작업을 처리하는 방식
    을 말한다.

-- OLAP : 온라인 상에서 사용자가 대량의 데이터를 조회하여 데이터가 가지는 의미를 분석하는
    방식의 프로세스를 말한다.

<OLTP vs. OLAP 비교 요약> 출처 : 여러 블로그

구분 OLTP OLAP
데이터의 구조 복잡 (운영 시스템 계산에 적합) 단순(사업 분석에 적합)
데이터의 갱신 순간적/동적 주기적/정적
응답 시간 2, 3 초 ~ 몇 초 이내 수 초 ~ 몇 분까지도 가능
데이터의 범위 과거 30 일 ~ 90 일 과거 5 년 ~ 10 년
데이터 성격 정규/핵심 업무 데이터,
mission critical 데이터
비정규/read-only 데이터,index 에 의존
데이터의 크기 수 Giga Byte 수 Tera Byte
데이터의 내용 현재 데이터 기록 보관된, 요약/계산 데이터
데이터 특성 거래처리(transaction) 중심 주제(subject) 중심
데이터 액세스 빈도 높음 보통 혹은 낮음
데이터의 사용법 고도로 구조화된 연속 처리 고도로 비구조화 된 분석 처리
쿼리의 성격 예언 가능, 주기적 예측하기 어렵고, 특수하다 
OLAP 용어 정의
ㅇ 셀(Cell)과 다차원배열(Multi-Dimensional Array)
ㅇ 차원(Dimension)과 차원 멤버(Dimension Member), 차원 계층 구조(Dimension Hierachy)
ㅇ Measure/Variable
ㅇ Attribute/Property
ㅇ Drill Down과 Roll Up
ㅇ Pivot/Rotate
ㅇ Slice와 Dice

<Pic. 1 기본 큐브 예>

-- 셀(Cell )
    : 하나의 데이터가 저장되는 공간으로 큐브에서 작은 육면체를 말한다.
    : 각 차원(제품/지역/기간, 아래 설명)들이 가진 멤버(항목의 좌표값)들의 조합수 만큼 
      존재한다.

-- 다차원 배열(Multi-Dimensional Array)
    : 데이터의 차원에 의해 정렬된 데이터 셀의 집합을 말한다.
    : 이차원 배열은 스프레드시트와 유사하고 삼차원은 정육면체(Cube)로 나타낼 수 있다.
      ※ 다차원 모델 : OLAP에서 일반적으로 큐브(Cube)로 명명한다.

-- 차원(Dimension)
    : 사용자가 분석하려는 항목에 대한 관점을 말한다.
    : 이차원에서 x, y축, 삼차원에서 x,y,z축(기간, 지역, 제품)을 의미한다.

-- 차원 멤버(Dimension Member[Element])
    : 차원을 구성하는 항목의 좌표값을 말한다.
    : 지역 차원의 멤버는 서울, 경기, 대구, 대전, 부산 등을 말한다.

-- 차원 계층 구조(Dimension Hierachy)
    : 한 차원의 멤버들간에 존재하는 부모-자식의 계층 구조를 말한다.
    : 하나의 차원이 여러 차원 계층 구조를 가지는 경우도 있다.
    : 년도-상/하반기-분기-월...
    : Consolidation(=Aggregatioin=Rolling up)에 사용된다.
      ※ 레벨(Level) : 계층구조는 여러 레벨(다단)을 사용하여 상위 계층과 하위 계층을 구분한다.

-- Measure/Variable
    : 분석하고자 하는 항목을 의미한다.
    : 매출액, 판매수량, 비용등.
    : 대부분의 경우 수집되는 수치데이터이다.
    : OLAP 제품에 따라 Measure, Variable, Fact, Account, Item, Structure 등으로 상용된다.

-- Attribute/Property
    : 하나의 차원에 대해 차원을 구성하는 항목들의 특성을 나타내는 정보를 의미한다.
    : 제품 차원에 대해 제품번호, 제품생산일자, 생산담당자 등이 Attribute이다.

-- Drill Down
    : Drill Down은 특정한 주제 영역에서 큰(요약된) 범위에서 작은(상세) 범위로 단계적 접근하는
      분석 방법을 말한다.
      (광역 -> 시도 -> 구 -> 동 -> 번지)

-- Roll Up
    : Roll Up은 Drill Down과 반대 방향(작은 범위 -> 큰 범위)의 단계적 접근 분석 방법을 말한다.
      (번지 -> 동 -> 구 -> 시도 -> 광역)
      ※ Drill Across : 다른 큐브에 접근하여 분석하는 방법
          Drill Through : DW나 OLAP의 상세 데이터에 접근하는 분석 방법(=Reach Through)
         
-- Pivot/Rotating
    : 분석 테이터의 을 바꾸는 것.
    : T-SQL문에서 Pivot/Unpivot과 동일한 의미.

-- Slice
    : Slice는 한 차원의 멤버나 그 이상의 멤버를 가지고 한 값을 선택했을 때 나타나는 그 부분
      집합을 말한다.

    : 제품 당당자가 특정 제품에 대해서 선택할 때 나타나는 지역과 기간에 대한 집합

-- Dice
    : Slice된 특정 항목에 대해 Rotation이나 Drill down, Roll up 등을 이용하여 대화식으로 화면을
      디스플레이 해가며 분석하는 프로세스를 말한다.

<Pic 2. Slice, Dice 예>

OLAP 제품 분류
ㅇ ROLAP  : Relational OLAP
ㅇ MOLAP : Multi-Dimensional OLAP
ㅇ HOLAP  : Hybrid OLAP
ㅇ DOLAP/Web OLAP/...

-- ROLAP : 관계형 데이터베이스나 확장된 관계형 데이터베이스를 사용해 다차원 모델링되는 데이터
    큐브를 테이블 형태로 저장 운용하는 방식을 말한다.
-- MOLAP : 데이터 큐브를 실제로 다차원 배열(Array)에 기반한 다차원 저장 엔진을 사용하여 저장
    운용하는 방식을 말한다.
-- HOLAP : ROLAP과 HOLAP을 혼용한 방식을 말한다.
-- DOLAP : Desktop OLAP으로 다차원 데이터 저장 및 프로세싱이 모두 클라이언트에서 이뤄진다.
-- Web OLAP : 인트라넷/인터넷 환경에서 지원되는 OLAP을 말한다.

<MOLAP과 ROLAP 비교> 출처 : OBCsoft

MOLAP ROLAP
다차원 OLAP(MDB기반의 OLAP),
Real Data Cube
관계형 OLAP(RDB기반의 OLAP),
Virtual Data Cube
다차원 data view를 미리 정의한 후 질의 수행
(예:영업실적을 제품/브랜드
/계절 /가계별로 검색 후 질의 수행)
강력하고 유연한 질의 기능
확장성 있는 다차원 구조
drill-down/pivoting/복잡한 회계연산 구현 가능 복잡한 회계연산 구현 불가
많은 공간 차지 (기본량의 5~10배 이상),
대용량 처리 불가
적은 공간 차지(기본량의 2배 이내),
대용량 처리 가능
차원 수와 값이 많아지면, 큐브(cube)
크기가 기하급수적으로 증가
차원 수와 관계없이 처리
그대로 다차원 분석 가능 다차원 분석을 위해서 데이터 모델링을 수행하는 스타
-스키마
(Star Schema), 스노우플레이크
- 스키마(Snowflake Schema) 필요
사용자 요구 변경 시 재 구축 사용자 요구 변경 시 쉽게 대처
재무 Application에 적합 끊임없이 데이터가 갱신되는 POS
(Point Of Sales) S/W 등의 마케팅
애플리케이션(Application) 에 적합
 

<Pic. 3 OLAP 제품별 특징> 출처 : OLAP Report

다차원 모델의 구성 내역
ㅇ 모델

ㅇ 차원(Dimension)
ㅇ 차원 항목(Member or Element)
ㅇ 셀(Cell)
ㅇ 계층구조(Hierachy)
ㅇ 레벨(Level)
ㅇ 애트리뷰트(Attribute)

-- 다차원 모델 구성시 상기에 언급된 내역들을 정의하고 구현해 나간다.

다차원 모델링
ㅇ 사실테이블(Fact Table) vs. 차원테이블(Dimension Table)
ㅇ Star 스키마 vs. SnowFlake 스키마

모델링 순서)
   ㅇ 차원 항목 결정
   ㅇ 데이터의 구체성 결정
   ㅇ 계층구조와 애트리뷰트 정의
   ㅇ 차원수 결정

-- 사실테이블(Fact Table) 
    : 스키마의 중심에 위치하며 유일하게 정규화 된다.
    : 저장되는 데이터는 대부분 운영에서 수집된 수치 데이터와 우선 집계된 데이터들이다.
    : 사실테이블의 키는 차원테이블의 키를 참조하는 복합키로 구성된다.

-- 차원테이블(Dimension Table)
    : 사용자 관점을 나타내는 차원에 관한 정보를 저장하고 사용자들이 분석을 시작하는 기준이
      되는 데이터들이다.
    : 정규화되지 않는다.(SnowFlake에서는 차원테이블을 정규화 한다.)
                   
-- Star 스키마
    : 사실테이블을 중심으로 여러 차원테이블과 조인한다.
    : 차원테이블을 정규화 하지는 않는다.

-- SnowFlake 스키마
    : Star 스키마의 변형으로 정규화된 차원테이블을 가진다.

<Pic 4. 스키마 셈플>

다차원 분석
ㅇ Slicing & Dicing

ㅇ Drill Down, Drill Up, Drill Across, Drill Through
ㅇ Sorting, Ranking
ㅇ OLAP Join

-- 위에서 언급된 내용는 다차원 분석에 필요한 질의 방법을 말한다.
-- OLAP Join : 질의 과정에서 다수의 큐브를 논리적으로 조인할 때의 질의를 말한다.

+ Recent posts