GH GambleHub

메트릭 아키텍처

메트릭 아키텍처

메트릭 아키텍처는 모호하지 않은 정의, 재현 가능한 계산, 투명한 액세스 및 조직 전체의 안정적인 지표 작동을 제공하는 규칙, 아티팩트 및 서비스 시스템입니다. 목표는 "MAU", "Retention D30" 또는 "ARPPU" 가 모든 대시 보드, 실험 및 보고서에서 동일하게 간주되는 것입니다.

1) 원칙

1. 공식 및 참고 서적에 대한 단일 진실의 근원.
2. 구현과 의미론의 분리: 비즈니스 정의는 모든 SQL/랩톱이 아닌 의미 계층에 있습니다.
3. 관리되는 히스토리 마이그레이션으로 메트릭, 스키마 및 공식 (v1 → v2) 을 수정합니다.
4. 재현성 및 테스트 가능성: 계산은 결정 론적이며 테스트에서 다룹니다.
5. 관찰 가능성: SLO 및 경고와 함께 신선도, 충만, 일관성 및 드리프트.
6. 보안 및 개인 정보 보호: PII 최소화, RLS/CLS, 감사.
7. 코드로서의 운영 체제: CI/CD가있는 저장소의 정의, 변환, 정책.

2) 아키텍처 레이어

소스 데이터: 이벤트/트랜잭션, 참고 서적, 모델 로그/인프라.
통합 및 청소: CDC/증분 하중, 제거, 시간대 통일.
데이터 모델 (DWH): 별/눈송이, 천천히 변화하는 측정 (SCD), 대리 키.
시맨틱 메트릭 계층: 균일 한 정의, 집계, 필터, 타임 그레인, 롤업 로직.
디자인 레이어: 배치/마이크로 패치/스트림; 창문, 워터 마크, 열쇠.
카탈로그 및 사전: "여권 지표", 계보, 소유자, 권리.
액세스 및 소비: BI/대시 보드, API 메트릭, 업로드, 실험/AB.

3) 데이터 및 메트릭 계약

소스 계약 (이벤트/테이블)

스키마: 필드, 유형, nullity, 기본 키.
SLA: 신선도 (예: "지연 10 분 지연"), 주파수, 최대 지연 도착.
품질: 주요 고유성, 유효한 값 도메인, 시간대, demempotency.
변경: 계획 진화 정책 (뒤로/앞으로), 편차 계획.

미터 계약

이름/ID: 'RET _ D30 _ v2'

Domaine/소유자: 제품 분석

정의 (인간 언어)

공식: SQL/pseudocode + 입력 상점/시맨틱 객체

세분성/시간적 논리: 주간/주; 포인트 인 타임 규칙, 시간대

기본 세그먼트/필터

단위 및 통화 (전환율/날짜)

SLO: 신선도

버전/기록 변경/유효 날짜

가드 레일: 유효한 범위, Winzorization 규칙 p1/p99

4) 시맨틱 메트릭 레이어

계층의 작업은 정의 및 집계 규칙을 중앙에 저장하는 것입니다

요소: 치수 (날짜, 국가, 플랫폼), 사실 (이벤트, 수익), 지표 (ARPU, 유지 D30), 계산 된 필드, 일정 (일/주말, 공휴일).
시간 동작: 캘린더 테이블, 지연, 코호트, "슬라이딩" 창 (7/30/90).
롤업 및 일관성: 이중 계산 (별개의 사용자) 을 제외하고 일 = 월 단위로 계산하십시오.
혼합 조정: 정직한 YoY를 위해 채널/국가의 지속적인 혼합으로 정규화.
다중 요금/가로: 거래일에 기본 통화로 조정; 로컬 및 "표준" UTC 슬라이스.

5) 계산: 배치, 마이크로 패치, 스트림

배치: 야간/시간별 작업, 전체/증분 재 계산, demempotency 제어.
Microbatch: 작동 대시 보드의 경우 1-15 분 창.
스트림: 타이어를 통한 이벤트; 창 (텀블링/슬라이딩/세션), 워터 마크 (늦은 데이터), 정확히 한 번 의미론 (교착 상태 + 오프셋 저장소).

창 패턴:
  • 작동 KPI를위한 'HOP 5m, WINDOW 1 h';
  • 일일 지표에 대한 'TUMBLE 1d';
  • 세션을위한 'SESSION 30m'.

6) 품질과 검증 가능성

데이터 테스트: 회로도, 도메인 (범위), 참조 링크.
측정 항목 테스트: 불변 (DAU 계수 MAU), 비어 있지 않은 세그먼트, 단조로운 기대 (누적).
조정: 의미 계층과 참조 보고서/회계 사이.
데이터 상태: 신선도, 완전성, 중복, 분수, 비정상적인 점프.
드리프트 메트릭: 주요 기능, 특히 ML 메트릭의 PSI/KL/JS.

7) 이주 및 이주

포뮬러 버전은 'METRIC _ 이름 _ vN' 입니다. 버전을 변경하지 않고 정의를 "조용히" 변경하는 것은 금지되어 있습니다.

마이그레이션 전략:
  • 나란히: v1과 v2는 병렬로 계산됩니다. 사용자의 화해 및 교육이 수행됩니다.
  • 컷오버: 낮은로드 창에서 소비자를 v2로 전환; 압축 파일 v1.
  • 역사의 재 계산: 과거 데이터에 따른 백필; 차이 프로토콜 (diff report).
  • 커뮤니케이션: 변경 로그, 입국 날짜, 영향을받는 사람, 지침.

