GH GambleHub

데이터 호수 및 흐름 집계

1) 목적과 가치

Data Lake/Lakehouse-장기 저장 및 대규모 판독 기준 계층:
  • 제품/게임/결제 스트리밍은 "그대로" 청동에 있습니다.
  • 은은 정규화와 풍부함을 제공하여 일관된 키와 품질을 제공합니다.
  • 금-BI, 규제 기관, 사기 방지/RG를위한 집계 된 쇼케이스 (실시간/실시간 포함).

레이크 하우스의 흐름 집계: 낮은 보고서 대기 시간, 예측 가능한 비용, 재현성 및 법의학.

2) 참조 아키텍처

1. Ingest/Edge: TP/gRPC, OTel, 배치 엔드 포인트 → 지점 не( Kafka/Redpanda).
2. 청동 (추가 전용): 객체 저장 + ACID 테이블 (Delta/Iceberg/Hudi), 날짜/시장/테넌트 별 파티션; 원래 페이로드 저장.
3. 스트림 계산: Flink/Spark/Beam-창 단위, CEP, 데드 업, 온라인 조회.
4. 은 (깨끗한/준수): 통화 정규화/시간대, FK/디렉토리, 측정을위한 SCD.
5. 서빙/OLAP: ClickHouse/Pinot/Druid-패널을위한 구체화 된 분/초 집계.
6. 금 (서브): 일일/시간별 디스플레이 케이스, 규제 슬라이스, 불변의 수출 패키지 (WORM).
7. 제어 루프: Schema Registry, DQ-as-code, 계보, 디렉토리, 비밀/KMS, RBAC/ABAC.

3) 계약 및 계획

스키마 우선: JSON/Avro/Protoguy; 필요한 필드는 '이벤트 _ time (UTC)', '이벤트 _ id', 'trace _ id', 'user _ pseudo _ id', '마켓', '스키마 _ 버전' 입니다.
진화: 역 호환 → 무효화 추가; → '/v2 '+ 이중 항목 깨기.
디렉토리: 도메인 설명, 소유자, 새로운 SLA, DQ 규칙, 계보.

4) 호수로 착륙

맨 아래에 정확히 한 번: 적어도 한 번 출판 + demempotent 싱크 ('이벤트 _ id' 에 의한 MERGE/upserted).
데드 업: 실버의 스트림 + 독창성에 주목하십시오.
파일 압축: 읽기 및 비용에 대한 작은 파일 → 일반 OPTIMIZE/VACUM.
시간 여행: 디버깅, 재생 및 감사가 포함됩니다.

Iceberg 파티셔닝 (DDL 아이디어) 의 예:
sql
CREATE TABLE bronze. payment_events (
event_id STRING, user_pseudo_id STRING, currency STRING,
amount DECIMAL(18,2), market STRING, event_time TIMESTAMP, payload STRING
)
PARTITIONED BY (days(event_time), market);

5) 스트림 집계: 창문과 워터 마크

창:
  • 텀블링-고정 (예: 안정적인 패널의 경우 1 분/5 분)
  • "부드러운" 메트릭을위한 호핑 - 겹치는 (단계 <창).
  • 세션-비 활동의 행동 격차.
  • 워터 마크: 늦은 데이터 제어 (보통 2-5 분), 사전 발행/수정 규칙.
Flink SQL-시장 별 1 분 예금:
sql
SELECT market,
TUMBLE_START(event_time, INTERVAL '1' MINUTE) AS ts_min,
COUNT() AS deposits_1m,
SUM(amount_base) AS sum_1m
FROM silver. payments
GROUP BY market, TUMBLE(event_time, INTERVAL '1' MINUTE);

6) 골재의 재료 화

OLAP 엔진 (ClickHouse/Pinot/Druid): 대시 보드 및 운영 분석을 위해 분/초 골재를 저장합니다.
Lakehouse Gold: 보고 및 조정 (재현성) 을 위해 매일/시간별 슬라이스를 유지합니다.

