프로덕션 데이터베이스 & 데이터 웨어하우스
프로덕션 데이터베이스와 데이터 웨어하우스는 대표적인 관계형 데이터베이스이다. 같은 종류의 데이터베이스이지만, 기능 / 용도가 다르기 때문에 서로 다른 목적을 위해 사용된다. 이러한 프로덕션 데이터베이스와 데이터 웨어하우스의 개념과 사용 목적, 차이점을 알아보자.
프로덕션 데이터베이스 (Production Database)
개념
프로덕션 데이터베이스는 사용자에게 정보를 제공하기 위해 사용하는 데이터베이스로 처리 용량보다 처리 속도가 중요시한다.
- 대표적인 데이터베이스 : MySQL, PostgreSQL, Oracle 등
OLTP (Online Transaction Process)
프로덕션 데이터베이스는 OLTP에 속한다. OLTP는 온라인 뱅킹, 쇼핑, 주문 입력, 텍스트 메시지 전송 등 동시에 발생하는 다수의 트랜잭션을 실행하는 데이터 처리 유형이다. 트랜잭션의 그루핑된 연산의 실패 시 Rollback이 지원된다는 점이다. 주로 대규모의 처리보다는 소규모의 정교한 데이터 구성이 필요한 데이터 처리가 중점이 된다.
사용 목적
- 실시간 데이터 처리 : 사용자의 요청에 즉각적으로 응답하기 위해 빠른 데이터 읽기 및 쓰기 성능 제공
- 트랜잭션 관리 : 데이터 일관성과 무결성을 유지하기 위해 ACID 속성 지원
데이터 웨어하우스 (Data Warehouse, DW)
개념
데이터 웨어하우스는 데이터 분석을 위해 사용하는 데이터베이스로 처리 속도보다 처리 용량이 중요시한다. 보통 프로덕션 데이터베이스를 복사해서 데이터 웨어하우스에 저장한다.
- 대표적인 데이터베이스 : Redshift, BigQuery, Snowflake 등
OLAP (Online Analytical Process)
데이터 웨어하우스는 OLAP에 속한다. OLAP는 데이터를 분석하고 의미 있는 정보로 치환하거나 복잡한 모델링이 가능하게 하는 분석 방법을 말한다. 주로 대용량의 데이터를 처리하고, 복잡한 데이터 처리로 의미를 추출하는데 중점을 둔다.
사용 목적
- 데이터 통합 : 다양한 데이터 소스로부터 데이터를 수집하여 일관된 형식으로 저장
- 데이터 분석 : 복잡한 쿼리와 데이터 분석 작업을 효율적으로 처리
비교
데이터 저장 방식
- 프로덕션 데이터베이스 : 데이터를 테이블의 행(레코드) 단위로 저장
- 행 단위로 데이터에 접근하므로 단일 레코드의 읽기 / 쓰기가 빈번한 트랜잭션 시스템에 적합
- 특정 레코드의 데이터를 빠르게 수정 가능
- 데이터 웨어하우스 : 데이터를 테이블의 열(컬럼) 단위로 저장
- 레코드를 추가하는 것보다 데이터 전체를 업데이트(COPY) 하는 방식이 적합
- 분석 쿼리는 특정 열 데이터를 조회하는 경우가 많기 때문에 조회 성능이 크게 향상
- 같은 열의 값은 유사한 데이터가 많아 압축 효율이 높음
Primary Key Uniqueness
- 프로덕션 데이터베이스
- Primary Key Uniqueness가 깨지면 에러 발생
- 만약 id가 1234인 row가 존재하는데, 또 1234가 저장될 경우 에러 발생
- 데이터 웨어하우스
- Primary Key Uniqueness가 깨져도 에러 발생 X
- 대용량 적재를 목적으로 하기에 Uniqueness를 보장하는데 비용이 큼
- Uniqueness 보장은 개발자의 책임
CREATE TABLE products (
id INT PRIMARY KEY,
name VARCHAR(50),
price decimal(7, 2)
);
프로덕션 데이터베이스 vs 데이터 웨어하우스
특징 | 프로덕션 데이터베이스 | 데이터 웨어하우스 |
목적 | 실시간 트랜잭션 처리 및 운영 업무 지원 | 데이터 분석 및 비즈니스 인텔리전스 |
데이터 구조 | 정규화된 테이블 구조 | 비정규화된 테이블 구조 |
주요 기능 | 트랜잭션 관리, 빠른 읽기/쓰기 | 데이터 통합, 복잡한 쿼리 분석 |
데이터 업데이트 | 빈번한 읽기 및 쓰기 작업 | 주기적인 데이터 로드 및 갱신 |
사용자 | 운영자, 애플리케이션 사용자 | 데이터 분석가, 비즈니스 인텔리전스 팀 |
데이터 최신성 | 실시간 데이터 | 주기적으로 갱신된 데이터 |
트랜잭션 유형 | 짧고 빈번한 트랜잭션 | 긴 쿼리와 분석 작업 |
성능 최적화 | 빠른 트랜잭션 처리 | 빠른 데이터 조회 및 분석 |
Reference
https://too612.tistory.com/511
https://www.oracle.com/kr/database/what-is-oltp/
'CS > 데이터베이스' 카테고리의 다른 글
[MySQL] CHAR vs VARCHAR (0) | 2024.11.25 |
---|---|
[DB] Redshift 특정 테이블의 권한 생성 문제 근본적인 해결법 (0) | 2024.11.19 |
[DB] Redshift 특정 테이블의 권한이 생성되지 않는 문제 (0) | 2024.10.30 |
[DB] Redshift에 생성된 Schema와 Table 정보 확인 방법 (0) | 2024.08.06 |
[DB] 생활코딩 - 관계형 데이터 모델링 (3) | 2024.07.14 |