8) 측정 데이터 모델

사실: 곡물 (이벤트 _ id, 트랜잭션 _ id, 사용자 _ day), 이벤트 시간, 합계/값.
차원: 사용자, 장치, 지리, 채널, 제품, 캘린더; 역사를위한 SCD 유형.
키: 대리 ID, 안정적인 비즈니스 키, 매핑 테이블.
중복 방지: 신원 규칙 (사용자 병합), 세션 "접착" 창.

9) 단위, 통화, 계절성

단위/형식: 명시 적 단위, 반올림, 스케일 (로그/선형).
다중 요율: 거래일에 환율로 전환; "원시" 및 정규화 된 금액을 모두 저장하십시오.
계절성: YoY 및 계절 지수; 별도의 "휴일" 효과.

10) 보안 및 액세스

RLS (Row-Level Security): 국가/브랜드/파트너 별 메트릭에 대한 액세스.
칼럼 레벨 보안 (CLS) -마스킹 PII/금융 분야.
감사: 누가 메트릭을 요청했는지, 어떤 필터가 데이터를 내보냈는지.
API 차별화: "역할별 집계" 대 "상세 업로드".

11) 관찰 및 SLO

SLO 신선도: 예를 들어 "작동 KPI-매일 15 분 지연-현지 시간 06: 00까지".
가용성 SLO: 099입니다. API/시맨틱 레이어의 경우 9% 입니다.
경고: SLO 연체율, 메트릭 점프, NLE/중복 성장, 분산 v1 v2> X%.
런북: 저하 될 때해야 할 일-RCA 단계, 대체 (예: 마지막 유효한 "스냅 샷 메트릭" 으로 전환).

12) 실험 및 지표

가드 레일 지표: 대기 시간, 복원력, FPR/FNR 득점.
A/B에 대한 균일 한 정의: 동일한 의미 계층을 통한 변환, 보존, NSM.
최소 구별 효과 (MDE), 전력 분석: 메트릭 카드에 매개 변수를 저장합니다.
인과 적 속성: 혼합 조정 및 제어 그룹별 정책.

13) API 지표 및 소비

"GET/metrics/{ Name}?" = 2025-09-01 & to = 2025-10-01 & dims = country, platform & filters = channel: pay '.
정책: 한계, 캐시, 페이지 매김, demotent "수출".
버전: 'X-Metric-Version: v2' 헤더, 제거 경고.

14) 패턴 및 아티팩트

메트릭 패스포트 (예)

코드/버전: 'ARPPU _ v3'

정의: 해당 기간 동안 유료 사용자 당 평균 수익

(PHP 3 = 3.0.6, PHP 4)

세분성: 일; 롤업: 주/월 = 분자 합계/분모 합계

출처: 'fact _ paymes _ v2', 'dim _ users _ sc'

단위: 통화 'base _ ccy'; 현재 환율에서 전환

기본 필터: 활성 시장, 테스트 트랜잭션 제외

SLO: 신선도 API가 99 개 이상입니다 9%

가드 레일: ARPPU 방어 [0; 10 000]; vinzorization p1/p99

소유자: 수익 분석; 개정 날짜: 2025-10-01

체크리스트 메트릭 릴리스

  • 정의와 공식이 동의하고 테스트로 다룹니다
  • 시맨틱 객체 생성; 계보 문서화
  • 백필 및 참조 완료
  • SLO/경고가 구성됩니다. 런북 준비
  • 권리 및 RLS 구성; PII 숨겨진
  • 대시 보드/실험으로 대체 된 오래된 버전
  • Changelog/통신 전송

시점별 SQL 의사 코드 (예: 유지 D30)

sql
WITH cohort AS (
SELECT user_id, MIN(event_date) AS signup_date
FROM fact_events
WHERE event_type = 'signup'
GROUP BY 1
),
activity AS (
SELECT user_id, event_date
FROM fact_events
WHERE event_type = 'app_open'
),
ret AS (
SELECT c. signup_date,
COUNT(DISTINCT CASE WHEN a. event_date = c. signup_date + INTERVAL '30 day' THEN a. user_id END) AS returned,
COUNT(DISTINCT c. user_id) AS cohort_size
FROM cohort c
LEFT JOIN activity a
ON a. user_id = c. user_id
AND a. event_date BETWEEN c. signup_date AND c. signup_date + INTERVAL '30 day'
GROUP BY 1
)
SELECT signup_date, returned / cohort_size AS retention_d30
FROM ret;

15) 빈번한 실수와 피하는 방법

조용한 공식 편집: 항상 버전과 변경 로그를 통해.
"모든 랩톱마다 다름" 메트릭: 시맨틱 레이어/API를 강제합니다.
일관되지 않은 우편 번호/통화: 중앙 일정 및 FX 테이블.
이중 사용자 회계: 롤업 규칙 및 고유 키.
불투명한 신선도: 지연/업데이트 시간을 분명히 보여줍니다.
한 엔지니어에 대한 의존성: 모든 것은 코드와 같으며 검토와 통화가 있습니다.

합계

메트릭 아키텍처는 사전 + 의미 계층 + 강력한 계산 + 거버넌스 및 SLO입니다. 설명 된 원칙 (계약, 테스트, 버전, 관찰 가능성, 안전) 을 따르면 "숫자 분쟁" 에서 지속 가능한 제품 및 비즈니스 관리 메커니즘으로 메트릭을 전환합니다.

Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.