A Unified Data Infrastructure Architecture

데이터 소스: 데이터가 생성되고 저장되는 곳

Sources

OLTP Database via CDC

OLTP 예시

ex. 은행 계좌에서 이체할 때

A 계좌의 출금과 B 계좌의 입금이 동시에 정확하게 일어나야 함

두 가지 오퍼레이션이 하나의 트랜잭션으로 일어나야 함

그것을 처리해주는 데이터베이스를 OLTP라고 함

OLTP vs OLAP

  • OLTP
    • 트랜잭션 중심
    • 정규화된 데이터로 구성
    • 수많은 테이블로 되어 있음
  • OLAP
    • 정보 중심
    • 데이터가 많음
    • 정규화되지 않은 데이터들로 구성
    • 복잡한 분석 쿼리

CDC (Change Data Capture)

OLTP에서 일어나는 대부분의 행동들은 데이터가 업데이트되는 일들임

업데이트 발생 시 업데이트된 내용들만 Change Event를 가져다가 외부 DB로 복사하는 기술

OLTP DB는 트랜잭션을 기록하는 데에만 집중되어 있고 그 트랜잭션 데이터를 다른 곳에 사용할 수 없음

OLTP 데이터의 변경 부분만 다른 데이터베이스로 보내주는 것이 CDC

CDC를 통해서 OLTP 데이터를 분석 DB로 보내어 처리할 수 있음

Applications/ERP

  • 종류: Oracle, Salesforce, Netsuite 등

ERP vs CRM

  • ERP: 전사적 자원 관리
    • 회사에서 일어나는 모든 자원들을 관리
  • CRM: 고객과 관련된 판매, 마케팅 등을 모두 처리

Event Collectors

Applications/EPR가 비즈니스 사이드에서 생성되는 데이터였다면,

Event Collectors는 사용자가 만들어내는 모든 데이터를 Collect

  • 분석 제품군의 종류: Google Analytics, Facebook Pixel, Amplitude, Braze, Adjust, Appsflyer
  • Event Collector의 종류
    • Segment
      • 모바일 페이지 뷰와 웹 페이지에서 보는 것들이 Segment API를 통해 Google Analytics, Facebook Pixel 등 분석 제품군으로 보내짐
      • 분석 제품군에 대해 각각의 코드를 작성할 필요 없이 하나의 코드로 모든 데이터를 취합하고 RAW 데이터를 저장해 뒀다가 쓸 수 있음
      • 대부분의 솔루션들과 연결되어 있음
      • Active users 수에 대해 가격 부과
    • Snowplow
      • 오픈소스
      • 구조는 Segment와 유사
    • RudderStack
      • 오픈소스
      • Snowplow보다 상대적 장점
        • Replay 기능: 아카이브된 이전 분석 데이터를 새로운 분석 도구에 Backfill

Logs

3rd Party APIs

Stripe

  • 온라인 결제 서비스
  • 미국 내 신용카드 결제에 있어 가장 유용

File and Object Storage

회사 내 애플리케이션들이 데이터를 파일로 저장하는 경우 이것도 데이터 소스가 될 수 있음