GH GambleHub

분석 및 ETL 파이프 라인

(섹션: 기술 및 인프라)

간략한 요약

분석 파이프 라인은 "원시" iGaming 운영 이벤트 (베팅, 예금, PSP 웹 후크, 게임 로그) 를 안정적인 메트릭 쇼케이스 (GGR/NGR, LTV, 보존, 사기 방지 신호) 로 전환합니다. 지원 원칙: 단일 레이어 모델 (Bronze/Silver/Gold), 도구 분야 DQ/계보, 증분 및 dem 등장, 관찰 성 및 SLO, 비용 관리. 로드 프로파일 (토너먼트 피크), 규제 (PII/현지화) 및 데이터 신선도에 대한 비즈니스 요구 사항을 고려하여 결정합니다.

1) 아키텍처: ETL vs ELT, 배치 vs 스트림

DWH에로드하기 전에 → Transform → Load-Transforms를 추출하십시오. "클라우드" 이전에 변환에 제어 된 환경/비밀이 필요한 경우에 적합합니다.
ELT (Extract → Load → Transform): Lake/Lakehouse/DWH의 원자재, SQL/엔진 (dbt/SQL 스크립트). 컬럼 엔진 및 유연한 반복을위한 편리함.
배치: 예정된 창문 (야간 5/15/60 분마다). 싸고 예측 가능합니다.
스트림: 실시간 (Kafka → Flink/ksqlDB → OLAP). 거의 실시간 창 (5-60 초) 및 사기 방지/CRM 신호.
하이브리드: 청동은 스트림, 은/금-증분 배치 모델로 채워집니다.

권장 사항: iGaming에서 ELT + 스트리밍을 유지하십시오: CDC/outbox → Bronze (미세한 신선도) 를 통한 이벤트, Silver/Gold의 증분 변환.

2) 메달리온

청동 (Raw): 비즈니스 논리가없는 원시 이벤트/CDC. Parquet/ORC 형식, 체계, 최소 검증.
은 (변형): 청소, 중복 제거, ID 정규화, 차원 SCD, 통화/시간 영역 통일.
금 (마트): 비즈니스 사례 (사실/치수, 큐브), 구체화 된보기, 집계 (일/국가/제품).

장점: 계층별로 재현성, 투명한 진화, 다른 SLO 및 TTL.

3) 소스 및로드: CDC, 아웃 박스, 파일

CDC (데이터 캡처 변경): OLTP (Postgres/MySQL) 에서 순서와 demempotency가 보장되는 흐름을 변경하십시오.
보내기 패턴: 이벤트는 서비스 트랜잭션의 아웃 박스 테이블/컬렉션에 기록됩니다 → 커넥터가 버스/레이크에 게시합니다.
파일 업로드: PSP 업로드, 파트너 보고서; 표현, 체크섬 및 디렉토리를받습니다.

실습: 소스는 각 소스마다 다양하며 (스키마 버전) 필드 계약 및 품질 기대치입니다.

4) 오케스트레이션: DAG, 종속성, 배포

DAG: 명시 적 종속성 (원시 → 준비 → 덤 → 사실 → 마트).
작업 demempotency: 부작용없이 재실행 (파티션 덮어 쓰기, 'MERGE '/upsert).
환경 분리: Dev/Stage/Prod, 아티팩트 홍보, 고가의 백필에 대한 "수동 승인".
일정: 크론/타임 윈도우 + 이벤트 트리거 (파일/당사자의 도착에 따라).
비밀: 비밀 관리자로부터; DAG 코드의 비밀 금지.

추상 DAG (의사 코드) 의 예:
python with DAG("dwh_daily", schedule="0  ") as dag:
bronze = ingest_cdc(source="payments", partition=hour())
silver = dedup_normalize(input=bronze)
dims  = build_dimensions(input=silver)
facts = build_facts(input=silver, dims=dims)
marts = build_marts(input=facts)
bronze >> silver >> [dims, facts] >> marts

5) 데이터 품질 (DQ) 및 계보

