데이터 소스
데이터 소스: 데이터가 생성되고 저장되는 곳
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
- Segment
Logs
3rd Party APIs
Stripe
- 온라인 결제 서비스
- 미국 내 신용카드 결제에 있어 가장 유용
File and Object Storage
회사 내 애플리케이션들이 데이터를 파일로 저장하는 경우 이것도 데이터 소스가 될 수 있음