ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ChatGPT로 데이터 분석 공부하기 #14 DW/DM 설계 및 구축
    ChatGPT로 공부하기/데이터 분석 2024. 11. 18. 22:13

    데이터 웨어하우스(DW)데이터 마트(DM)는 데이터 분석과 비즈니스 인텔리전스(BI)를 위한 데이터 저장소 설계 및 구축에서 핵심적인 역할을 합니다. 이 두 개념은 데이터의 효율적인 관리, 분석, 보고를 지원하기 위해 설계됩니다.

    1. DW와 DM의 기본 개념


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

    • 정의: 기업의 다양한 소스에서 데이터를 통합하여 저장하는 중앙 집중식 저장소.
    • 목적: 대규모 데이터 통합 및 장기적인 데이터 저장, 분석 지원.
    • 특징:
      • 통합적: 여러 시스템에서 데이터를 가져와 통합.
      • 주제 중심적: 주요 비즈니스 주제(예: 매출, 고객, 제품) 중심으로 설계.
      • 시간 변화 가능: 데이터의 시계열 정보를 유지.
      • 비휘발성: 데이터를 변경하지 않고 추가만 함.

    (2) 데이터 마트(DM, Data Mart)

    • 정의: 데이터 웨어하우스에서 특정 주제나 부서에 맞게 데이터를 추출하여 저장한 소규모 저장소.
    • 목적: 특정 부서나 팀의 요구에 맞춘 데이터 제공.
    • 특징:
      • DW보다 작고 단순.
      • 주제 특화: 특정 주제(예: 마케팅, 영업)에 맞춤화.

    2. DW와 DM의 차이


     

    특징 DW DM
    규모 대규모 저장소 소규모 저장소
    범위 전사적 데이터 통합 특정 부서/팀 데이터
    구조 복잡 (다양한 소스와 통합) 단순 (특정 주제에 집중)
    구축 시간 장기적 프로젝트 단기적 프로젝트

    3. DW/DM 설계 과정


    (1) 요구 사항 분석

    • 비즈니스 요구사항 수집:
      • 주요 KPI 정의 (예: 매출, 고객 유지율).
      • 분석 보고서 요구사항 정의.
    • 데이터 소스 파악:
      • ERP, CRM, POS 시스템 등 다양한 소스에서 데이터를 수집.

    (2) 데이터 모델링

    DW/DM 설계의 핵심은 데이터 모델링입니다.

    1. 개념 모델: 비즈니스 개념 정의.
      • 예: 고객, 제품, 매출.
    2. 논리 모델: 데이터베이스 관점에서 데이터 관계 정의.
      • 스타 스키마(Star Schema):
        • 하나의 중심 테이블(Fact table)과 이를 참조하는 다수의 차원 테이블(Dimension table)로 구성.
        • 간단하고 직관적.
      • 스노우플레이크 스키마(Snowflake Schema):
        • 차원 테이블을 정규화하여 더 세분화.
        • 데이터 중복 감소, 성능은 다소 낮음.
    3. 물리 모델: 실제 데이터베이스에 데이터 구조 구현.
      • 예: SQL 테이블 생성.

    스타 스키마 예제:

    • 팩트 테이블: 매출 (Sales)
      • 매출ID, 제품ID, 고객ID, 매출액, 판매일
    • 차원 테이블: 제품 (Product), 고객 (Customer), 날짜 (Date)

    (3) 데이터 추출, 변환, 적재 (ETL)

    ETL은 DW/DM 구축에서 데이터를 준비하는 단계입니다.

    1. 추출(Extract):
      • 다양한 소스(예: CSV, 데이터베이스, API)에서 데이터를 수집.
      • 예: SQL로 데이터 가져오기.
    2. 변환(Transform):
      • 데이터 정제: 결측값 처리, 중복 제거.
      • 데이터 변환: 날짜 포맷 변경, 코드 통합.
    3. 적재(Load):
      • 변환된 데이터를 DW 또는 DM에 적재.
      • 예: SQL INSERT INTO 문을 사용하거나, 데이터 적재 도구 활용(AWS Redshift, Snowflake 등).

    (4) 데이터 분석 및 시각화

    DW/DM에서 데이터를 활용하여 비즈니스 인사이트를 제공합니다.

    • 쿼리 작성:
      • SQL을 사용하여 데이터 추출 및 분석.
      • 예:
      • SELECT ProductName, SUM(SalesAmount) AS TotalSales FROM Sales INNER JOIN Product ON Sales.ProductID = Product.ProductID GROUP BY ProductName;
    • BI 도구 활용:
      • Tableau, Power BI, Looker 등을 사용해 시각화.

    4. DW/DM 설계 시 고려 사항


    1. 성능 최적화:
      • 인덱스 설정, 데이터 파티셔닝 활용.
      • 쿼리 성능 테스트 및 최적화.
    2. 확장성:
      • 데이터가 증가하더라도 시스템이 확장 가능하도록 설계.
      • 클라우드 기반 데이터 웨어하우스(AWS Redshift, Google BigQuery) 활용.
    3. 데이터 품질:
      • 데이터 정합성 유지.
      • 데이터 품질 관리 프로세스 구축.
    4. 보안 및 권한 관리:
      • 민감 데이터 암호화.
      • 사용자 권한 설정.

    5. DW/DM 구축 실무 예제


    (1) 데이터 모델링

    -- 팩트 테이블 생성
    CREATE TABLE Sales (
        SalesID INT PRIMARY KEY,
        ProductID INT,
        CustomerID INT,
        SalesAmount DECIMAL(10, 2),
        SalesDate DATE
    );
    
    -- 차원 테이블 생성
    CREATE TABLE Product (
        ProductID INT PRIMARY KEY,
        ProductName VARCHAR(100),
        Category VARCHAR(50)
    );
    
    CREATE TABLE Customer (
        CustomerID INT PRIMARY KEY,
        CustomerName VARCHAR(100),
        Region VARCHAR(50)
    );
    

    (2) 데이터 적재

    -- 제품 데이터 삽입
    INSERT INTO Product (ProductID, ProductName, Category)
    VALUES (1, 'Laptop', 'Electronics'), (2, 'Chair', 'Furniture');
    
    -- 매출 데이터 삽입
    INSERT INTO Sales (SalesID, ProductID, CustomerID, SalesAmount, SalesDate)
    VALUES (1, 1, 101, 1200.50, '2024-01-01'), (2, 2, 102, 150.75, '2024-01-02');
    

    (3) 데이터 분석

    -- 카테고리별 매출 합계
    SELECT p.Category, SUM(s.SalesAmount) AS TotalSales
    FROM Sales s
    JOIN Product p ON s.ProductID = p.ProductID
    GROUP BY p.Category;
    

    6. DW/DM 도구


    • 데이터 웨어하우스: AWS Redshift, Google BigQuery, Snowflake
    • ETL 도구: Apache Airflow, dbt, Talend
    • BI 도구: Tableau, Power BI, Looker

    DW/DM 설계 및 구축은 데이터를 효율적으로 관리하고 분석 가능한 상태로 만드는 데 필수적인 과정입니다. 데이터를 적절히 설계하고 관리하면, 비즈니스 의사결정에 강력한 기반을 제공할 수 있습니다.

Designed by Tistory.