DQ 확인: 완전성 (카운트, 늦은 도착), 키의 고유성, 범위/도메인 규칙 (금액 이하 0, 디렉토리의 통화).
트리거 임계 값: 테이블의 중요도에 따라 경고가있는 하드 스톱/소프트 페일.
계보/카탈로그: 보고서에서 소스 (표, 열, 메트릭), 소유자, 문서, PII 분류.
스키마 제어: 자동 호환성 테스트 (백워드/포워드 호환), "파괴" 변경 사항에 대한 경고.

6) 시뮬레이션: SCD, 대리 키, 정규화

치수에 대한 SCD2는 '유효한 _ from/유효한 _ to/is _ current', 대리 키 ('_ sk') 및 자연스러운 키 ('_ id') 입니다.
사소한 속성 (예: 인터페이스 로케일) 에 대한 SCD1- 오버 라이트입니다.
대리 키: 결합을위한 안정적인 '_ sk', 독창성을위한 자연스러운 키.
차원 정규화: 계층 구조가 깊은 눈송이; 그렇지 않으면 속도를위한 별입니다.

7) 증분 모델 및 분할

워터 마크 ('업데이트 된 _ at', '가장 많은 _ ts'): 새 줄/변경된 줄 만 읽으십시오.
증분 전략: 비즈니스 키별로 'MERGE', 로트별로 'INSERT OVERWRITE', 작은 로트를위한 'DELETE + INSERT'.
분할: 날짜/시간/지역별; 키를 필터링하고 결합하여 클러스터링 (키를 정렬/Z- 순서) 합니다.
재료보기: GGR/NGR 사전 집계, 인기있는 섹션 캐시.
약 단위: 저렴한 Top-N 쇼케이스를위한 HLL/axx _ divitely.

증분 'MERGE' (일반) 의 예:
sql
MERGE INTO fact_deposits f
USING staging_deposits s
ON (f. deposit_id = s. deposit_id)
WHEN MATCHED THEN UPDATE SET amount = s. amount, status = s. status, updated_at = s. updated_at
WHEN NOT MATCHED THEN INSERT (...)
VALUES (...);

8) 백필, 재 처리 및 스토리 관리

백필: 리소스 제한과 창이있는 개별 DAG; 명확한 "진리의 창" (예: 2024-01-01.. 2025-11-05).
재 처리: 결정 론적 변환 → 반복 실행은 동일한 결과를 제공합니다. 모델 코드의 로깅 버전.
시간 여행/테이블 버전: 조사에 편리하고 DR "논리적 오류".
철회: 로깅시 철회 (삭제/수정) 정책.

9) Conveyor CLO/SLA/SLO

신선도: 청동은 1-5 분, 은은 3 분은 15 분, 금은 6 분입니다 (예).
신뢰성: DAG 계정 99 합격률 x%.
성능: p95/p99 노드 지속 시간; 파티 시간 예산.
지연 모니터링: 섭취 한 스트림의 지연, 대기열 깊이, "늦은 데이터" 의 공유.
경고: 신선도/볼륨 위반, DQ 파일, 스캔 비용 증가, MV 저하.

10) 비용: 예측 및 최적화

파티션과 클러스터는 스캔 볼륨을 최소화합니다

핫 마커의 재료화 (일/국가/제품).
자주 사용되는 대시 보드의 결과 캐시/MV.
재시작 주파수를 모니터링합니다 (이유없이 "5 분마다" 없음).
TTL: 공격적인 청동 보존, 중간 은색, 긴 금 (집계 만 해당).
용량 계획: 카탈로그 메트릭, 토너먼트/캠페인 피크 예측.

11) 안전, PII 및 현지화

데이터 분류: PII/재무/운영.
암호화: 휴식 및 운송 중; KMS/역할 기반 액세스.
식별 해제: 해싱/마스킹, 키가있는 별도의 열.
멀티 테넌시를위한 RLS/블리자드 ('테넌트 _ id').

현지화: 지역별 저장 및 처리 영역 (EU/TR/LATAM); 허용되는 위치로만 수출하십시오

감사: 중요한 테이블, 디렉토리 액세스에 대한 읽기/쓰기.

12) 관찰 가능성: 메트릭, 로그, 트레일

