2 minute read

초창기에는 데이터베이스는:

  • 일반적으로 판매, 공급업체에 주문, 직원 급여 지급 등 상업적 거래와 관련됨

최근의 데이터베이스는:

  • 블로그 게시물, 게임의 액션, 주소록의 연락처 등 다양한 종류의 데이터에 사용되기 시작했다.
  • 기본적인 액세스 패턴은 비즈니스 트랜잭션 처리와 유사하다.
  • 애플리케이션은 일반적으로 인덱스를 사용하여 특정 키로 소수의 레코드를 조회한다.
  • 사용자의 입력에 따라 레코드가 삽입되거나 업데이트 된다.

이러한 애플리케이션은 대화형이기 때문에 트랜잭션 처리(OLTP)로 알려지게 되었다.

그러나 데이터 분석에도 데이터베이스가 점점 더 많이 사용되기 시작했으며, 이는 매우 다른 액세스 패턴을 가진다.

  • 분석 쿼리는 엄청난 수의 레코드를 스캔해야 한다
  • 집계 통계(예: 개수, 합계 또는 평균)를 계산해야 합니다. 예를 들어 1월에 각 매장의 총 매출을 파악하기 위해 쓰인다.
  • 비즈니스 분석가가 작성하며, 회사 경영진이 더 나은 의사 결정을 내리는 데 도움이 되는 보고서(비즈니스 인텔리전스)에 반영된다.

이러한 분석 목적의 데이터베이스 사용 패턴을 트랜잭션 처리와 구분하기 위해 온라인 분석 처리(OLAP)라고 부른다.

처음에는 트랜잭션 처리와 분석 쿼리 모두에 동일한 데이터베이스를 사용했다.
1980년대 후반과 1990년대 초반에 기업들은 분석 목적으로 OLTP 시스템을 사용하지 않고, 대신 별도의 데이터베이스에서 분석을 실행했다.
이 별도의 데이터베이스를 데이터 웨어하우스라고 불렀다.

데이터 웨어하우징

기업에는 수십 가지의 다양한 트랜잭션 처리 시스템이 있다.

  • 고객 대면 웹사이트를 구동하는 시스템
  • 오프라인 매장의 판매 결제 시스템 제어
  • 창고의 재고 추적
  • 차량 경로 계획
  • 공급업체 관리
  • 직원 관리

이러한 각 시스템은 복잡하고 이를 유지 관리하기 위한 팀이 필요하기 때문에 시스템은 대부분 서로 자동적으로 운영된다.

OLTP 시스템에 필요한 유지관리 부분:

  • 일반적으로 가용성이 높고 지연 시간이 짧은 트랜잭션을 처리할 수 있어야 한다.
  • 따라서 데이터베이스 관리자는 OLTP 데이터베이스를 면밀히 보호해야 한다.

비즈니스 분석가가 OLTP 데이터베이스에서 임시 분석 쿼리를 실행하는 것을 꺼리는 이유는 이러한 쿼리가 데이터 집합의 많은 부분을 스캔하여 동시에 실행되는 트랜잭션의 성능을 저해할 수 있는 경우가 많기 때문이다.

데이터 웨어하우스는 분석가가 OLTP 운영에 영향을 주지 않고 마음껏 쿼리할 수 있는 별도의 데이터베이스이다.
데이터 웨어하우스는 회사의 모든 다양한 OLTP 시스템에 있는 데이터의 읽기 전용 복사본을 보유한다.
주기적인 데이터 덤프 또는 지속적인 업데이트 스트림을 사용하여 OLTP 데이터베이스에서 데이터를 추출하고, 분석에 적합한 스키마로 변환하고, 정리한 다음, 데이터 웨어하우스에 로드한다.
데이터를 웨어하우스로 가져오는 이 프로세스를 추출-변환-로드(ETL)라고 한다.

데이터 웨어하우스는 이제 거의 모든 대기업에 존재하지만, 소규모 기업에서는 거의 찾아볼 수 없다. 왜냐하면:

  • 소규모 회사는 다양한 OLTP 시스템이 많지 않다.
  • 대부분의 소규모 회사에는 기존 SQL 데이터베이스로 쿼리하거나 스프레드시트로 분석할 수 있을 정도로 소량의 데이터만을 보유하기 때문.

OLTP 데이터베이스와 데이터 웨어하우스의 차이점

SQL은 일반적으로 분석 쿼리에 적합하기 때문에 데이터 웨어하우스의 데이터 모델은 가장 일반적으로 관계형이다.
데이터 웨어하우스와 관계형 OLTP 데이터베이스는 모두 SQL 쿼리 인터페이스를 가지고 있기 때문에 겉으로 보기에는 비슷해 보인다.
그러나 시스템 내부는 매우 다른 쿼리 패턴에 최적화되어 있기 때문에 상당히 다르게 보일 수 있습니다.
현재 많은 데이터베이스 공급업체는 트랜잭션 처리 또는 분석 워크로드 중 하나만 지원하는 데 중점을 두고 있다.

Teradata, Vertica, SAP HANA, ParAccel과 같은 데이터 웨어하우스 공급업체는 일반적으로 고가의 상용 라이선스를 통해 시스템을 판매한다.
Amazon RedShift는 ParAccel의 호스팅 버전이다. 최근에는 수많은 오픈 소스 SQL-on-Hadoop 프로젝트가 등장했으며, 상용 데이터 웨어하우스 시스템과 경쟁하는 것을 목표로 하고 있다. 여기에는 Apache Hive, Spark SQL, Cloudera Impala, Facebook Presto, Apache Tajo, Apache Drill 등이 포함된다.
이들 중 일부는 Google의 Dremel에서 아이디어를 기반으로 한다.