배치 처리
1) 목적과 가치
배치 컨베이어는 다음을 위해 안정적인 일일/시간별 디스플레이 케이스를 형성합니다
규제 및 재무보고 (GGR/NGR, 세금, RG/AML 레지스트리).
BI 및 제품 분석 (코호트, LTV, 변환 깔때기).
정확성 검증 (OLTP SL DWH, 공급자/PSP), 이력서 (SCD).
ML에 대한 기능 및 교육 세트 준비.
주요 속성: 예측 가능성, 완전성, 재현성, 데이터 단위당 저렴한 비용.
2) 아키텍처 (참조)
1. Ingest (원시 캡처): OLTP의 TP/gRPC, CDC, 공급자가 → 청동을 업로드합니다.
2. 레이크 하우스: 청동 (원시, 추가 전용) → 은 (깨끗한/준수) → 금 (서브).
3. 오케스트레이션: Airflow/Dagster/Prefect (DAG '및 종속성, retrays, SLA).
4. 처리: Spark/Trino/DBT/SQL 엔진; 파티셔닝 및 ACID 형식 (Delta/Iceberg/Hudi).
5. DQ 및 계약: Schema Registry, DQ 규칙 (YAML/SQL), 소비자 테스트.
6. 서빙: BI/시맨틱 계층, 보고 가능한 내보내기 (PI/PI/JSON + 해시), API/GraphQL.
7. 관찰 가능성: 파이프 라인 메트릭, 계보, 로그, 비용 (비용/GB, 비용/쿼리).
3) 주파수 및 SLA
매일 (D + 1 ~ 06:00 잠금 장치) : GGR 보고서, 규제 업로드, 조정.
시간별/준 시간: Ops/Finance 운영 패널.
주간/월간: 파인 통합, 모델 및 역 프로세스.
- 골드 데일 쇼케이스는 현지 시간으로 06: 00까지 준비됩니다.
- Freshness Silver p95, 마이크로 브랫의 경우 15 분/낮 2 시간.
- 완전성 이하 99. 5%, 유효성 (체계) 9%.
4) 증분 다운로드 및 CDC
접근 방식:- CDC (데이터 캡처 변경): 실버의 데베 지움/로그 복제 → 청동 → 증분.
- 시간별 워터 마크: '업데이트 된 _ at> max _ loaded _ ts'.
- 해시 비교: 변경 감지를위한 'md5 (row)'.
- Upsert/Merge: Idempotent Silver/Gold 업데이트.
sql
MERGE INTO silver. payments AS s
USING staging. payments_delta AS d
ON s. transaction_id = d. transaction_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;
5) SCD (측정 기록)
SCD I: 덮어 쓰기 (맞춤법, 사소한 수정).
SCD II: 전체 이력 ('유효한 _ from/유효한 _ to/is _ current').
SCD III: 간단한 비교를위한 "전/후".
sql
MERGE INTO dim. users_scd t
USING stage. users u
ON t. user_pseudo_id = u. user_pseudo_id AND t. is_current = TRUE
WHEN MATCHED AND (t. country <> u. country OR t. rg_status <> u. rg_status)
THEN UPDATE SET t. is_current = FALSE, t. valid_to = CURRENT_TIMESTAMP
WHEN NOT MATCHED
THEN INSERT (user_pseudo_id, country, rg_status, valid_from, valid_to, is_current)
VALUES (u. user_pseudo_id, u. country, u. rg_status, CURRENT_TIMESTAMP, NULL, TRUE);
6) 백필 알림 재 처리
백필: 초기 필링/히스토리 백필.
재 처리: 논리/수정 데이터 편집 후 상점 창을 다시 계산합니다.
- Idempotency (MERGE/upsert), 청동 불변성, 논리 다양성.
- 반복 실행 메타 데이터 스냅 샷의 시간 여행.
- 가드 레일: 제한 범위, 할당량 및 경쟁 작업.
- 문서: 단계 및 완료 기준이있는 런북.
7) 레이어 모델링
청동:- 추가 전용, '이벤트 _ 날짜', '관할권', '테넌트' 파티션.
- 원래 페이로드 (법의학 용) 를 저장하고 'inested _ at' 를 수정합니다.
- 정규화 및 표준화: FK/디렉토리, 디드 업, FX/가속도.
- 사실/치수 테이블 (3NF/BCNF), 키 치수 용 SCD.
- BI/규제/금융, SLA 준비 상태에 대한 비정규화 상점.
- 골재의 재료화; 불변의 내보내기 아티팩트 (hash + WORM).
8) 데이터 품질 (코드 DQ)
실버에 대한 YAML 규칙의 예:yaml table: silver. payments slo:
freshness_minutes: 15 completeness_percent: 99. 5 rules:
- name: amount_positive type: range column: amount_base min: 0. 01 severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
severity: major
- name: unique_tx type: unique columns: [transaction_id]
severity: critical
- name: fk_user type: foreign_key column: user_pseudo_id ref_table: dim. users_scd severity: critical
반응 정책: 중요한 → 실패 작업 + DLQ; 주요/사소한 → 태그 + 보고서.
9) 시맨틱 레이어 및보고
시맨틱 레이어/메트릭 스토어에서 메트릭 (GGR/NGR, ARPPU, 유지) 의 통합 된 정의.
Versioning metrics; BI/내보내기 패키지와의 통합
보고서: SA/JSON/PDP + sha256, 다운로드 로그 및 필요한 경우 법적 보류.
10) 개인 정보 보호, 거주, 보안
PII 최소화: 사용자의 가명; 별도의 보호 루프로 매핑.
데이터 레지던트: EEA/UK/BR에 대한 별도의 디렉토리/키; 법적 근거없이 지역 간 가입 금지.
암호화: TLS 운송 중; KMS/CMK 휴식; 수출 통제.
DSAR/RTBF: 계산 가능한 프로젝션, 선택적 편집; 액세스 감사.
법적 보류: 규제 아티팩트를위한 WORM 아카이브.
11) 성능 및 비용
날짜/시장/테넌트 별 분할; 빈번한 술어에 의한 Z 순서/클러스터.
형식: Parquet + ACID 테이블; 압축/통계, OPTIMIZE/VACUUM.
재료화: 금의 안정적인 집계; "모 놀리 식" 작업을 피하십시오.
쿼터/예산: 팀별 요금 환급; 백필 제한/무거운 요청.
일정: 낮은로드 창 (야간/주말), 대기열 우선 순위.
12) 관찰 및 관리
파이프 라인 메트릭: 지속 시간, 성공률, 재 시도, 행 처리, 비용/쿼리.
DQ 메트릭: 완전성, 유효성, 독창성, FK 오류, 드리프트.
신선도 히트 맵: 도메인 및 시장별; SLA 대시 보드.
계보: 청동은 보고서에서 유래합니다. 변경 전 영향 분석.
경고: SLO 예산, DQ 저하, 지연, 비용 증가.
13) SQL/모델 예
통화 정규화 (은):sql
CREATE OR REPLACE TABLE silver. payments AS
SELECT p. transaction_id,
p. user_pseudo_id,
p. currency,
p. amount_orig,
r. rate AS fx_rate_used,
p. amount_orig r. rate AS amount_base,
p. market,
CAST(p. event_time AS TIMESTAMP) AS event_time
FROM bronze. payment_events p
JOIN dim. fx_rates r
ON r. date = DATE(p. event_time)
AND r. ccy_from = p. currency AND r. ccy_to = 'EUR';
GGR Daily Showcase (골드):
sql
CREATE OR REPLACE VIEW gold. ggr_daily AS
SELECT
DATE(b. event_time) AS event_date,
b. market,
g. provider_id,
SUM(b. stake_base) AS stakes_eur,
SUM(p. amount_base) AS payouts_eur,
SUM(b. stake_base) - SUM(p. amount_base) AS ggr_eur
FROM silver. fact_bets b
LEFT JOIN silver. fact_payouts p
ON p. user_pseudo_id = b. user_pseudo_id
AND p. game_id = b. game_id
AND DATE(p. event_time) = DATE(b. event_time)
JOIN dim. games g ON g. game_id = b. game_id
GROUP BY 1,2,3;
완전한 제어 (DQ SQL):
sql
SELECT market, event_date, COUNT() AS n
FROM silver. fact_bets
GROUP BY market, DATE(event_time) AS event_date
HAVING n = 0;
14) 프로세스 및 RACI
R (책임): 데이터 엔지니어링 (DAG ', 은/금 모델), 데이터 플랫폼 (인프라, 회로 레지스터, DQ).
A (책임): 데이터/최고 데이터 책임자 책임자.
C (컨설팅): 규정 준수/법률/DPO (PII/보존), 금융 (FX/GGR), 위험 (RG/AML), SRE (SLO/стои
I (정보): BI/제품/마케팅/운영.
15) 구현 로드맵
MVP (4-6 주):1. 레이크 하우스 브론즈/실버 (ACID 형식), 2-3 도메인의 CDC/증분.
2. DQ와 유사한 코드: 지불/게임 플레이 + CI 검증에 대한 10-15 규칙.
3. 06: 00까지 SLA를 사용한 최초의 골드 쇼케이스 (GGR Daily); 내보고 + 해시.
4. 신선도/완전성/비용 대시 보드, 기본 경고.
2 단계 (6-12 주):- SCD II 지정자/게임/공급자; 도메인 확장.
- 시맨틱 메트릭 레이어; OLTP/제공자 (정확도) 로 확인하십시오.
- 백필/재 처리 절차, 계보 및 영향 분석, 지역화 (EEA/UK).
- 변경 사항의 자동 시뮬레이션 (건식), 예산/할당량, 요금 지불.
- 자동 문서 (데이터 제품 페이지), DR 연습 및 시간 여행 복구.
- 비용 최적화 (클러스터링, 구체화, TTL, 진공).
16) 사전 판매 점검표
- 레지스트리의 계약 및 스키마, 호환성 테스트는 녹색입니다.
- 증분 다운로드/CDC 작동, MERGE는 demmpotent입니다.
- DQ 규칙이 활성화되었습니다. 임계 → 실패 + DLQ; 위반에 대한보고.
- SLA/신선도/충만 대시 보드; 경고가 설정되었습니다.
- PII/DSAR/RTBF/Legal Hold 정책은 Legal/DPO에 의해 확인되었습니다.
- 런북 및 백필/재 처리/DR 테스트.
- 통제 대상 비용 (비용/쿼리, 비용/GB, 할당량).
17) 반 패턴 및 피하는 방법
모 놀리 식 나이트 bs: 파티마다 평행하게 독립적 인 단계로 나뉩니다.
불필요하게 전체 재 장전: 증분/CDC/병합 사용.
분석의 PII 혼합: 매핑을 분리하고 CLS/RLS를 적용하십시오.
DQ/계보 없음: 코드로 DQ 및 추적 원점을 입력하십시오.
"수동" 백필: 자동화 및 문서, 제한 범위.
관리 할 수없는 비용: 클러스터링, 구체화, 보존 정책.
18) 용어집 (브리핑)
CDC-OLTP에서 변경 사항을 캡처합니다.
SCD-천천히 측정이 변경됩니다 (I/II/III).
레이크 하우스-데이터 레이크 + ACID 테이블.
MERGE/Upsert-demotent 업데이트 작업.
시간 여행-과거 버전의 테이블 읽기.
WORM-아티팩트를 변경할 수 없습니다.
19) 결론
배치 처리는 예측 가능하고 재현 가능하며 무료 파이프 라인의 분야입니다. 스키마 우선, 증분/CDC, SCD 히스토리 화, 코드 DQ, 관찰 및 의식 경제의 원칙을 따르면 안정적인 골드 쇼케이스 및 보고서를 받고 반짝임으로 확인하고 언제든지 감사 준비를합니다.