ClickHouse-구체화 된보기 (매 순간 GGR):
sql
CREATE MATERIALIZED VIEW mv_ggr_1m
ENGINE = AggregatingMergeTree()
PARTITION BY toDate(event_time)
ORDER BY (toStartOfMinute(event_time), market, provider_id) AS
SELECT toStartOfMinute(event_time) AS ts_min,
market,
provider_id,
sumState(stake_base) AS s_stake,
sumState(payout_base) AS s_payout
FROM stream. game_events
GROUP BY ts_min, market, provider_id;
골드-데이 슬라이스 (레이크 하우스):
sql
CREATE OR REPLACE VIEW gold. ggr_daily AS
SELECT
DATE(event_time) AS event_date,
market, provider_id,
SUM(stake_base) AS stakes_eur,
SUM(payout_base) AS payouts_eur,
SUM(stake_base) - SUM(payout_base) AS ggr_eur
FROM silver. fact_game_financials
GROUP BY 1,2,3;

7) 은: 정규화와 화해

시간 및 통화: '이벤트 _ time (UTC)', 'mount _ base', 'fx _ rate _ used', 'fx _ source'.
키/디렉토리: 'user _ pseudo _ id', 'game _ id', 'provider _ id', 'market'.
SCD II: 차원 이력화 (사용자/게임/제공 업체/RG/KYC).
DQ 규칙: 주요 고유성, 디렉토리, 금액 범위, 시간적 유효성.

8) 단위 등록 및 "올바른" 정의

시맨틱 레이어: 균일 한 GGR/NGR 공식, 베팅/승, 전환, ARPPU, 대기 시간 p95.
버전 지표: 'metric _ version' 및 "as-of" 계산.
도크 카드: 소유자, 공식, 소스, SLA 준비.

9) 정확히 한 번/dedempotency and order

버스: 적어도 한 번 + 분할 (로컬 순서).
처리: 조정 된 CEP/창 연산자 인 '이벤트 _ id' (TTL 24-72h) 에 의한 디드 업.
싱크: 거래 커밋 또는 dempotent upsert/merge.
전송/받은 편지함: 보증과 함께 OLTP의 도메인 이벤트 게시.

10) 늦은 데이터 및 조정

허용 된 지연 시간: 작동 디스플레이의 경우 2-5 분; 금을위한 매일 재 조립.
수정: OLAP의 추가 배출 및 금 재 샘플링 (dempotent).
깃발: 감사를위한 'late = 참', '수정 _ of = <이벤트 _ id>'.

11) 관찰 가능성과 DQ

SLI/SLO (랜드 마크):
  • p95 섭취 → 1 분 쇼케이스는 2-5 초입니다. 금은 06:00 자물쇠까지 준비됩니다.
  • 완전성 이하 99. 5%; 스키마 유효도는 99 이상입니다 9%; 추적 범위는 98% 이상입니다.
  • 파이프 라인 메트릭: 지연/처리량/바쁜 시간/상태 크기, 늦은 비율, dup-rate.
  • DQ 대시 보드: 신선도/완전성/유효성, 손실 깔때기, 핫 키 카드.
  • 계보: 청동에서 금/수출로가는 길; 변화에 대한 영향 분석.

12) 개인 정보 보호, 거주, 보안

PII 최소화: 가명, 별도의 보호 매핑.
거주지: EEA/UK/BR - 별도의 디렉토리 및 암호화 키; 이유없이 지역 간 가입 금지.
암호화: TLS 운송 중; KMS/CMK 휴식; 스로틀링시 서명 + WORM 내보내기.
DSAR/RTBF/Legal Hold: 선택적 편집, 삭제 동결, 감사 액세스.

13) 성능 및 비용

분할: 날짜/시장/임차인; 자주 필터링되는 속성으로 클러스터링/Z 순서.
압축: 작은 파일 제거, 일반 OPTIMIZE/VACUM.
재료화: 분/초-OLAP; 하루/시간-금으로.
계층 형 스토리지: 뜨거운/따뜻한/차가운, SLA 복구, 명령에 의한 요금 환급 (비용/GB, 비용/쿼리).
준수/스케치: 허용 가능한 경우 HyperLogLog/axx-different.

14) 예 (조각)

Flink CEP-예금 구조 조정 (10 분):
python if count_deposits(window=10MIN) >= 3 \
and sum_deposits(window=10MIN) > THRESH \
and all(d. amount < REPORTING_LIMIT for d in window_events):
emit_alert("AML_STRUCTURING", user_id, snapshot())
SQL-실버에로드 될 때 디드 업:
sql
CREATE TABLE silver. payments AS
SELECT EXCEPT(rn) FROM (
SELECT p., ROW_NUMBER() OVER (PARTITION BY event_id ORDER BY event_time) rn
FROM bronze. payment_events p
) WHERE rn = 1;
Iceberg/Delta-MERGE demempotent:
sql
MERGE INTO silver. fact_bets s
USING stage. fact_bets_delta d
ON s. bet_id = d. bet_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;

