본문 바로가기

Architecture for Software/Google BigQuery

구글 빅쿼리(Google BigQuery) 와 OLTP

OLTP(Online Transaction Process)
실시간으로 트랜잭션을 처리하는 데이터베이스 시스템

 

OLTP란

OLTP는 완전무결하게 거래(Transaction)을 처리하기 위해서 사용하는 데이터베이스 시스템입니다.

OLTP는 데이터가 무결하며, 데이터의 추가(INSERT)나 변경(UPDATE)가 많이 발생합니다.

 

OLTP(Online Transactional Processing)는 ATM 및 온라인 뱅킹, 금전 등록기, 전자상거래 그리고 우리가 매일 상호작용하는 수많은 기타 서비스를 위한 신속하고 정확한 데이터 처리를 가능하게 합니다.

OLTP(Online Transactional Processing)는 일반적으로 인터넷을 통해 많은 사람들이 많은 데이터베이스 트랜잭션을 실시간으로 실행할 수 있도록 지원합니다.

 

데이터베이스 트랙잭션은 데이터베이스에서 데이터를 변경, 삽입, 삭제 또는 쿼리하는 것을 말합니다. OLTP 시스템(그리고 OLTP 시스템이 지원하는 데이터베이스 트랜잭션)은 온라인 뱅킹 및 ATM 트랜잭션, 전자상거래 및 오프라인 구매, 호텔 및 항공권 예약 등 우리가 매일 수행하는 금융 거래 중 다수를 지원합니다. 각각의 경우에 데이터베이스 트랜잭션은 또한 해당 금융 트랜잭션의 레코드로 남아 있습니다. OLTP는 또한 비밀번호 변경 및 문자 메시지와 같은 비금융 데이터베이스 교환도 지원합니다. 

 

OLTP에서 모든 데이이터베이스 트랜잭션을 정의하는 공통된 특징은 원자성 (또는 분할 불가능성)입니다. 즉, 트랜잭션은 전체로서 성공하거나 실패합니다(또는 취소됩니다). 트랜잭션은 보류 또는 중간 상태에 머물 수 없습니다.

 

OLTP는 데이터웨어하우스와 달리 분석을 위해서 만든 데이터베이스 시스템이 아니어서 빅데이터 처리 시 속도가 느릴 수 있습니다.

 

OLTP의 특성

  • 높은 성능: 트랜잭션 처리 속도가 빠르고 지연 시간이 짧아야 합니다.
  • 높은 안정성: 시스템 오류나 데이터 손실 없이 24시간 365일 운영되어야 합니다.
  • 높은 확장성: 트랜잭션 처리량 증가에 맞춰 시스템을 쉽게 확장할 수 있어야 합니다.
  • 높은 보안성: 데이터 무결성과 보안을 유지해야 합니다.

 

OLTP의 사용 기술

  • 관계형 데이터베이스: 트랜잭션 데이터를 저장하고 관리하는 데 사용됩니다.
  • 트랜잭션 처리 모니터(TPM): 트랜잭션 처리를 관리하고 제어하는 데 사용됩니다.
  • 클러스터링: 시스템 성능과 확장성을 향상시키기 위해 여러 서버를 연결하여 사용하는 기술입니다.

 

OLTP 시스템의 주요 특징

