모든 분석 팀이 공유하는 어휘
Kimball 의 dimensional model 은 30년째 분석 테이블의 표준 mental model 이야. 그 어휘 — fact 테이블, dimension 테이블, grain, conformed dimension — 는 모든 warehouse, 모든 dbt 프로젝트, 모든 BI 도구에 나와. 한 번 익혀 두면 평생, 어느 팀에 가든 대화가 바로 통해.
두 종류의 테이블
- Fact 테이블엔 일어난 일이 담겨 — 주문, 페이지뷰, 결제, 센서 reading. Row 하나가 이벤트나 측정 하나야. Column 은 대부분 숫자 (measure) 에 dimension 테이블로 가는 foreign key.
- Dimension 테이블엔 서술하는 맥락이 담겨 — 고객, 제품, store, 날짜. Row 하나가 이벤트가 아니라 사물 하나야. Column 은 대부분 속성 (이름, 나라, 카테고리, 색).
Grain — 제일 중요한 단어
Fact 테이블의 grain 은 row 하나가 뭘 나타내는지야. "주문당 한 row" 가 하나의 grain 이고, "주문 line item 당 한 row" 는 다른 grain 이고, "고객당, 일자당 한 row" 는 또 다른 grain 이야. Grain 을 틀리면 그 테이블 위에서 계산하는 모든 metric 이 미묘하게 어긋나 — row 가 엉뚱한 수준에서 합쳐지니까. 새 fact 테이블을 만들 때 제일 먼저 적는 건 grain 이야 — 한 문장으로, schema 맨 위에.
Conformed dimension
Conformed dimension 은 여러 fact 테이블이 같은 key 로 함께 쓰는 dimension 테이블이야. orders fact 테이블에도 그리고 support_tickets fact 테이블에도 join 되는 customers dimension 이 conformed 야. 여러 source 의 신호를 묶는 "customer-level" metric 을 — 리포트마다 짜깁기 로직을 새로 발명하지 않고 — 얻는 길이 이거야.