포스트

2023-09-05-TIL

Today I Learned

OLAP

OLAP(Online Analytical Processing)는 대량의 데이터에 복잡한 질의나 다차원 분석을 빠르게 수행하기 위한 기술이다. IBM의 설명은 데이터 웨어하우스나 데이터 레이크에 쌓인 데이터를 비즈니스 인텔리전스, 의사 결정 지원, 리포팅에 쓰는 용도로 소개한다.

대비되는 개념이 OLTP(Online Transaction Processing)다. OLTP는 주문, 결제, ATM 거래처럼 지금 일어나는 트랜잭션을 빠르게 처리하는 데 맞춰져 있고, OLAP는 이미 쌓인 이력 데이터를 분석하는 데 맞춰져 있다. 서비스 DB에서 무거운 집계 쿼리를 돌리면 트랜잭션 처리가 느려지기 때문에 분석용 저장소를 따로 두는 이유가 여기에 있다.

OLAP의 중심에는 OLAP 큐브가 있다. 지역, 시간, 상품처럼 분석 기준(차원)마다 축을 두고, 각 칸에 매출 같은 값을 둔 다차원 배열이다. 큐브에서 자주 쓰는 연산은 다음과 같다.

  • 드릴다운: 연도에서 월, 일로 내려가며 더 자세히 본다.
  • 롤업: 반대로 위 단계로 올라가며 합계를 본다.
  • 슬라이스: 한 차원의 값 하나를 골라 잘라 본다. 예를 들어 “2023년”만 본다.
  • 다이스: 여러 차원에서 범위를 골라 작은 큐브를 만든다.
  • 피벗: 축을 돌려서 다른 관점으로 본다.

구현 방식은 미리 큐브를 만들어 두는 MOLAP, 관계형 테이블에서 바로 계산하는 ROLAP, 둘을 섞은 HOLAP로 나뉜다. MOLAP는 빠르지만 미리 계산할 공간과 시간이 들고, ROLAP는 더 큰 데이터를 다룰 수 있지만 느리다.

  • https://www.ibm.com/kr-ko/topics/olap

Today’s Information

Books

Go 언어 책 두 권을 메모해 두었다.

  • 『클라우드 네이티브 Go』(매슈 A. 티트머스 지음, 노승헌 옮김, 동양북스, 2023): 불안정한 환경에서 신뢰할 수 있는 서비스를 만드는 방법을 Go로 다룬다. 분산 키-값 저장소를 직접 구현하는 예제가 이어진다.
  • 『실무에 바로 쓰는 Go 언어 핸즈온 가이드』(아미트 사하 지음, 김찬빈 옮김, 제이펍, 2022): 원서는 Practical Go다. 명령줄 애플리케이션, HTTP 서비스, gRPC 애플리케이션을 만드는 과정을 다룬다.

  • https://www.yes24.com/Product/Goods/118413443
  • https://www.yes24.com/Product/Goods/116073183
이 글은 저작권자의 CC BY 4.0 라이선스를 따릅니다.

댓글

아직 댓글이 없습니다