Database - OLTP / OLAP

정현철·2023년 4월 16일
0

Database Project

목록 보기
2/7

OLTP(Online Transaction Processing)

  • TPC-C가 시뮬레이션하는 것이 이 OLTP workload이다.
  • 데이터를 빠르고 정확하게 처리(SELECT, INSERT, UPDATE, DELETE)하기 위해, 많은 양의 간단한 Transaction을 사용하는 시스템.
  • read/write workloads가 섞여있다.
  • ATM기기, 온라인 뱅킹, 온라인 쇼핑 등

직역하면 온라인 트랜잭션 처리인데, 예를 들어 ATM의 입금 과정을 보자.

1) 통장이나 카드 인식 2) 통장 확인 3) 입금 4) 입금 적용 및 확인

이 단계들은 중간에 멈출 수 없으며, 오류가 나거나 다른 외부 사정으로 인해 멈췄다면 이전에 진행된 단계를 무효화(Rollback)해야 한다. 만약 모두 정상적으로 수행했다면 이 작업을 확정(Commit)해야 한다. 이러한 일련의 과정(예시에서의 네 과정)을 하나의 transaction이라고 하며, 이러한 트랜잭션을 수행하는 과정을 OLTP라고 한다.

1개의 트랜잭션에서 발생되는 INSERT, UPDATE, DELETE의 과정을 무결성을 보장하여 처리하고 그 결과를 SELECT 하는 과정

OLAP(Online Analytical Processing)

  • 기본적으로 Analytical system이다. 특정 데이터를 분석하는 데 목적이 있음.
  • 복잡한 query들을 사용해서 historical data들을 분석하는데, 읽고 쓰고 반영하고 하는 것이 아니라 오직 SELECT를 기반으로 한다.
  • 그래서 거대하고 방대한 데이터에 대한 Heavy read workloads라고 할 수 있다.
  • Sales analysis, Market 리서치 등

직역하면 온라인 분석 처리정도로 이해할 수 있다. OLTP는 데이터의 '처리'이고, OLAP는 이미 저장된(historical) 데이터를 분석하는 것.

OLAP는 기존에 저장되어 있는 데이터를 사용자의 요구와 목적에 맞게 분석하여 정보를 제공하는 개념

Reference: https://too612.tistory.com/511

Access Patterns

  • 둘 다 indexes를 사용하지만, 그들의 접근 방식과 데이터 사용 방식은 다르다.

  • OLTP는 random read/write workload

    • 일반적으로 2KB~16KB크기의 작은 사이즈 request들로 이루어진 랜덤 액세스로 구성된다.
    • 그리고 index scans를 사용한다.
  • OLAP는 heavy-read workload

    • 일반적으로 방대한 데이터에 순차적으로 접근하는 과정으로 구성된다.
    • 그래서 full table scans를 사용한다.

0개의 댓글