파이프 라인 메트릭: 작업 지속 시간, 대기열, 오류, 배상, 바이트/행 처리, 비용.

통나무: 구조화; 'trace _ id '/' run _ id' 의 상관 관계

추적: 소스에서 쇼케이스까지 (가장 많은 → 변환 → 로드 → BI).
대시 보드: 레이어의 신선도, DAG의 성공, 최고 고가의 요청, p95/p99.

13) 기기 (역할 벤치 마크)

오케스트레이션: DAG 오케 스트레이터 (스케줄러, 배상, 경고, 비밀 포함).
변환: SQL 모델링 ("코드로서의 모델"), 모델의 단위 테스트, 문서.
DQ/계약: 데이터 세트의 검증 프레임 워크 및 SLA.
계보/카탈로그: 자동 종속성 그래프, 소유자를 찾으십시오.
스트리밍: 창/응집 프로세서, 싱크/소스 커넥터.

(회사의 스택 및 보안 요구 사항에 따라 특정 공급 업체가 선택됩니다.)

14) 샘플 템플릿

GGR 쇼케이스 템플릿 (일반 SQL)

sql
CREATE OR REPLACE TABLE mart_ggr_daily AS
SELECT
DATE(b. ts) AS d,
c. country_code,
SUM(b. stake) AS stake_sum,
SUM(b. win)  AS win_sum,
SUM(b. stake - b. win) AS ggr
FROM fact_bets b
JOIN dim_country c ON c. country_sk = b. country_sk AND c. is_current
WHERE b. ts >= DATE_SUB(CURRENT_DATE, INTERVAL 60 DAY)
GROUP BY d, c. country_code;

증분 워터 마크 모델

sql
INSERT INTO fact_bets PARTITION (dt)
SELECT
FROM staging_bets
WHERE updated_at > (SELECT COALESCE(MAX(watermark), '1970-01-01') FROM _meta_watermarks WHERE table='fact_bets');
-- then update watermark

DQ 점검 (아이디어)

sql
-- 1) key uniqueness
SELECT deposit_id FROM fact_deposits GROUP BY deposit_id HAVING COUNT()>1;

-- 2) negative amounts (error)
SELECT FROM fact_deposits WHERE amount < 0;

15) 구현 점검표

1. 메트릭 사전 (GGR/NGR/LTV/보존) 및 소유자를 정의하십시오.
2. 청동/은/금 레이어에서 SLO 신선도를 기록하십시오.
3. 소스 계약을 표준화하십시오 (스키마, DQ, SLA).
4. dempotent 단계와 격리 된 비밀로 DAG 그래프를 구성하십시오.
5. 구현 증분 (MERGE/덮어 쓰기) 및 워터 마크.
6. DQ (중요/소프트 검사), 계보 및 데이터 디렉토리를 포함합니다.
7. 관찰 가능성 (메트릭, 로그, 트레일) 및 경고를 설정하십시오.
8. 보존/TTL 및 백필/재 처리 정책을 입력하십시오.
9. PII 제어, 암호화, RLS 및 현지화 제공.
10. 게임 데이를 보내십시오: 소스 드롭 모방, "파괴" 계획, 대량 백필.

16) 안티 패턴

파티가없고 증분이없는 "모든 것을위한 1 박 ETL".
DQ와 혈통의 부족 → 상충되는 보고서와 유령 사냥.
각 출시시 테이블을 완전히 수정했습니다 (비용 폭발).
버퍼/복구없이 실시간으로 하드 번들.
분할 및 마스킹없이 PII 및 공공 상점을 혼합합니다.
철회/삭제 정책이 없습니다 (오류를 수정할 수 없음).

요약

iGaming의 강력한 분석 파이프 라인은 하드 DQ/계보, 증분 모델, 투명 오케 스트레이터 및 측정 가능한 SLO를 갖춘 계층 형 모델로 ELT + 스트리밍로드입니다. 비용 관리, PII/현지화 정책, 정기적 인 백필/DR 연습 추가-분석 플랫폼은 토너먼트 피크로 안정적으로 확장되어 원하는 신선도와 품질의 데이터로 비즈니스에 대응합니다.

Contact

문의하기

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

통합 시작

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

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

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