OLTP, Online Trasaction Process는 직역하면 온라인 트랜잭션 처리가 된다. (Process만 직역됐네...)
약간 풀어서 정의하면, 네트워크상에서 발생하는 시스템 사용자들 간의 트랜잭션 데이터 처리이다. OLAP과 비슷한 용어지만 정의하는 방향성이 다르다고 생각된다. OLAP은 데이터 분석 목적에 중심을 두는 기법에 가까우며, OLTP는 데이터를 처리하는 방법과 그 의미에 중심을 둔다.
예를 들어, 기업 현업 담당자들은 업무로 인해 발생하는 데이터를 Application나 S/W를 통해 입력하고 그 데이터는 DB에 Real-Time으로 저장/처리 될 것이다. 이때 발생한 데이터를 Transaction Data라고 하며 일련의 과정을 OLTP라고 한다.
그렇다면 Transaction은 무엇인가?
보통 설명할 때 ACID (Atomicity, Consistency, Isolation, Durability)를 많이 이용한다. 이는 데이터의 특징을 말할 때 쓰기도 한다.
- Atomicity (원자성) : [1. 트랜잭션 발생 → 2. 데이터를 DB에 Insert → 3. 데이터 저장 완료] 까지 처리되는 과정에서 무언가의 오류가 발생되었다면, 도중까지의 데이터는 저장하고 나머지는 다시 시도하는게 아니라 전부 Rollback 시키는 것을 말한다. 즉 데이터의 완전 보장성이다. 다른말로 All or Nothing.
- Consistency (일관성) : 쉽게 말해서 트랜잭션으로 발생한 데이터는 정해진 DB와 이미 만들어진 테이블에 저장된다. 그 테이블 스키마에는 Primary Key가 정해져 있다. 이 PK는 중복이 되거나 Null값이 들어가면 무결성 오류가 된다. 그러므로 이러한 테이블의 Rule에 입각하여 일관성 있는 데이터를 생성 및 처리 해야 됨을 말한다.
- Isolation (고립성) : Isolation은 트랜잭션 처리가 발생하는 동안에, 외부에서 이 트랜잭션에 간섭할 수 없다는 특성을 말한다. 쉬운 예로 ATM에서 총 액 100만원인 계좌에서 돈을 인출하는 트랜잭션을 발생 시킬떄, 누군가 먼저 인출할 수 없다.
- Dutability(지속성) : 성공적으로 수행된 트랙잭션은 앞으로도 계속 반영되어야 함을 뜻한다.
은행권의 입/출금 같은 끊임없이 트랜잭션이 발생하여 거의 Real-Time인 OLTP도 있고 밤 늦게 데이터가 한꺼번에 입력되는 OLTP도 있다.
***** OLTP나 OLAP에서 Online이란 단어는 인터넷을 사용하거나 다른 사용자와 통신을 할 수있는 상태를 뜻하는 Online이 아니다. 이 단어가 생겼을 무렵의 Online은 "대화식"을 말했다. Request가 오면 시간안에 Response를하는 데이터 이동/처리 방식의 형태이다.
'ETL 사전지식' 카테고리의 다른 글
ODS(Operational Data Store) (0) | 2020.05.15 |
---|---|
ETL이란 (0) | 2020.05.15 |