15) 프로세스 및 RACI

R (책임):
  • 데이터 플랫폼 (레이크 하우스/카탈로그/ACID, 압축),
  • 스트리밍 (단위/CEP/dedup),
  • 도메인 분석 (메트릭/골드).
  • A (책임): 데이터/CDO 책임자.
  • C (컨설팅): 준수/법률/DPO (PII/레지던트/법률 보유), 금융 (FX/GGR), SRE (SLO/стои
  • I (정보): BI/제품/마케팅/운영.

16) 구현 로드맵

MVP (3-5 주):

1. Kafka에서 얻은 Lakehouse Bronze/Silver (ACID 테이블), 레지스트리 체계.

2. OLAP의 기본 스트림 단위 (1-5 분); 쇼케이스 골드. ggr _ daily (D + 1 ~ 06:00).

3. Payments/Gameplay, Freshness/Completeness 대시 보드를위한 DQ 코드.

4. 컴팩션/OPTIMIZE, 최소 비용 지표 및 지연/후기/염색 경고.

2 단계 (5-10 주):
  • 실버 확장 (사용자/게임/공급자를위한 SCD II), 계보 및 영향 분석.
  • 비동기 전망대 (RG/KYC/ASN/BIN), 늦은 수정 제어.
  • 시맨틱 메트릭 계층, 수출 규정 (WORM/서명).
3 단계 (10-16 주):
  • 다중 지역, DR/재생 시뮬레이터, 자동 튜닝 창 및 워터 마크.
  • 비용 대시 보드, 청구서/할당량, 계층 형 스토리지 및 보관.
  • 쇼케이스 문서 및 메트릭 카드의 자동 생성.

17) 사전 판매 점검표

  • 레지스터의 계획 및 계약; 백 콤파트 테스트는 녹색입니다.
  • Dedup, 워터 마크/허용 지연 시간, DLQ 포함.
  • /OPTIMIZE/VACUM은 예정대로 구성되어 있습니다.
  • SLO: p95 섭취 → 미세보기, 금도 06:00; 지연/늦음/dup/상태 크기에 경고가 표시됩니다.
  • DQ 규칙이 활성화되었습니다. 계보는 청동에서 수출까지 볼 수 있습니다.
  • RBAC/ABAC 1KMS; 레지던트 및 DSAR/RTBF/Legal Hold 테스트.
  • 통제 대상 비용 (비용/GB, 비용/쿼리, 콜드 쉐어), 재생 제한.

18) 반 패턴 및 위험

같은 표에서 원시 및 보고 된 데이터를 혼합하면 재현성을 위반합니다.
압축 부족: 작은 파일 폭발 → 고가의 요청.
FX "소급 적" 계산: 이력 및 보고서를 중단합니다.
워터 마크/후기 정책 없음: 상점 및 경고 "플로트".
불필요하게 완전 재 장전: 사용/MERGE 증분 및 조정.
분석의 PII: 매핑을 분리하고 CLS/RLS를 활성화하십시오.

19) 용어집 (브리핑)

레이크 하우스-데이터 레이크 + ACID 테이블 및 SQL 엔진.
청동/은/금-원시/정규화/서빙 레이어.
워터 마크-이벤트 시간별 창 준비 상태 제한.
Materialized View는 빠른 독서를위한 사전 계산 된 쇼케이스입니다.
시간 여행-과거 버전의 테이블 읽기.
WORM-수출 인공물을 변경할 수 없습니다.

20) 결론

적절한 스트림 집계가있는 데이터 레이크는 레이어와 계약의 분야입니다. "있는 그대로" 청동, 정규화 및 품질을위한은, 미세한 패널을위한 OLAP, 재현 가능한 보고서를위한 금. 창문 및 워터 마크, 중복 및 압축, 개인 정보 보호 및 비용을 관리하면 제품, 규정 준수 및 운영 관리를 위해 빠르고 검증 가능하며 호환되는 상점이 생깁니다.

Contact

문의하기

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

Telegram
@Gamble_GC
통합 시작

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

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

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