온라인 트랜잭션 처리 시스템의 주요 특징은 다음과 같습니다:

  • ACID 준수: OLTP 시스템은 전체 트랜잭션이 올바르게 기록되었는지 확인해야 합니다. 트랜잭션이란 일반적으로 여러 단계 또는 작업의 실행을 필요로 하는 단일 프로그램의 실행을 의미합니다. 트랜잭션은 모든 당사자가 트랜잭션을 확인하거나, 제품/서비스가 전달되었거나, 데이터베이스 내 특정 테이블에서 특정 수량의 업데이트가 이루어졌을 때 완료됩니다. 포함된 모든 단계가 실행 및 기록된 경우에만 트랜잭션이 올바르게 기록됩니다. 한 단계에라도 오류가 발생한다면 전체 트랜잭션은 중단되어야 하고, 모든 단계가 시스템에서 삭제되어야 합니다. 따라서 OLTP 시스템은 원자성, 일관성, 고립성, 영속성(ACID)을 준수하여 시스템 내 데이터의 정확성을 보장해야 합니다.
    • 원자성: 원자성 제어는 트랜잭션 내 모든 단계가 하나의 그룹으로서 성공적으로 완료되도록 보장합니다. 트랜잭션 사이의 단계가 실패하는 경우 다른 모든 단계 역시 실패하거나 복원되어야 한다는 뜻이죠. 성공적인 트랜잭션 완료를 커밋이라고 부르고, 트랜잭션 실패는 중단이라고 부릅니다.
    • 일관성: 트랜잭션은 데이터베이스의 내부 일관성을 유지합니다. 처음부터 일관성 있는 데이터베이스에서 트랜잭션이 자체 실행되도록 할 경우, 트랜잭션이 데이터베이스 실행을 완료했을 때도 여전히 일관성이 유지됩니다.
    • 고립성: 트랜잭션은 다른 트랜잭션 없이 단독으로 실행되는 것처럼 행동합니다. 즉 트랜잭션 세트를 실행하는 것과 한 번에 하나의 트랜잭션을 실행하는 것이 같은 효과를 내죠. 이러한 동작을 직렬화 성질이라고 하며 일반적으로 테이블의 특정 행을 잠그는 방식으로 구현됩니다.
    • 영속성: 트랜잭션이 실패한다 해도 트랜잭션의 결과가 손실되지 않습니다.
  • 동시성: OLTP 시스템은 동일한 데이터에 동시에 액세스하려는 수많은 사용자들을 수용할 수 있습니다. 시스템은 해당 시스템에서 읽기 또는 쓰기 작업을 하려는 모든 사용자가 동시에 원하는 작업을 할 수 있게 해주어야 합니다. 동시성 제어는 데이터베이스 시스템 안의 동일한 데이터를 두 명의 사용자가 동시에 액세스하는 경우 데이터를 변경할 수 없게 하거나, 한 사용자가 처리를 완료한 후에만 다른 사용자가 데이터를 변경할 수 있게 합니다.

  • 확장성: OLTP 시스템은 시스템에 액세스하려는 사용자 수와 관계없이 트랜잭션 볼륨을 실시간으로 관리하고 트랜잭션을 동시에 실행하기 위해 즉시 확장 및 축소할 수 있어야 합니다.

  • 가용성: OLTP 시스템은 항상 트랜잭션을 수락할 수 있도록 늘 가용한 상태로 준비되어 있어야 합니다. 트랜잭션의 손실은 수익 손실 또는 법적 책임으로까지 이어질 수 있습니다. 트랜잭션은 언제든 전 세계 어느 곳에서나 실행될 수 있기 때문에 시스템 역시 연중무휴 24시간 내내 사용할 수 있어야 합니다.

  • 높은 처리량 및 짧은 응답 시간: OLTP 시스템은 기업 사용자들의 생산성을 유지하고 고객의 높은 기대치를 충족하기 위해 10밀리초 미만의 응답 시간을 필요로 합니다.

  • 신뢰성: OLTP 시스템은 일반적으로 매우 선택적으로 소량의 데이터만을 읽고 조작합니다. 언제 사용자 및 애플리케이션이 해당 데이터에 액세스하더라도 데이터베이스 내의 데이터를 신뢰할 수 있어야 한다는 점이 대단히 중요합니다.

  • 보안성: 이러한 시스템은 매우 민감한 고객 트랜잭션 데이터를 저장하기 때문에 데이터 보안성이 핵심입니다. 어떠한 종류든 데이터 침해가 발생하면 기업은 이에 관해 대단히 큰 비용을 치르게 되죠.

  • 복구성: OLTP 시스템은 어떤 종류의 하드웨어 또는 소프트웨어 오류가 발생하더라도 시스템을 복구할 수 있어야 합니다.

 

 

빅쿼리와 OLTP 비교

구글 빅쿼리는 OLTP가 아닙니다.

구글 빅쿼리는 데이터 분석에 특화된 데이터 웨어하우스 입니다.

 

  OLTP BigQuery
(DW)
주요 용도 트랜잭션 처리 (주문, 결제 등) 데이터 분석
데이터 저장 방식 행 기반 컬럼 기반
쿼리 성능 적은 양의 데이터에 최적화 대량의 데이터에 최적화
업데이트 실시간 업데이트 가능 주기적으로 업데이트
확장성 수평 확장 가능 수평 확장 가능

 

 

데이터 웨어하우스(Data Warehouse; DW) 란

데이터 웨어하우스는 다양한 소스의 데이터를 통합하여 분석에 활용할 수 있도록 저장하고 관리하는 시스템입니다.

쉽게 말하면, 기업의 다양한 부서에서 발생하는 데이터를 한 곳에 모아 분석할 수 있도록 정리해 놓은 곳이라고 생각하면 됩니다.

 

데이터 웨어하우스를 사용하면 다음과 같은 장점을 얻을 수 있습니다.

  • 데이터 기반 의사 결정: 과거 데이터를 분석하여 미래 트렌드를 예측하고, 이를 바탕으로 더 나은 의사 결정을 내릴 수 있습니다.
  • 비즈니스 운영 효율 향상: 데이터 분석을 통해 비효율적인 부분을 파악하고 개선하여 운영 효율을 높일 수 있습니다.
  • 새로운 사업 기회 발굴: 데이터 분석을 통해 새로운 고객층이나 시장을 발굴하여 새로운 사업 기회를 창출할 수 있습니다.

 

데이터 웨어하우스(Data Warehouse; DW) 의 구성 요소

데이터 웨어하우스는 크게 3가지 구성 요소로 이루어져 있습니다.

  • 데이터 수집: 다양한 소스의 데이터를 수집하고 정제하는 과정입니다.
  • 데이터 저장: 수집된 데이터를 저장하고 관리하는 과정입니다.
  • 데이터 분석: 저장된 데이터를 분석하고 결과를 시각화하는 과정입니다.